From 2ad1307947f1fc05a3b95e3277abc5559c70e5e1 Mon Sep 17 00:00:00 2001 From: Marc Daniels Date: Thu, 23 Apr 2026 20:21:19 -0400 Subject: [PATCH 1/9] Add query-time __typename filtering and end-to-end tests for index inheritance Updates the graphql gem to handle abstract types whose subtypes share an inherited index: when querying an abstract type, `QueryAdapter` now injects a `__typename` filter to exclude sibling types that share the same index. Adds end-to-end acceptance tests covering the full interface index inheritance flow, and extends the test schema with the `Store`/`DistributionChannel`/`Retail` interface hierarchy and concrete types (`PhysicalStore`, `OnlineStore`, `MobileStore`, `ThirdPartyWholesale`) to exercise it. --- Rakefile | 5 + config/schema/artifacts/data_warehouse.yaml | 48 +- config/schema/artifacts/datastore_config.yaml | 106 +- config/schema/artifacts/json_schemas.yaml | 154 + .../artifacts/json_schemas_by_version/v1.yaml | 220 + config/schema/artifacts/runtime_metadata.yaml | 1721 ++- config/schema/artifacts/schema.graphql | 10625 ++++++++------- .../artifacts_with_apollo/data_warehouse.yaml | 48 +- .../datastore_config.yaml | 106 +- .../artifacts_with_apollo/json_schemas.yaml | 154 + .../json_schemas_by_version/v1.yaml | 220 + .../runtime_metadata.yaml | 1721 ++- .../artifacts_with_apollo/schema.graphql | 10727 +++++++++------- config/schema/widgets.rb | 69 +- config/settings/development.yaml | 5 +- config/settings/development_with_apollo.yaml | 6 +- config/settings/test.yaml.template | 6 +- .../graphql/query_adapter/requested_fields.rb | 5 +- .../resolvers/graphql_adapter_builder.rb | 6 +- .../graphql/resolvers/query_adapter.rb | 42 + .../spec/acceptance/hidden_types_spec.rb | 9 +- .../spec/acceptance/search_spec.rb | 136 + .../spec_support/factories/widgets.rb | 36 + 23 files changed, 16224 insertions(+), 9951 deletions(-) diff --git a/Rakefile b/Rakefile index 6f5937169..632288a00 100644 --- a/Rakefile +++ b/Rakefile @@ -77,6 +77,11 @@ configure_local_rake_tasks = ->(tasks) do FactoryBot.build(:widget, components: widget_components, inventor: Faker::Base.sample(inventors)) end) + batch.concat(Array.new(10) { FactoryBot.build(:online_store) }) + batch.concat(Array.new(10) { FactoryBot.build(:physical_store) }) + batch.concat(Array.new(10) { FactoryBot.build(:mobile_store) }) + batch.concat(Array.new(10) { FactoryBot.build(:third_party_wholesale) }) + batch.concat(sponsors = Array.new(10) { FactoryBot.build(:sponsor) }) batch.concat(Array.new(10) { FactoryBot.build(:team, sponsors: sponsors.sample(rand(3))) }) batch diff --git a/config/schema/artifacts/data_warehouse.yaml b/config/schema/artifacts/data_warehouse.yaml index 3388a7164..057e7ea6a 100644 --- a/config/schema/artifacts/data_warehouse.yaml +++ b/config/schema/artifacts/data_warehouse.yaml @@ -14,13 +14,6 @@ tables: shapes ARRAY>>, manufacturer_id STRING ) - companies: - table_schema: |- - CREATE TABLE IF NOT EXISTS companies ( - id STRING, - name STRING, - stock_ticker STRING - ) components: table_schema: |- CREATE TABLE IF NOT EXISTS components ( @@ -38,6 +31,23 @@ tables: owner_ids ARRAY, owner_id STRING ) + distribution_channels: + table_schema: |- + CREATE TABLE IF NOT EXISTS distribution_channels ( + id STRING, + url STRING, + platform STRING, + established_on DATE, + active BOOLEAN, + customer_facing BOOLEAN, + __typename STRING, + address STRING, + square_footage INT, + vehicle_type STRING, + current_location STRING, + partner_name STRING, + contract_terms STRING + ) electrical_parts: table_schema: |- CREATE TABLE IF NOT EXISTS electrical_parts ( @@ -53,7 +63,7 @@ tables: id STRING, name STRING, created_at TIMESTAMP, - ceo STRUCT + ceo STRUCT ) mechanical_parts: table_schema: |- @@ -64,12 +74,24 @@ tables: material STRING, manufacturer_id STRING ) - people: + named_inventors: table_schema: |- - CREATE TABLE IF NOT EXISTS people ( + CREATE TABLE IF NOT EXISTS named_inventors ( id STRING, name STRING, - nationality STRING + nationality STRING, + __typename STRING, + stock_ticker STRING + ) + physical_stores: + table_schema: |- + CREATE TABLE IF NOT EXISTS physical_stores ( + id STRING, + address STRING, + square_footage INT, + established_on DATE, + active BOOLEAN, + customer_facing BOOLEAN ) sponsors: table_schema: |- @@ -142,8 +164,8 @@ tables: internal_details STRUCT, internal_highlightable_details STRUCT, the_opts STRUCT, - inventor STRUCT, - named_inventor STRUCT, + inventor STRUCT, + named_inventor STRUCT, weight_in_ng_str BIGINT, weight_in_ng BIGINT, tags ARRAY, diff --git a/config/schema/artifacts/datastore_config.yaml b/config/schema/artifacts/datastore_config.yaml index 7976cf8a8..02d7206a2 100644 --- a/config/schema/artifacts/datastore_config.yaml +++ b/config/schema/artifacts/datastore_config.yaml @@ -1531,30 +1531,6 @@ indices: index.number_of_replicas: 1 index.number_of_shards: 1 index.max_result_window: 10000 - companies: - aliases: {} - mappings: - dynamic: strict - properties: - id: - type: keyword - name: - type: keyword - stock_ticker: - type: keyword - __sources: - type: keyword - __versions: - type: object - dynamic: 'false' - _size: - enabled: true - settings: - index.mapping.ignore_malformed: false - index.mapping.coerce: false - index.number_of_replicas: 1 - index.number_of_shards: 1 - index.max_result_window: 10000 components: aliases: {} mappings: @@ -1618,6 +1594,51 @@ indices: index.number_of_replicas: 1 index.number_of_shards: 1 index.max_result_window: 10000 + distribution_channels: + aliases: {} + mappings: + dynamic: strict + properties: + id: + type: keyword + url: + type: keyword + platform: + type: keyword + established_on: + type: date + format: strict_date + active: + type: boolean + customer_facing: + type: boolean + address: + type: keyword + square_footage: + type: integer + vehicle_type: + type: keyword + current_location: + type: keyword + partner_name: + type: keyword + contract_terms: + type: keyword + __typename: + type: keyword + __sources: + type: keyword + __versions: + type: object + dynamic: 'false' + _size: + enabled: true + settings: + index.mapping.ignore_malformed: false + index.mapping.coerce: false + index.number_of_replicas: 1 + index.number_of_shards: 1 + index.max_result_window: 10000 electrical_parts: aliases: {} mappings: @@ -1709,7 +1730,7 @@ indices: index.number_of_replicas: 1 index.number_of_shards: 1 index.max_result_window: 10000 - people: + named_inventors: aliases: {} mappings: dynamic: strict @@ -1720,6 +1741,41 @@ indices: type: keyword nationality: type: keyword + stock_ticker: + type: keyword + __typename: + type: keyword + __sources: + type: keyword + __versions: + type: object + dynamic: 'false' + _size: + enabled: true + settings: + index.mapping.ignore_malformed: false + index.mapping.coerce: false + index.number_of_replicas: 1 + index.number_of_shards: 1 + index.max_result_window: 10000 + physical_stores: + aliases: {} + mappings: + dynamic: strict + properties: + id: + type: keyword + address: + type: keyword + square_footage: + type: integer + established_on: + type: date + format: strict_date + active: + type: boolean + customer_facing: + type: boolean __sources: type: keyword __versions: diff --git a/config/schema/artifacts/json_schemas.yaml b/config/schema/artifacts/json_schemas.yaml index f46e562cd..af47f2cd5 100644 --- a/config/schema/artifacts/json_schemas.yaml +++ b/config/schema/artifacts/json_schemas.yaml @@ -28,9 +28,13 @@ json_schema_version: 1 - ElectricalPart - Manufacturer - MechanicalPart + - MobileStore + - OnlineStore - Person + - PhysicalStore - Sponsor - Team + - ThirdPartyWholesale - Widget - WidgetWorkspace id: @@ -421,6 +425,46 @@ json_schema_version: 1 - created_at - material - manufacturer_id + MobileStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + vehicle_type: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + current_location: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + __typename: + type: string + const: MobileStore + default: MobileStore + required: + - id + - vehicle_type + - current_location + - established_on + - active + - customer_facing Money: type: object properties: @@ -445,6 +489,46 @@ json_schema_version: 1 oneOf: - "$ref": "#/$defs/Person" - "$ref": "#/$defs/Company" + OnlineStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + url: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + platform: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + __typename: + type: string + const: OnlineStore + default: OnlineStore + required: + - id + - url + - platform + - established_on + - active + - customer_facing Person: type: object properties: @@ -472,6 +556,44 @@ json_schema_version: 1 - id - name - nationality + PhysicalStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + address: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + square_footage: + anyOf: + - "$ref": "#/$defs/Int" + - type: 'null' + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + __typename: + type: string + const: PhysicalStore + default: PhysicalStore + required: + - id + - address + - square_footage + - established_on + - active + - customer_facing Player: type: object properties: @@ -819,6 +941,38 @@ json_schema_version: 1 - was_shortened - players_nested - players_object + ThirdPartyWholesale: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + partner_name: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + contract_terms: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + __typename: + type: string + const: ThirdPartyWholesale + default: ThirdPartyWholesale + required: + - id + - active + - partner_name + - contract_terms Untyped: type: - array diff --git a/config/schema/artifacts/json_schemas_by_version/v1.yaml b/config/schema/artifacts/json_schemas_by_version/v1.yaml index d657699e7..3ba2591d9 100644 --- a/config/schema/artifacts/json_schemas_by_version/v1.yaml +++ b/config/schema/artifacts/json_schemas_by_version/v1.yaml @@ -28,9 +28,13 @@ json_schema_version: 1 - ElectricalPart - Manufacturer - MechanicalPart + - MobileStore + - OnlineStore - Person + - PhysicalStore - Sponsor - Team + - ThirdPartyWholesale - Widget - WidgetWorkspace id: @@ -535,6 +539,64 @@ json_schema_version: 1 - created_at - material - manufacturer_id + MobileStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + ElasticGraph: + type: ID! + nameInIndex: id + vehicle_type: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + ElasticGraph: + type: String! + nameInIndex: vehicle_type + current_location: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + ElasticGraph: + type: String + nameInIndex: current_location + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + ElasticGraph: + type: Date + nameInIndex: established_on + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: active + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: customer_facing + __typename: + type: string + const: MobileStore + default: MobileStore + required: + - id + - vehicle_type + - current_location + - established_on + - active + - customer_facing Money: type: object properties: @@ -565,6 +627,64 @@ json_schema_version: 1 oneOf: - "$ref": "#/$defs/Person" - "$ref": "#/$defs/Company" + OnlineStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + ElasticGraph: + type: ID! + nameInIndex: id + url: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + ElasticGraph: + type: String! + nameInIndex: url + platform: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + ElasticGraph: + type: String + nameInIndex: platform + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + ElasticGraph: + type: Date + nameInIndex: established_on + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: active + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: customer_facing + __typename: + type: string + const: OnlineStore + default: OnlineStore + required: + - id + - url + - platform + - established_on + - active + - customer_facing Person: type: object properties: @@ -601,6 +721,62 @@ json_schema_version: 1 - id - name - nationality + PhysicalStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + ElasticGraph: + type: ID! + nameInIndex: id + address: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + ElasticGraph: + type: String! + nameInIndex: address + square_footage: + anyOf: + - "$ref": "#/$defs/Int" + - type: 'null' + ElasticGraph: + type: Int + nameInIndex: square_footage + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + ElasticGraph: + type: Date + nameInIndex: established_on + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: active + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: customer_facing + __typename: + type: string + const: PhysicalStore + default: PhysicalStore + required: + - id + - address + - square_footage + - established_on + - active + - customer_facing Player: type: object properties: @@ -1098,6 +1274,50 @@ json_schema_version: 1 - was_shortened - players_nested - players_object + ThirdPartyWholesale: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + ElasticGraph: + type: ID! + nameInIndex: id + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: active + partner_name: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + ElasticGraph: + type: String + nameInIndex: partner_name + contract_terms: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + ElasticGraph: + type: String + nameInIndex: contract_terms + __typename: + type: string + const: ThirdPartyWholesale + default: ThirdPartyWholesale + required: + - id + - active + - partner_name + - contract_terms Untyped: type: - array diff --git a/config/schema/artifacts/runtime_metadata.yaml b/config/schema/artifacts/runtime_metadata.yaml index 639891715..24420ca28 100644 --- a/config/schema/artifacts/runtime_metadata.yaml +++ b/config/schema/artifacts/runtime_metadata.yaml @@ -21,32 +21,6 @@ enum_types_by_name: sort_field: direction: desc field_path: timestamps.created_at - CompanySortOrderInput: - values_by_name: - id_ASC: - sort_field: - direction: asc - field_path: id - id_DESC: - sort_field: - direction: desc - field_path: id - name_ASC: - sort_field: - direction: asc - field_path: name - name_DESC: - sort_field: - direction: desc - field_path: name - stock_ticker_ASC: - sort_field: - direction: asc - field_path: stock_ticker - stock_ticker_DESC: - sort_field: - direction: desc - field_path: stock_ticker ComponentSortOrderInput: values_by_name: created_at_ASC: @@ -201,6 +175,88 @@ enum_types_by_name: datastore_abbreviation: nmi YARD: datastore_abbreviation: yd + DistributionChannelSortOrderInput: + values_by_name: + address_ASC: + sort_field: + direction: asc + field_path: address + address_DESC: + sort_field: + direction: desc + field_path: address + contract_terms_ASC: + sort_field: + direction: asc + field_path: contract_terms + contract_terms_DESC: + sort_field: + direction: desc + field_path: contract_terms + current_location_ASC: + sort_field: + direction: asc + field_path: current_location + current_location_DESC: + sort_field: + direction: desc + field_path: current_location + established_on_ASC: + sort_field: + direction: asc + field_path: established_on + established_on_DESC: + sort_field: + direction: desc + field_path: established_on + id_ASC: + sort_field: + direction: asc + field_path: id + id_DESC: + sort_field: + direction: desc + field_path: id + partner_name_ASC: + sort_field: + direction: asc + field_path: partner_name + partner_name_DESC: + sort_field: + direction: desc + field_path: partner_name + platform_ASC: + sort_field: + direction: asc + field_path: platform + platform_DESC: + sort_field: + direction: desc + field_path: platform + square_footage_ASC: + sort_field: + direction: asc + field_path: square_footage + square_footage_DESC: + sort_field: + direction: desc + field_path: square_footage + url_ASC: + sort_field: + direction: asc + field_path: url + url_DESC: + sort_field: + direction: desc + field_path: url + vehicle_type_ASC: + sort_field: + direction: asc + field_path: vehicle_type + vehicle_type_DESC: + sort_field: + direction: desc + field_path: vehicle_type ElectricalPartSortOrderInput: values_by_name: created_at_ASC: @@ -871,8 +927,24 @@ enum_types_by_name: sort_field: direction: desc field_path: voltage - PersonSortOrderInput: + PhysicalStoreSortOrderInput: values_by_name: + address_ASC: + sort_field: + direction: asc + field_path: address + address_DESC: + sort_field: + direction: desc + field_path: address + established_on_ASC: + sort_field: + direction: asc + field_path: established_on + established_on_DESC: + sort_field: + direction: desc + field_path: established_on id_ASC: sort_field: direction: asc @@ -881,22 +953,80 @@ enum_types_by_name: sort_field: direction: desc field_path: id - name_ASC: + square_footage_ASC: sort_field: direction: asc - field_path: name - name_DESC: + field_path: square_footage + square_footage_DESC: sort_field: direction: desc - field_path: name - nationality_ASC: + field_path: square_footage + RetailSortOrderInput: + values_by_name: + address_ASC: sort_field: direction: asc - field_path: nationality - nationality_DESC: + field_path: address + address_DESC: sort_field: direction: desc - field_path: nationality + field_path: address + current_location_ASC: + sort_field: + direction: asc + field_path: current_location + current_location_DESC: + sort_field: + direction: desc + field_path: current_location + established_on_ASC: + sort_field: + direction: asc + field_path: established_on + established_on_DESC: + sort_field: + direction: desc + field_path: established_on + id_ASC: + sort_field: + direction: asc + field_path: id + id_DESC: + sort_field: + direction: desc + field_path: id + platform_ASC: + sort_field: + direction: asc + field_path: platform + platform_DESC: + sort_field: + direction: desc + field_path: platform + square_footage_ASC: + sort_field: + direction: asc + field_path: square_footage + square_footage_DESC: + sort_field: + direction: desc + field_path: square_footage + url_ASC: + sort_field: + direction: asc + field_path: url + url_DESC: + sort_field: + direction: desc + field_path: url + vehicle_type_ASC: + sort_field: + direction: asc + field_path: vehicle_type + vehicle_type_DESC: + sort_field: + direction: desc + field_path: vehicle_type SponsorSortOrderInput: values_by_name: id_ASC: @@ -915,6 +1045,72 @@ enum_types_by_name: sort_field: direction: desc field_path: name + StoreSortOrderInput: + values_by_name: + address_ASC: + sort_field: + direction: asc + field_path: address + address_DESC: + sort_field: + direction: desc + field_path: address + current_location_ASC: + sort_field: + direction: asc + field_path: current_location + current_location_DESC: + sort_field: + direction: desc + field_path: current_location + established_on_ASC: + sort_field: + direction: asc + field_path: established_on + established_on_DESC: + sort_field: + direction: desc + field_path: established_on + id_ASC: + sort_field: + direction: asc + field_path: id + id_DESC: + sort_field: + direction: desc + field_path: id + platform_ASC: + sort_field: + direction: asc + field_path: platform + platform_DESC: + sort_field: + direction: desc + field_path: platform + square_footage_ASC: + sort_field: + direction: asc + field_path: square_footage + square_footage_DESC: + sort_field: + direction: desc + field_path: square_footage + url_ASC: + sort_field: + direction: asc + field_path: url + url_DESC: + sort_field: + direction: desc + field_path: url + vehicle_type_ASC: + sort_field: + direction: asc + field_path: vehicle_type + vehicle_type_DESC: + sort_field: + direction: desc + field_path: vehicle_type TeamSortOrderInput: values_by_name: country_code_ASC: @@ -1774,17 +1970,6 @@ index_definitions_by_name: timestamps.created_at: source: __self route_with: id - companies: - current_sources: - - __self - fields_by_path: - id: - source: __self - name: - source: __self - stock_ticker: - source: __self - route_with: id components: current_sources: - __self @@ -1833,6 +2018,35 @@ index_definitions_by_name: source: widget has_had_multiple_sources: true route_with: id + distribution_channels: + current_sources: + - __self + fields_by_path: + active: + source: __self + address: + source: __self + contract_terms: + source: __self + current_location: + source: __self + customer_facing: + source: __self + established_on: + source: __self + id: + source: __self + partner_name: + source: __self + platform: + source: __self + square_footage: + source: __self + url: + source: __self + vehicle_type: + source: __self + route_with: id electrical_parts: current_sources: - __self @@ -1889,7 +2103,7 @@ index_definitions_by_name: name: source: __self route_with: id - people: + named_inventors: current_sources: - __self fields_by_path: @@ -1899,6 +2113,25 @@ index_definitions_by_name: source: __self nationality: source: __self + stock_ticker: + source: __self + route_with: id + physical_stores: + current_sources: + - __self + fields_by_path: + active: + source: __self + address: + source: __self + customer_facing: + source: __self + established_on: + source: __self + id: + source: __self + square_footage: + source: __self route_with: id sponsors: current_sources: @@ -3192,9 +3425,11 @@ object_types_by_name: resolver: name: get_record_field_value index_definition_names: - - companies + - named_inventors update_targets: - data_params: + __typename: + cardinality: one name: cardinality: one stock_ticker: @@ -3215,150 +3450,56 @@ object_types_by_name: routing_value_source: id script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a type: Company - CompanyAggregatedValues: + Component: graphql_fields_by_name: + created_at: + resolver: + name: get_record_field_value + dollar_widget: + relation: + additional_filter: + cost: + amount_cents: + equal_to_any_of: + - 100 + direction: in + foreign_key: component_ids + resolver: + name: nested_relationships id: resolver: - name: object_with_lookahead + name: get_record_field_value name: resolver: - name: object_with_lookahead - stock_ticker: + name: get_record_field_value + part_aggregations: + relation: + direction: out + foreign_key: part_ids resolver: - name: object_with_lookahead - CompanyAggregation: - elasticgraph_category: indexed_aggregation - graphql_fields_by_name: - aggregated_values: + name: nested_relationships + parts: + relation: + direction: out + foreign_key: part_ids resolver: - name: object_without_lookahead - count: + name: nested_relationships + position: resolver: - name: object_without_lookahead - grouped_by: + name: get_record_field_value + tags: resolver: - name: object_without_lookahead - source_type: Company - CompanyAggregationConnection: - elasticgraph_category: relay_connection - graphql_fields_by_name: - edges: + name: get_record_field_value + widget: + relation: + direction: in + foreign_key: component_ids resolver: - name: object_without_lookahead - nodes: - resolver: - name: object_without_lookahead - page_info: - resolver: - name: object_without_lookahead - CompanyAggregationEdge: - elasticgraph_category: relay_edge - graphql_fields_by_name: - cursor: - resolver: - name: object_without_lookahead - node: - resolver: - name: object_without_lookahead - CompanyConnection: - elasticgraph_category: relay_connection - graphql_fields_by_name: - edges: - resolver: - name: object_without_lookahead - nodes: - resolver: - name: object_without_lookahead - page_info: - resolver: - name: object_without_lookahead - total_edge_count: - resolver: - name: object_without_lookahead - CompanyEdge: - elasticgraph_category: relay_edge - graphql_fields_by_name: - all_highlights: - resolver: - name: object_without_lookahead - cursor: - resolver: - name: object_without_lookahead - highlights: - resolver: - name: object_without_lookahead - node: - resolver: - name: object_without_lookahead - CompanyGroupedBy: - graphql_fields_by_name: - name: - resolver: - name: object_with_lookahead - stock_ticker: - resolver: - name: object_with_lookahead - CompanyHighlights: - graphql_fields_by_name: - id: - resolver: - name: get_record_field_value - name: - resolver: - name: get_record_field_value - stock_ticker: - resolver: - name: get_record_field_value - Component: - graphql_fields_by_name: - created_at: - resolver: - name: get_record_field_value - dollar_widget: - relation: - additional_filter: - cost: - amount_cents: - equal_to_any_of: - - 100 - direction: in - foreign_key: component_ids - resolver: - name: nested_relationships - id: - resolver: - name: get_record_field_value - name: - resolver: - name: get_record_field_value - part_aggregations: - relation: - direction: out - foreign_key: part_ids - resolver: - name: nested_relationships - parts: - relation: - direction: out - foreign_key: part_ids - resolver: - name: nested_relationships - position: - resolver: - name: get_record_field_value - tags: - resolver: - name: get_record_field_value - widget: - relation: - direction: in - foreign_key: component_ids - resolver: - name: nested_relationships - widget_aggregations: - relation: - direction: in - foreign_key: component_ids + name: nested_relationships + widget_aggregations: + relation: + direction: in + foreign_key: component_ids resolver: name: nested_relationships widget_cost: @@ -3685,81 +3826,85 @@ object_types_by_name: graphql_fields_by_name: count: name_in_index: __counts - ElectricalPart: + DistributionChannel: graphql_fields_by_name: - component_aggregations: - relation: - direction: in - foreign_key: part_ids + active: resolver: - name: nested_relationships - components: - relation: - direction: in - foreign_key: part_ids + name: get_record_field_value + address: resolver: - name: nested_relationships - created_at: + name: get_record_field_value + contract_terms: + resolver: + name: get_record_field_value + current_location: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - manufacturer: - relation: - direction: out - foreign_key: manufacturer_id + partner_name: resolver: - name: nested_relationships - name: + name: get_record_field_value + platform: resolver: name: get_record_field_value - voltage: + square_footage: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: resolver: name: get_record_field_value index_definition_names: - - electrical_parts - update_targets: - - data_params: - created_at: - cardinality: one - manufacturer_id: - cardinality: one - name: - cardinality: one - voltage: - cardinality: one - id_source: id - metadata_params: - relationship: - value: __self - sourceId: - cardinality: one - source_path: id - sourceType: - cardinality: one - source_path: type - version: - cardinality: one - relationship: __self - routing_value_source: id - script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a - type: ElectricalPart - ElectricalPartAggregatedValues: + - distribution_channels + DistributionChannelAggregatedValues: graphql_fields_by_name: - created_at: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + contract_terms: + resolver: + name: object_with_lookahead + current_location: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - name: + partner_name: resolver: name: object_with_lookahead - voltage: + platform: resolver: name: object_with_lookahead - ElectricalPartAggregation: + square_footage: + resolver: + name: object_with_lookahead + url: + resolver: + name: object_with_lookahead + vehicle_type: + resolver: + name: object_with_lookahead + DistributionChannelAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: aggregated_values: @@ -3771,8 +3916,8 @@ object_types_by_name: grouped_by: resolver: name: object_without_lookahead - source_type: ElectricalPart - ElectricalPartAggregationConnection: + source_type: DistributionChannel + DistributionChannelAggregationConnection: elasticgraph_category: relay_connection graphql_fields_by_name: edges: @@ -3784,7 +3929,7 @@ object_types_by_name: page_info: resolver: name: object_without_lookahead - ElectricalPartAggregationEdge: + DistributionChannelAggregationEdge: elasticgraph_category: relay_edge graphql_fields_by_name: cursor: @@ -3793,7 +3938,7 @@ object_types_by_name: node: resolver: name: object_without_lookahead - ElectricalPartConnection: + DistributionChannelConnection: elasticgraph_category: relay_connection graphql_fields_by_name: edges: @@ -3808,7 +3953,7 @@ object_types_by_name: total_edge_count: resolver: name: object_without_lookahead - ElectricalPartEdge: + DistributionChannelEdge: elasticgraph_category: relay_edge graphql_fields_by_name: all_highlights: @@ -3823,89 +3968,288 @@ object_types_by_name: node: resolver: name: object_without_lookahead - ElectricalPartGroupedBy: + DistributionChannelGroupedBy: graphql_fields_by_name: - created_at: + active: resolver: name: object_with_lookahead - name: + address: resolver: name: object_with_lookahead - voltage: + contract_terms: resolver: name: object_with_lookahead - ElectricalPartHighlights: - graphql_fields_by_name: - id: + current_location: resolver: - name: get_record_field_value - name: + name: object_with_lookahead + customer_facing: resolver: - name: get_record_field_value - FloatAggregatedValues: - elasticgraph_category: scalar_aggregated_values - graphql_fields_by_name: - approximate_avg: - computation_detail: - function: avg + name: object_with_lookahead + established_on: resolver: name: object_with_lookahead - approximate_distinct_value_count: - computation_detail: - empty_bucket_value: 0 - function: cardinality + partner_name: resolver: name: object_with_lookahead - approximate_sum: - computation_detail: - empty_bucket_value: 0 - function: sum + platform: resolver: name: object_with_lookahead - exact_max: - computation_detail: - function: max + square_footage: resolver: name: object_with_lookahead - exact_min: - computation_detail: - function: min + url: resolver: name: object_with_lookahead - graphql_only_return_type: true - GeoLocation: + vehicle_type: + resolver: + name: object_with_lookahead + DistributionChannelHighlights: graphql_fields_by_name: - latitude: - name_in_index: lat + address: resolver: name: get_record_field_value - longitude: - name_in_index: lon + contract_terms: resolver: name: get_record_field_value - GeoShape: - graphql_fields_by_name: - coordinates: + current_location: resolver: name: get_record_field_value - type: + id: resolver: name: get_record_field_value - IDListFilterInput: - graphql_fields_by_name: - count: - name_in_index: __counts - IntAggregatedValues: - elasticgraph_category: scalar_aggregated_values - graphql_fields_by_name: - approximate_avg: - computation_detail: - function: avg + partner_name: resolver: - name: object_with_lookahead - approximate_distinct_value_count: - computation_detail: - empty_bucket_value: 0 + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: + resolver: + name: get_record_field_value + ElectricalPart: + graphql_fields_by_name: + component_aggregations: + relation: + direction: in + foreign_key: part_ids + resolver: + name: nested_relationships + components: + relation: + direction: in + foreign_key: part_ids + resolver: + name: nested_relationships + created_at: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + manufacturer: + relation: + direction: out + foreign_key: manufacturer_id + resolver: + name: nested_relationships + name: + resolver: + name: get_record_field_value + voltage: + resolver: + name: get_record_field_value + index_definition_names: + - electrical_parts + update_targets: + - data_params: + created_at: + cardinality: one + manufacturer_id: + cardinality: one + name: + cardinality: one + voltage: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: ElectricalPart + ElectricalPartAggregatedValues: + graphql_fields_by_name: + created_at: + resolver: + name: object_with_lookahead + id: + resolver: + name: object_with_lookahead + name: + resolver: + name: object_with_lookahead + voltage: + resolver: + name: object_with_lookahead + ElectricalPartAggregation: + elasticgraph_category: indexed_aggregation + graphql_fields_by_name: + aggregated_values: + resolver: + name: object_without_lookahead + count: + resolver: + name: object_without_lookahead + grouped_by: + resolver: + name: object_without_lookahead + source_type: ElectricalPart + ElectricalPartAggregationConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + ElectricalPartAggregationEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + cursor: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + ElectricalPartConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + total_edge_count: + resolver: + name: object_without_lookahead + ElectricalPartEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + all_highlights: + resolver: + name: object_without_lookahead + cursor: + resolver: + name: object_without_lookahead + highlights: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + ElectricalPartGroupedBy: + graphql_fields_by_name: + created_at: + resolver: + name: object_with_lookahead + name: + resolver: + name: object_with_lookahead + voltage: + resolver: + name: object_with_lookahead + ElectricalPartHighlights: + graphql_fields_by_name: + id: + resolver: + name: get_record_field_value + name: + resolver: + name: get_record_field_value + FloatAggregatedValues: + elasticgraph_category: scalar_aggregated_values + graphql_fields_by_name: + approximate_avg: + computation_detail: + function: avg + resolver: + name: object_with_lookahead + approximate_distinct_value_count: + computation_detail: + empty_bucket_value: 0 + function: cardinality + resolver: + name: object_with_lookahead + approximate_sum: + computation_detail: + empty_bucket_value: 0 + function: sum + resolver: + name: object_with_lookahead + exact_max: + computation_detail: + function: max + resolver: + name: object_with_lookahead + exact_min: + computation_detail: + function: min + resolver: + name: object_with_lookahead + graphql_only_return_type: true + GeoLocation: + graphql_fields_by_name: + latitude: + name_in_index: lat + resolver: + name: get_record_field_value + longitude: + name_in_index: lon + resolver: + name: get_record_field_value + GeoShape: + graphql_fields_by_name: + coordinates: + resolver: + name: get_record_field_value + type: + resolver: + name: get_record_field_value + IDListFilterInput: + graphql_fields_by_name: + count: + name_in_index: __counts + IntAggregatedValues: + elasticgraph_category: scalar_aggregated_values + graphql_fields_by_name: + approximate_avg: + computation_detail: + function: avg + resolver: + name: object_with_lookahead + approximate_distinct_value_count: + computation_detail: + empty_bucket_value: 0 function: cardinality resolver: name: object_with_lookahead @@ -4484,40 +4828,92 @@ object_types_by_name: name: resolver: name: get_record_field_value - Money: + MobileStore: graphql_fields_by_name: - amount_cents: + active: resolver: name: get_record_field_value - currency: + current_location: resolver: name: get_record_field_value - MoneyAggregatedValues: - graphql_fields_by_name: - amount_cents: - resolver: - name: object_with_lookahead - currency: + customer_facing: resolver: - name: object_with_lookahead - MoneyFieldsListFilterInput: - graphql_fields_by_name: - count: - name_in_index: __counts - MoneyGroupedBy: - graphql_fields_by_name: - amount_cents: + name: get_record_field_value + established_on: resolver: - name: object_with_lookahead - currency: + name: get_record_field_value + id: resolver: - name: object_with_lookahead - MoneyHighlights: - graphql_fields_by_name: - currency: + name: get_record_field_value + vehicle_type: resolver: name: get_record_field_value - MoneyListFilterInput: + index_definition_names: + - distribution_channels + update_targets: + - data_params: + __typename: + cardinality: one + active: + cardinality: one + current_location: + cardinality: one + customer_facing: + cardinality: one + established_on: + cardinality: one + vehicle_type: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: MobileStore + Money: + graphql_fields_by_name: + amount_cents: + resolver: + name: get_record_field_value + currency: + resolver: + name: get_record_field_value + MoneyAggregatedValues: + graphql_fields_by_name: + amount_cents: + resolver: + name: object_with_lookahead + currency: + resolver: + name: object_with_lookahead + MoneyFieldsListFilterInput: + graphql_fields_by_name: + count: + name_in_index: __counts + MoneyGroupedBy: + graphql_fields_by_name: + amount_cents: + resolver: + name: object_with_lookahead + currency: + resolver: + name: object_with_lookahead + MoneyHighlights: + graphql_fields_by_name: + currency: + resolver: + name: get_record_field_value + MoneyListFilterInput: graphql_fields_by_name: count: name_in_index: __counts @@ -5188,6 +5584,8 @@ object_types_by_name: stock_ticker: resolver: name: get_record_field_value + index_definition_names: + - named_inventors NamedInventorAggregatedValues: graphql_fields_by_name: id: @@ -5301,6 +5699,58 @@ object_types_by_name: resolver: name: object_with_lookahead graphql_only_return_type: true + OnlineStore: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + index_definition_names: + - distribution_channels + update_targets: + - data_params: + __typename: + cardinality: one + active: + cardinality: one + customer_facing: + cardinality: one + established_on: + cardinality: one + platform: + cardinality: one + url: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: OnlineStore PageInfo: graphql_fields_by_name: end_cursor: @@ -5469,9 +5919,11 @@ object_types_by_name: resolver: name: get_record_field_value index_definition_names: - - people + - named_inventors update_targets: - data_params: + __typename: + cardinality: one name: cardinality: one nationality: @@ -5503,7 +5955,96 @@ object_types_by_name: nationality: resolver: name: object_with_lookahead - PersonAggregation: + PersonGroupedBy: + graphql_fields_by_name: + name: + resolver: + name: object_with_lookahead + nationality: + resolver: + name: object_with_lookahead + PersonHighlights: + graphql_fields_by_name: + id: + resolver: + name: get_record_field_value + name: + resolver: + name: get_record_field_value + nationality: + resolver: + name: get_record_field_value + PhysicalStore: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + address: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + square_footage: + resolver: + name: get_record_field_value + index_definition_names: + - physical_stores + update_targets: + - data_params: + active: + cardinality: one + address: + cardinality: one + customer_facing: + cardinality: one + established_on: + cardinality: one + square_footage: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: PhysicalStore + PhysicalStoreAggregatedValues: + graphql_fields_by_name: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + id: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + PhysicalStoreAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: aggregated_values: @@ -5515,8 +6056,8 @@ object_types_by_name: grouped_by: resolver: name: object_without_lookahead - source_type: Person - PersonAggregationConnection: + source_type: PhysicalStore + PhysicalStoreAggregationConnection: elasticgraph_category: relay_connection graphql_fields_by_name: edges: @@ -5528,7 +6069,7 @@ object_types_by_name: page_info: resolver: name: object_without_lookahead - PersonAggregationEdge: + PhysicalStoreAggregationEdge: elasticgraph_category: relay_edge graphql_fields_by_name: cursor: @@ -5537,7 +6078,7 @@ object_types_by_name: node: resolver: name: object_without_lookahead - PersonConnection: + PhysicalStoreConnection: elasticgraph_category: relay_connection graphql_fields_by_name: edges: @@ -5552,7 +6093,7 @@ object_types_by_name: total_edge_count: resolver: name: object_without_lookahead - PersonEdge: + PhysicalStoreEdge: elasticgraph_category: relay_edge graphql_fields_by_name: all_highlights: @@ -5567,23 +6108,29 @@ object_types_by_name: node: resolver: name: object_without_lookahead - PersonGroupedBy: + PhysicalStoreGroupedBy: graphql_fields_by_name: - name: + active: resolver: name: object_with_lookahead - nationality: + address: resolver: name: object_with_lookahead - PersonHighlights: - graphql_fields_by_name: - id: + customer_facing: resolver: - name: get_record_field_value - name: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + PhysicalStoreHighlights: + graphql_fields_by_name: + address: resolver: name: get_record_field_value - nationality: + id: resolver: name: get_record_field_value Player: @@ -5728,16 +6275,16 @@ object_types_by_name: addresses: resolver: name: list_records - companies: + component_aggregations: resolver: name: list_records - company_aggregations: + components: resolver: name: list_records - component_aggregations: + distribution_channel_aggregations: resolver: name: list_records - components: + distribution_channels: resolver: name: list_records electrical_part_aggregations: @@ -5757,73 +6304,264 @@ object_types_by_name: name: list_records manufacturers: resolver: - name: list_records - mechanical_part_aggregations: + name: list_records + mechanical_part_aggregations: + resolver: + name: list_records + mechanical_parts: + resolver: + name: list_records + named_entities: + resolver: + name: list_records + named_entity_aggregations: + resolver: + name: list_records + named_inventor_aggregations: + resolver: + name: list_records + named_inventors: + resolver: + name: list_records + part_aggregations: + resolver: + name: list_records + parts: + resolver: + name: list_records + physical_store_aggregations: + resolver: + name: list_records + physical_stores: + resolver: + name: list_records + retail_aggregations: + resolver: + name: list_records + retailers: + resolver: + name: list_records + sponsor_aggregations: + resolver: + name: list_records + sponsors: + resolver: + name: list_records + store_aggregations: + resolver: + name: list_records + stores: + resolver: + name: list_records + team_aggregations: + resolver: + name: list_records + teams: + resolver: + name: list_records + widget_aggregations: + resolver: + name: list_records + widget_currencies: + resolver: + name: list_records + widget_currency_aggregations: + resolver: + name: list_records + widget_or_address_aggregations: + resolver: + name: list_records + widget_workspace_aggregations: + resolver: + name: list_records + widget_workspaces: + resolver: + name: list_records + widgets: + resolver: + name: list_records + widgets_or_addresses: + resolver: + name: list_records + Retail: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + address: + resolver: + name: get_record_field_value + current_location: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + square_footage: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: + resolver: + name: get_record_field_value + index_definition_names: + - distribution_channels + RetailAggregatedValues: + graphql_fields_by_name: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + current_location: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + id: + resolver: + name: object_with_lookahead + platform: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + url: + resolver: + name: object_with_lookahead + vehicle_type: + resolver: + name: object_with_lookahead + RetailAggregation: + elasticgraph_category: indexed_aggregation + graphql_fields_by_name: + aggregated_values: + resolver: + name: object_without_lookahead + count: + resolver: + name: object_without_lookahead + grouped_by: + resolver: + name: object_without_lookahead + source_type: Retail + RetailAggregationConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + RetailAggregationEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + cursor: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + RetailConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: resolver: - name: list_records - mechanical_parts: + name: object_without_lookahead + page_info: resolver: - name: list_records - named_entities: + name: object_without_lookahead + total_edge_count: resolver: - name: list_records - named_entity_aggregations: + name: object_without_lookahead + RetailEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + all_highlights: resolver: - name: list_records - named_inventor_aggregations: + name: object_without_lookahead + cursor: resolver: - name: list_records - named_inventors: + name: object_without_lookahead + highlights: resolver: - name: list_records - part_aggregations: + name: object_without_lookahead + node: resolver: - name: list_records - parts: + name: object_without_lookahead + RetailGroupedBy: + graphql_fields_by_name: + active: resolver: - name: list_records - people: + name: object_with_lookahead + address: resolver: - name: list_records - person_aggregations: + name: object_with_lookahead + current_location: resolver: - name: list_records - sponsor_aggregations: + name: object_with_lookahead + customer_facing: resolver: - name: list_records - sponsors: + name: object_with_lookahead + established_on: resolver: - name: list_records - team_aggregations: + name: object_with_lookahead + platform: resolver: - name: list_records - teams: + name: object_with_lookahead + square_footage: resolver: - name: list_records - widget_aggregations: + name: object_with_lookahead + url: resolver: - name: list_records - widget_currencies: + name: object_with_lookahead + vehicle_type: resolver: - name: list_records - widget_currency_aggregations: + name: object_with_lookahead + RetailHighlights: + graphql_fields_by_name: + address: resolver: - name: list_records - widget_or_address_aggregations: + name: get_record_field_value + current_location: resolver: - name: list_records - widget_workspace_aggregations: + name: get_record_field_value + id: resolver: - name: list_records - widget_workspaces: + name: get_record_field_value + platform: resolver: - name: list_records - widgets: + name: get_record_field_value + url: resolver: - name: list_records - widgets_or_addresses: + name: get_record_field_value + vehicle_type: resolver: - name: list_records + name: get_record_field_value SearchHighlight: graphql_fields_by_name: path: @@ -6022,6 +6760,185 @@ object_types_by_name: graphql_fields_by_name: count: name_in_index: __counts + Store: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + address: + resolver: + name: get_record_field_value + current_location: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + square_footage: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: + resolver: + name: get_record_field_value + index_definition_names: + - distribution_channels + StoreAggregatedValues: + graphql_fields_by_name: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + current_location: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + id: + resolver: + name: object_with_lookahead + platform: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + url: + resolver: + name: object_with_lookahead + vehicle_type: + resolver: + name: object_with_lookahead + StoreAggregation: + elasticgraph_category: indexed_aggregation + graphql_fields_by_name: + aggregated_values: + resolver: + name: object_without_lookahead + count: + resolver: + name: object_without_lookahead + grouped_by: + resolver: + name: object_without_lookahead + source_type: Store + StoreAggregationConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + StoreAggregationEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + cursor: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + StoreConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + total_edge_count: + resolver: + name: object_without_lookahead + StoreEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + all_highlights: + resolver: + name: object_without_lookahead + cursor: + resolver: + name: object_without_lookahead + highlights: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + StoreGroupedBy: + graphql_fields_by_name: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + current_location: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + platform: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + url: + resolver: + name: object_with_lookahead + vehicle_type: + resolver: + name: object_with_lookahead + StoreHighlights: + graphql_fields_by_name: + address: + resolver: + name: get_record_field_value + current_location: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: + resolver: + name: get_record_field_value StringConnection: elasticgraph_category: relay_connection graphql_fields_by_name: @@ -6955,6 +7872,48 @@ object_types_by_name: players_object: resolver: name: object_with_lookahead + ThirdPartyWholesale: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + contract_terms: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + partner_name: + resolver: + name: get_record_field_value + index_definition_names: + - distribution_channels + update_targets: + - data_params: + __typename: + cardinality: one + active: + cardinality: one + contract_terms: + cardinality: one + partner_name: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: ThirdPartyWholesale Widget: graphql_fields_by_name: amount_cents: diff --git a/config/schema/artifacts/schema.graphql b/config/schema/artifacts/schema.graphql index 7e88fa2cd..0d7f62648 100644 --- a/config/schema/artifacts/schema.graphql +++ b/config/schema/artifacts/schema.graphql @@ -820,274 +820,6 @@ type Company implements NamedInventor { stock_ticker: String } -""" -Type used to perform aggregation computations on `Company` fields. -""" -type CompanyAggregatedValues { - """ - Computed aggregate values for the `id` field. - """ - id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `name` field. - """ - name: NonNumericAggregatedValues - - """ - Computed aggregate values for the `stock_ticker` field. - """ - stock_ticker: NonNumericAggregatedValues -} - -""" -Return type representing a bucket of `Company` documents for an aggregations query. -""" -type CompanyAggregation { - """ - Provides computed aggregated values over all `Company` documents in an aggregation bucket. - """ - aggregated_values: CompanyAggregatedValues - - """ - The count of `Company` documents in an aggregation bucket. - """ - count: JsonSafeLong! - - """ - Used to specify the `Company` fields to group by. The returned values identify each aggregation bucket. - """ - grouped_by: CompanyGroupedBy -} - -""" -Represents a paginated collection of `CompanyAggregation` results. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type CompanyAggregationConnection { - """ - Wraps a specific `CompanyAggregation` to pair it with its pagination cursor. - """ - edges: [CompanyAggregationEdge!]! - - """ - The list of `CompanyAggregation` results. - """ - nodes: [CompanyAggregation!]! - - """ - Provides pagination-related information. - """ - page_info: PageInfo! -} - -""" -Represents a specific `CompanyAggregation` in the context of a `CompanyAggregationConnection`, -providing access to both the `CompanyAggregation` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type CompanyAggregationEdge { - """ - The `Cursor` of this `CompanyAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `CompanyAggregation`. - """ - cursor: Cursor - - """ - The `CompanyAggregation` of this edge. - """ - node: CompanyAggregation -} - -""" -Represents a paginated collection of `Company` results. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type CompanyConnection { - """ - Wraps a specific `Company` to pair it with its pagination cursor. - """ - edges: [CompanyEdge!]! - - """ - The list of `Company` results. - """ - nodes: [Company!]! - - """ - Provides pagination-related information. - """ - page_info: PageInfo! - - """ - The total number of edges available in this connection to paginate over. - """ - total_edge_count: JsonSafeLong! -} - -""" -Represents a specific `Company` in the context of a `CompanyConnection`, -providing access to both the `Company` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type CompanyEdge { - """ - All search highlights for this `Company`, indicating where in the indexed document the query matched. - """ - all_highlights: [SearchHighlight!]! - - """ - The `Cursor` of this `Company`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Company`. - """ - cursor: Cursor - - """ - Specific search highlights for this `Company`, providing matching snippets for the requested fields. - """ - highlights: CompanyHighlights - - """ - The `Company` of this edge. - """ - node: Company -} - -""" -Input type used to specify filters on `Company` fields. - -Will match all documents if passed as an empty object (or as `null`). -""" -input CompanyFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `CompanyFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. - """ - all_of: [CompanyFilterInput!] - - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. - """ - any_of: [CompanyFilterInput!] - - """ - Used to filter on the `id` field. - - When `null` or an empty object is passed, matches all documents. - """ - id: IDFilterInput - - """ - Used to filter on the `name` field. - - When `null` or an empty object is passed, matches all documents. - """ - name: StringFilterInput - - """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. - """ - not: CompanyFilterInput - - """ - Used to filter on the `stock_ticker` field. - - When `null` or an empty object is passed, matches all documents. - """ - stock_ticker: StringFilterInput -} - -""" -Type used to specify the `Company` fields to group by for aggregations. -""" -type CompanyGroupedBy { - """ - The `name` field value for this group. - """ - name: String - - """ - The `stock_ticker` field value for this group. - """ - stock_ticker: String -} - -""" -Type used to request desired `Company` search highlight fields. -""" -type CompanyHighlights { - """ - Search highlights for the `id`, providing snippets of the matching text. - """ - id: [String!]! - - """ - Search highlights for the `name`, providing snippets of the matching text. - """ - name: [String!]! - - """ - Search highlights for the `stock_ticker`, providing snippets of the matching text. - """ - stock_ticker: [String!]! -} - -""" -Enumerates the ways `Company`s can be sorted. -""" -enum CompanySortOrderInput { - """ - Sorts ascending by the `id` field. - """ - id_ASC - - """ - Sorts descending by the `id` field. - """ - id_DESC - - """ - Sorts ascending by the `name` field. - """ - name_ASC - - """ - Sorts descending by the `name` field. - """ - name_DESC - - """ - Sorts ascending by the `stock_ticker` field. - """ - stock_ticker_ASC - - """ - Sorts descending by the `stock_ticker` field. - """ - stock_ticker_DESC -} - type Component implements NamedEntity { created_at: DateTime! dollar_widget: Widget @@ -2794,171 +2526,112 @@ enum DistanceUnitInput { YARD } -type ElectricalPart implements NamedEntity { +interface DistributionChannel { + active: Boolean + id: ID! +} + +""" +Type used to perform aggregation computations on `DistributionChannel` fields. +""" +type DistributionChannelAggregatedValues { """ - Aggregations over the `components` data. + Computed aggregate values for the `active` field. """ - component_aggregations( - """ - Used to forward-paginate through the `component_aggregations`. When provided, the next page after the - provided cursor will be returned. + active: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Computed aggregate values for the `address` field. + """ + address: NonNumericAggregatedValues - """ - Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the - provided cursor will be returned. + """ + Computed aggregate values for the `contract_terms` field. + """ + contract_terms: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Computed aggregate values for the `current_location` field. + """ + current_location: NonNumericAggregatedValues - """ - Used to filter the `Component` documents that get aggregated over based on the provided criteria. - """ - filter: ComponentFilterInput + """ + Computed aggregate values for the `customer_facing` field. + """ + customer_facing: NonNumericAggregatedValues - """ - Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): ComponentAggregationConnection - components( - """ - Used to forward-paginate through the `components`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the `components`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the returned `components` based on the provided criteria. - """ - filter: ComponentFilterInput - - """ - Used in conjunction with the `after` argument to forward-paginate through the `components`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `components`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through the `components`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + """ + Computed aggregate values for the `established_on` field. + """ + established_on: DateAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues - """ - Used to specify how the returned `components` should be sorted. - """ - order_by: [ComponentSortOrderInput!] - ): ComponentConnection - created_at: DateTime! - id: ID! - manufacturer: Manufacturer - name: String - voltage: Int! -} + """ + Computed aggregate values for the `partner_name` field. + """ + partner_name: NonNumericAggregatedValues -""" -Type used to perform aggregation computations on `ElectricalPart` fields. -""" -type ElectricalPartAggregatedValues { """ - Computed aggregate values for the `created_at` field. + Computed aggregate values for the `platform` field. """ - created_at: DateTimeAggregatedValues + platform: NonNumericAggregatedValues """ - Computed aggregate values for the `id` field. + Computed aggregate values for the `square_footage` field. """ - id: NonNumericAggregatedValues + square_footage: IntAggregatedValues """ - Computed aggregate values for the `name` field. + Computed aggregate values for the `url` field. """ - name: NonNumericAggregatedValues + url: NonNumericAggregatedValues """ - Computed aggregate values for the `voltage` field. + Computed aggregate values for the `vehicle_type` field. """ - voltage: IntAggregatedValues + vehicle_type: NonNumericAggregatedValues } """ -Return type representing a bucket of `ElectricalPart` documents for an aggregations query. +Return type representing a bucket of `DistributionChannel` documents for an aggregations query. """ -type ElectricalPartAggregation { +type DistributionChannelAggregation { """ - Provides computed aggregated values over all `ElectricalPart` documents in an aggregation bucket. + Provides computed aggregated values over all `DistributionChannel` documents in an aggregation bucket. """ - aggregated_values: ElectricalPartAggregatedValues + aggregated_values: DistributionChannelAggregatedValues """ - The count of `ElectricalPart` documents in an aggregation bucket. + The count of `DistributionChannel` documents in an aggregation bucket. """ count: JsonSafeLong! """ - Used to specify the `ElectricalPart` fields to group by. The returned values identify each aggregation bucket. + Used to specify the `DistributionChannel` fields to group by. The returned values identify each aggregation bucket. """ - grouped_by: ElectricalPartGroupedBy + grouped_by: DistributionChannelGroupedBy } """ -Represents a paginated collection of `ElectricalPartAggregation` results. +Represents a paginated collection of `DistributionChannelAggregation` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type ElectricalPartAggregationConnection { +type DistributionChannelAggregationConnection { """ - Wraps a specific `ElectricalPartAggregation` to pair it with its pagination cursor. + Wraps a specific `DistributionChannelAggregation` to pair it with its pagination cursor. """ - edges: [ElectricalPartAggregationEdge!]! + edges: [DistributionChannelAggregationEdge!]! """ - The list of `ElectricalPartAggregation` results. + The list of `DistributionChannelAggregation` results. """ - nodes: [ElectricalPartAggregation!]! + nodes: [DistributionChannelAggregation!]! """ Provides pagination-related information. @@ -2967,41 +2640,42 @@ type ElectricalPartAggregationConnection { } """ -Represents a specific `ElectricalPartAggregation` in the context of a `ElectricalPartAggregationConnection`, -providing access to both the `ElectricalPartAggregation` and query-specific information such as the pagination `Cursor`. +Represents a specific `DistributionChannelAggregation` in the context of a `DistributionChannelAggregationConnection`, +providing access to both the `DistributionChannelAggregation` and query-specific +information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type ElectricalPartAggregationEdge { +type DistributionChannelAggregationEdge { """ - The `Cursor` of this `ElectricalPartAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `ElectricalPartAggregation`. + The `Cursor` of this `DistributionChannelAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `DistributionChannelAggregation`. """ cursor: Cursor """ - The `ElectricalPartAggregation` of this edge. + The `DistributionChannelAggregation` of this edge. """ - node: ElectricalPartAggregation + node: DistributionChannelAggregation } """ -Represents a paginated collection of `ElectricalPart` results. +Represents a paginated collection of `DistributionChannel` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type ElectricalPartConnection { +type DistributionChannelConnection { """ - Wraps a specific `ElectricalPart` to pair it with its pagination cursor. + Wraps a specific `DistributionChannel` to pair it with its pagination cursor. """ - edges: [ElectricalPartEdge!]! + edges: [DistributionChannelEdge!]! """ - The list of `ElectricalPart` results. + The list of `DistributionChannel` results. """ - nodes: [ElectricalPart!]! + nodes: [DistributionChannel!]! """ Provides pagination-related information. @@ -3015,52 +2689,66 @@ type ElectricalPartConnection { } """ -Represents a specific `ElectricalPart` in the context of a `ElectricalPartConnection`, -providing access to both the `ElectricalPart` and query-specific information such as the pagination `Cursor`. +Represents a specific `DistributionChannel` in the context of a `DistributionChannelConnection`, +providing access to both the `DistributionChannel` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type ElectricalPartEdge { +type DistributionChannelEdge { """ - All search highlights for this `ElectricalPart`, indicating where in the indexed document the query matched. + All search highlights for this `DistributionChannel`, indicating where in the indexed document the query matched. """ all_highlights: [SearchHighlight!]! """ - The `Cursor` of this `ElectricalPart`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `ElectricalPart`. + The `Cursor` of this `DistributionChannel`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `DistributionChannel`. """ cursor: Cursor """ - Specific search highlights for this `ElectricalPart`, providing matching snippets for the requested fields. + Specific search highlights for this `DistributionChannel`, providing matching snippets for the requested fields. """ - highlights: ElectricalPartHighlights + highlights: DistributionChannelHighlights """ - The `ElectricalPart` of this edge. + The `DistributionChannel` of this edge. """ - node: ElectricalPart + node: DistributionChannel } """ -Input type used to specify filters on `ElectricalPart` fields. +Input type used to specify filters on `DistributionChannel` fields. Will match all documents if passed as an empty object (or as `null`). """ -input ElectricalPartFilterInput { +input DistributionChannelFilterInput { + """ + Used to filter on the `active` field. + + When `null` or an empty object is passed, matches all documents. + """ + active: BooleanFilterInput + + """ + Used to filter on the `address` field. + + When `null` or an empty object is passed, matches all documents. + """ + address: StringFilterInput + """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `ElectricalPartFilterInput` input because of + be provided on a single `DistributionChannelFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [ElectricalPartFilterInput!] + all_of: [DistributionChannelFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -3069,28 +2757,42 @@ input ElectricalPartFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [ElectricalPartFilterInput!] + any_of: [DistributionChannelFilterInput!] """ - Used to filter on the `created_at` field. + Used to filter on the `contract_terms` field. When `null` or an empty object is passed, matches all documents. """ - created_at: DateTimeFilterInput + contract_terms: StringFilterInput """ - Used to filter on the `id` field. + Used to filter on the `current_location` field. When `null` or an empty object is passed, matches all documents. """ - id: IDFilterInput + current_location: StringFilterInput """ - Used to filter on the `name` field. + Used to filter on the `customer_facing` field. When `null` or an empty object is passed, matches all documents. """ - name: StringFilterInput + customer_facing: BooleanFilterInput + + """ + Used to filter on the `established_on` field. + + When `null` or an empty object is passed, matches all documents. + """ + established_on: DateFilterInput + + """ + Used to filter on the `id` field. + + When `null` or an empty object is passed, matches all documents. + """ + id: IDFilterInput """ Matches records where the provided sub-filter evaluates to false. @@ -3098,521 +2800,521 @@ input ElectricalPartFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: ElectricalPartFilterInput + not: DistributionChannelFilterInput """ - Used to filter on the `voltage` field. + Used to filter on the `partner_name` field. When `null` or an empty object is passed, matches all documents. """ - voltage: IntFilterInput -} + partner_name: StringFilterInput -""" -Type used to specify the `ElectricalPart` fields to group by for aggregations. -""" -type ElectricalPartGroupedBy { """ - Offers the different grouping options for the `created_at` value within this group. + Used to filter on the `platform` field. + + When `null` or an empty object is passed, matches all documents. """ - created_at: DateTimeGroupedBy + platform: StringFilterInput """ - The `name` field value for this group. + Used to filter on the `square_footage` field. + + When `null` or an empty object is passed, matches all documents. """ - name: String + square_footage: IntFilterInput """ - The `voltage` field value for this group. + Used to filter on the `url` field. + + When `null` or an empty object is passed, matches all documents. """ - voltage: Int + url: StringFilterInput + + """ + Used to filter on the `vehicle_type` field. + + When `null` or an empty object is passed, matches all documents. + """ + vehicle_type: StringFilterInput } """ -Type used to request desired `ElectricalPart` search highlight fields. +Type used to specify the `DistributionChannel` fields to group by for aggregations. """ -type ElectricalPartHighlights { +type DistributionChannelGroupedBy { """ - Search highlights for the `id`, providing snippets of the matching text. + The `active` field value for this group. """ - id: [String!]! + active: Boolean """ - Search highlights for the `name`, providing snippets of the matching text. + The `address` field value for this group. """ - name: [String!]! -} + address: String -""" -Enumerates the ways `ElectricalPart`s can be sorted. -""" -enum ElectricalPartSortOrderInput { """ - Sorts ascending by the `created_at` field. + The `contract_terms` field value for this group. """ - created_at_ASC + contract_terms: String """ - Sorts descending by the `created_at` field. + The `current_location` field value for this group. """ - created_at_DESC + current_location: String """ - Sorts ascending by the `id` field. + The `customer_facing` field value for this group. """ - id_ASC + customer_facing: Boolean """ - Sorts descending by the `id` field. + Offers the different grouping options for the `established_on` value within this group. """ - id_DESC + established_on: DateGroupedBy """ - Sorts ascending by the `name` field. + The `partner_name` field value for this group. """ - name_ASC + partner_name: String """ - Sorts descending by the `name` field. + The `platform` field value for this group. """ - name_DESC + platform: String """ - Sorts ascending by the `voltage` field. + The `square_footage` field value for this group. """ - voltage_ASC + square_footage: Int """ - Sorts descending by the `voltage` field. + The `url` field value for this group. """ - voltage_DESC + url: String + + """ + The `vehicle_type` field value for this group. + """ + vehicle_type: String } """ -A return type used from aggregations to provided aggregated values over `Float` fields. +Type used to request desired `DistributionChannel` search highlight fields. """ -type FloatAggregatedValues { +type DistributionChannelHighlights { """ - The average (mean) of the field values within this grouping. - - The computation of this value may introduce additional imprecision (on top of the - natural imprecision of floats) when it deals with intermediary values that are - outside the `JsonSafeLong` range (-9,007,199,254,740,991 to 9,007,199,254,740,991). + Search highlights for the `address`, providing snippets of the matching text. """ - approximate_avg: Float + address: [String!]! """ - An approximation of the number of unique values for this field within this grouping. - - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. + Search highlights for the `contract_terms`, providing snippets of the matching text. """ - approximate_distinct_value_count: JsonSafeLong + contract_terms: [String!]! """ - The sum of the field values within this grouping. + Search highlights for the `current_location`, providing snippets of the matching text. + """ + current_location: [String!]! - As with all double-precision `Float` values, operations are subject to floating-point loss - of precision, so the value may be approximate. """ - approximate_sum: Float! + Search highlights for the `id`, providing snippets of the matching text. + """ + id: [String!]! """ - The maximum of the field values within this grouping. + Search highlights for the `partner_name`, providing snippets of the matching text. + """ + partner_name: [String!]! - The value will be "exact" in that the aggregation computation will return - the exact value of the largest float that has been indexed, without - introducing any new imprecision. However, floats by their nature are - naturally imprecise since they cannot precisely represent all real numbers. """ - exact_max: Float + Search highlights for the `platform`, providing snippets of the matching text. + """ + platform: [String!]! """ - The minimum of the field values within this grouping. + Search highlights for the `url`, providing snippets of the matching text. + """ + url: [String!]! - The value will be "exact" in that the aggregation computation will return - the exact value of the smallest float that has been indexed, without - introducing any new imprecision. However, floats by their nature are - naturally imprecise since they cannot precisely represent all real numbers. """ - exact_min: Float + Search highlights for the `vehicle_type`, providing snippets of the matching text. + """ + vehicle_type: [String!]! } """ -Input type used to specify filters on `Float` fields. - -Will match all documents if passed as an empty object (or as `null`). +Enumerates the ways `DistributionChannel`s can be sorted. """ -input FloatFilterInput { +enum DistributionChannelSortOrderInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `FloatFilterInput` input because of collisions between - key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Sorts ascending by the `address` field. """ - all_of: [FloatFilterInput!] + address_ASC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Sorts descending by the `address` field. """ - any_of: [FloatFilterInput!] + address_DESC """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. + Sorts ascending by the `contract_terms` field. + """ + contract_terms_ASC - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [Float] + Sorts descending by the `contract_terms` field. + """ + contract_terms_DESC """ - Matches records where the field value is greater than (>) the provided value. + Sorts ascending by the `current_location` field. + """ + current_location_ASC - When `null` is passed, matches all documents. """ - gt: Float + Sorts descending by the `current_location` field. + """ + current_location_DESC """ - Matches records where the field value is greater than or equal to (>=) the provided value. + Sorts ascending by the `established_on` field. + """ + established_on_ASC - When `null` is passed, matches all documents. """ - gte: Float + Sorts descending by the `established_on` field. + """ + established_on_DESC """ - Matches records where the field value is less than (<) the provided value. + Sorts ascending by the `id` field. + """ + id_ASC - When `null` is passed, matches all documents. """ - lt: Float + Sorts descending by the `id` field. + """ + id_DESC """ - Matches records where the field value is less than or equal to (<=) the provided value. + Sorts ascending by the `partner_name` field. + """ + partner_name_ASC - When `null` is passed, matches all documents. """ - lte: Float + Sorts descending by the `partner_name` field. + """ + partner_name_DESC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Sorts ascending by the `platform` field. + """ + platform_ASC - When `null` or an empty object is passed, matches no documents. """ - not: FloatFilterInput -} + Sorts descending by the `platform` field. + """ + platform_DESC -""" -Geographic coordinates representing a location on the Earth's surface. -""" -type GeoLocation { """ - Angular distance north or south of the Earth's equator, measured in degrees from -90 to +90. + Sorts ascending by the `square_footage` field. """ - latitude: Float + square_footage_ASC """ - Angular distance east or west of the Prime Meridian at Greenwich, UK, measured in degrees from -180 to +180. + Sorts descending by the `square_footage` field. """ - longitude: Float -} + square_footage_DESC -""" -Input type used to specify distance filtering parameters on `GeoLocation` fields. -""" -input GeoLocationDistanceFilterInput { """ - Angular distance north or south of the Earth's equator, measured in degrees from -90 to +90. + Sorts ascending by the `url` field. """ - latitude: Float! + url_ASC """ - Angular distance east or west of the Prime Meridian at Greenwich, UK, measured in degrees from -180 to +180. + Sorts descending by the `url` field. """ - longitude: Float! + url_DESC """ - Maximum distance (of the provided `unit`) to consider "near" the location identified - by `latitude` and `longitude`. + Sorts ascending by the `vehicle_type` field. """ - max_distance: Float! + vehicle_type_ASC """ - Determines the unit of the specified `max_distance`. + Sorts descending by the `vehicle_type` field. """ - unit: DistanceUnitInput! + vehicle_type_DESC } -""" -Input type used to specify filters on `GeoLocation` fields. - -Will match all documents if passed as an empty object (or as `null`). -""" -input GeoLocationFilterInput { +type ElectricalPart implements NamedEntity { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + Aggregations over the `components` data. + """ + component_aggregations( + """ + Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + provided cursor will be returned. - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `GeoLocationFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor - When `null` or an empty list is passed, matches all documents. - """ - all_of: [GeoLocationFilterInput!] + """ + Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + provided cursor will be returned. - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. - """ - any_of: [GeoLocationFilterInput!] + """ + Used to filter the `Component` documents that get aggregated over based on the provided criteria. + """ + filter: ComponentFilterInput - """ - Matches records where the field's geographic location is within a specified distance from the - location identified by `latitude` and `longitude`. + """ + Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). - When `null` or an empty object is passed, matches all documents. - """ - near: GeoLocationDistanceFilterInput + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int - """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + """ + Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). - When `null` or an empty object is passed, matches no documents. - """ - not: GeoLocationFilterInput -} + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ComponentAggregationConnection + components( + """ + Used to forward-paginate through the `components`. When provided, the next page after the + provided cursor will be returned. -type GeoShape { - coordinates: [Float!]! - type: String + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `components`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `components` based on the provided criteria. + """ + filter: ComponentFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `components`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `components`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `components`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `components` should be sorted. + """ + order_by: [ComponentSortOrderInput!] + ): ComponentConnection + created_at: DateTime! + id: ID! + manufacturer: Manufacturer + name: String + voltage: Int! } """ -Input type used to specify filters on `ID` fields. - -Will match all documents if passed as an empty object (or as `null`). +Type used to perform aggregation computations on `ElectricalPart` fields. """ -input IDFilterInput { +type ElectricalPartAggregatedValues { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IDFilterInput` input because of collisions between - key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Computed aggregate values for the `created_at` field. """ - all_of: [IDFilterInput!] + created_at: DateTimeAggregatedValues """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Computed aggregate values for the `id` field. """ - any_of: [IDFilterInput!] + id: NonNumericAggregatedValues """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. - - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + Computed aggregate values for the `name` field. """ - equal_to_any_of: [ID] + name: NonNumericAggregatedValues """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Computed aggregate values for the `voltage` field. """ - not: IDFilterInput + voltage: IntAggregatedValues } """ -Input type used to specify filters on elements of a `[ID]` field. - -Will match all documents if passed as an empty object (or as `null`). +Return type representing a bucket of `ElectricalPart` documents for an aggregations query. """ -input IDListElementFilterInput { +type ElectricalPartAggregation { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IDListElementFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. - """ - all_of: [IDListElementFilterInput!] + Provides computed aggregated values over all `ElectricalPart` documents in an aggregation bucket. + """ + aggregated_values: ElectricalPartAggregatedValues """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + The count of `ElectricalPart` documents in an aggregation bucket. """ - any_of: [IDListElementFilterInput!] + count: JsonSafeLong! """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. - - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + Used to specify the `ElectricalPart` fields to group by. The returned values identify each aggregation bucket. """ - equal_to_any_of: [ID!] + grouped_by: ElectricalPartGroupedBy } """ -Input type used to specify filters on `[ID]` fields. +Represents a paginated collection of `ElectricalPartAggregation` results. -Will match all documents if passed as an empty object (or as `null`). +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -input IDListFilterInput { +type ElectricalPartAggregationConnection { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IDListFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Wraps a specific `ElectricalPartAggregation` to pair it with its pagination cursor. """ - all_of: [IDListFilterInput!] + edges: [ElectricalPartAggregationEdge!]! """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + The list of `ElectricalPartAggregation` results. """ - any_of: [IDListFilterInput!] + nodes: [ElectricalPartAggregation!]! """ - Matches records where any of the list elements match the provided sub-filter. - - When `null` or an empty object is passed, matches all documents. + Provides pagination-related information. """ - any_satisfy: IDListElementFilterInput + page_info: PageInfo! +} - """ - Used to filter on the number of non-null elements in this list field. +""" +Represents a specific `ElectricalPartAggregation` in the context of a `ElectricalPartAggregationConnection`, +providing access to both the `ElectricalPartAggregation` and query-specific information such as the pagination `Cursor`. - When `null` or an empty object is passed, matches all documents. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type ElectricalPartAggregationEdge { """ - count: IntFilterInput - + The `Cursor` of this `ElectricalPartAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `ElectricalPartAggregation`. """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + cursor: Cursor - When `null` or an empty object is passed, matches no documents. """ - not: IDListFilterInput + The `ElectricalPartAggregation` of this edge. + """ + node: ElectricalPartAggregation } """ -A return type used from aggregations to provided aggregated values over `Int` fields. +Represents a paginated collection of `ElectricalPart` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type IntAggregatedValues { +type ElectricalPartConnection { """ - The average (mean) of the field values within this grouping. - - Note that the returned value is approximate. Imprecision can be introduced by the computation if - any intermediary values fall outside the `JsonSafeLong` range (-9,007,199,254,740,991 - to 9,007,199,254,740,991). + Wraps a specific `ElectricalPart` to pair it with its pagination cursor. """ - approximate_avg: Float + edges: [ElectricalPartEdge!]! """ - An approximation of the number of unique values for this field within this grouping. - - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. + The list of `ElectricalPart` results. """ - approximate_distinct_value_count: JsonSafeLong + nodes: [ElectricalPart!]! """ - The (approximate) sum of the field values within this grouping. - - Sums of large `Int` values can result in overflow, where the exact sum cannot - fit in a `JsonSafeLong` return value. This field, as a double-precision `Float`, can - represent larger sums, but the value may only be approximate. + Provides pagination-related information. """ - approximate_sum: Float! + page_info: PageInfo! """ - The maximum of the field values within this grouping. - - So long as the grouping contains at least one non-null value for the - underlying indexed field, this will return an exact non-null value. + The total number of edges available in this connection to paginate over. """ - exact_max: Int + total_edge_count: JsonSafeLong! +} + +""" +Represents a specific `ElectricalPart` in the context of a `ElectricalPartConnection`, +providing access to both the `ElectricalPart` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type ElectricalPartEdge { """ - The minimum of the field values within this grouping. + All search highlights for this `ElectricalPart`, indicating where in the indexed document the query matched. + """ + all_highlights: [SearchHighlight!]! - So long as the grouping contains at least one non-null value for the - underlying indexed field, this will return an exact non-null value. """ - exact_min: Int + The `Cursor` of this `ElectricalPart`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `ElectricalPart`. + """ + cursor: Cursor """ - The exact sum of the field values within this grouping, if it fits in a `JsonSafeLong`. + Specific search highlights for this `ElectricalPart`, providing matching snippets for the requested fields. + """ + highlights: ElectricalPartHighlights - Sums of large `Int` values can result in overflow, where the exact sum cannot - fit in a `JsonSafeLong`. In that case, `null` will be returned, and `approximate_sum` - can be used to get an approximate value. """ - exact_sum: JsonSafeLong + The `ElectricalPart` of this edge. + """ + node: ElectricalPart } """ -Input type used to specify filters on `Int` fields. +Input type used to specify filters on `ElectricalPart` fields. Will match all documents if passed as an empty object (or as `null`). """ -input IntFilterInput { +input ElectricalPartFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IntFilterInput` input because of collisions between - key names. For example, if you want to AND multiple + be provided on a single `ElectricalPartFilterInput` input because of + collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [IntFilterInput!] + all_of: [ElectricalPartFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -3621,336 +3323,309 @@ input IntFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [IntFilterInput!] - - """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. - - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. - """ - equal_to_any_of: [Int] + any_of: [ElectricalPartFilterInput!] """ - Matches records where the field value is greater than (>) the provided value. + Used to filter on the `created_at` field. - When `null` is passed, matches all documents. + When `null` or an empty object is passed, matches all documents. """ - gt: Int + created_at: DateTimeFilterInput """ - Matches records where the field value is greater than or equal to (>=) the provided value. + Used to filter on the `id` field. - When `null` is passed, matches all documents. + When `null` or an empty object is passed, matches all documents. """ - gte: Int + id: IDFilterInput """ - Matches records where the field value is less than (<) the provided value. + Used to filter on the `name` field. - When `null` is passed, matches all documents. + When `null` or an empty object is passed, matches all documents. """ - lt: Int + name: StringFilterInput """ - Matches records where the field value is less than or equal to (<=) the provided value. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - When `null` is passed, matches all documents. + When `null` or an empty object is passed, matches no documents. """ - lte: Int + not: ElectricalPartFilterInput """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Used to filter on the `voltage` field. - When `null` or an empty object is passed, matches no documents. + When `null` or an empty object is passed, matches all documents. """ - not: IntFilterInput + voltage: IntFilterInput } """ -Input type used to specify filters on elements of a `[Int]` field. - -Will match all documents if passed as an empty object (or as `null`). +Type used to specify the `ElectricalPart` fields to group by for aggregations. """ -input IntListElementFilterInput { +type ElectricalPartGroupedBy { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IntListElementFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Offers the different grouping options for the `created_at` value within this group. """ - all_of: [IntListElementFilterInput!] + created_at: DateTimeGroupedBy """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + The `name` field value for this group. """ - any_of: [IntListElementFilterInput!] + name: String """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. - - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + The `voltage` field value for this group. """ - equal_to_any_of: [Int!] + voltage: Int +} +""" +Type used to request desired `ElectricalPart` search highlight fields. +""" +type ElectricalPartHighlights { """ - Matches records where the field value is greater than (>) the provided value. - - When `null` is passed, matches all documents. + Search highlights for the `id`, providing snippets of the matching text. """ - gt: Int + id: [String!]! """ - Matches records where the field value is greater than or equal to (>=) the provided value. - - When `null` is passed, matches all documents. + Search highlights for the `name`, providing snippets of the matching text. """ - gte: Int - - """ - Matches records where the field value is less than (<) the provided value. - - When `null` is passed, matches all documents. - """ - lt: Int - - """ - Matches records where the field value is less than or equal to (<=) the provided value. - - When `null` is passed, matches all documents. - """ - lte: Int + name: [String!]! } """ -Input type used to specify filters on `[Int]` fields. - -Will match all documents if passed as an empty object (or as `null`). +Enumerates the ways `ElectricalPart`s can be sorted. """ -input IntListFilterInput { +enum ElectricalPartSortOrderInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IntListFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Sorts ascending by the `created_at` field. """ - all_of: [IntListFilterInput!] + created_at_ASC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Sorts descending by the `created_at` field. """ - any_of: [IntListFilterInput!] + created_at_DESC """ - Matches records where any of the list elements match the provided sub-filter. + Sorts ascending by the `id` field. + """ + id_ASC - When `null` or an empty object is passed, matches all documents. """ - any_satisfy: IntListElementFilterInput + Sorts descending by the `id` field. + """ + id_DESC """ - Used to filter on the number of non-null elements in this list field. + Sorts ascending by the `name` field. + """ + name_ASC - When `null` or an empty object is passed, matches all documents. """ - count: IntFilterInput + Sorts descending by the `name` field. + """ + name_DESC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Sorts ascending by the `voltage` field. + """ + voltage_ASC - When `null` or an empty object is passed, matches no documents. """ - not: IntListFilterInput + Sorts descending by the `voltage` field. + """ + voltage_DESC } -union Inventor = Company | Person - """ -Type used to perform aggregation computations on `Inventor` fields. +A return type used from aggregations to provided aggregated values over `Float` fields. """ -type InventorAggregatedValues { - """ - Computed aggregate values for the `id` field. +type FloatAggregatedValues { """ - id: NonNumericAggregatedValues + The average (mean) of the field values within this grouping. + The computation of this value may introduce additional imprecision (on top of the + natural imprecision of floats) when it deals with intermediary values that are + outside the `JsonSafeLong` range (-9,007,199,254,740,991 to 9,007,199,254,740,991). """ - Computed aggregate values for the `name` field. - """ - name: NonNumericAggregatedValues + approximate_avg: Float """ - Computed aggregate values for the `nationality` field. - """ - nationality: NonNumericAggregatedValues + An approximation of the number of unique values for this field within this grouping. + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. """ - Computed aggregate values for the `stock_ticker` field. - """ - stock_ticker: NonNumericAggregatedValues -} + approximate_distinct_value_count: JsonSafeLong -""" -Return type representing a bucket of `Inventor` documents for an aggregations query. -""" -type InventorAggregation { """ - Provides computed aggregated values over all `Inventor` documents in an aggregation bucket. + The sum of the field values within this grouping. + + As with all double-precision `Float` values, operations are subject to floating-point loss + of precision, so the value may be approximate. """ - aggregated_values: InventorAggregatedValues + approximate_sum: Float! """ - The count of `Inventor` documents in an aggregation bucket. + The maximum of the field values within this grouping. + + The value will be "exact" in that the aggregation computation will return + the exact value of the largest float that has been indexed, without + introducing any new imprecision. However, floats by their nature are + naturally imprecise since they cannot precisely represent all real numbers. """ - count: JsonSafeLong! + exact_max: Float """ - Used to specify the `Inventor` fields to group by. The returned values identify each aggregation bucket. + The minimum of the field values within this grouping. + + The value will be "exact" in that the aggregation computation will return + the exact value of the smallest float that has been indexed, without + introducing any new imprecision. However, floats by their nature are + naturally imprecise since they cannot precisely represent all real numbers. """ - grouped_by: InventorGroupedBy + exact_min: Float } """ -Represents a paginated collection of `InventorAggregation` results. +Input type used to specify filters on `Float` fields. -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +Will match all documents if passed as an empty object (or as `null`). """ -type InventorAggregationConnection { +input FloatFilterInput { """ - Wraps a specific `InventorAggregation` to pair it with its pagination cursor. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `FloatFilterInput` input because of collisions between + key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - edges: [InventorAggregationEdge!]! + all_of: [FloatFilterInput!] """ - The list of `InventorAggregation` results. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - nodes: [InventorAggregation!]! + any_of: [FloatFilterInput!] """ - Provides pagination-related information. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. + + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - page_info: PageInfo! -} + equal_to_any_of: [Float] -""" -Represents a specific `InventorAggregation` in the context of a `InventorAggregationConnection`, -providing access to both the `InventorAggregation` and query-specific information such as the pagination `Cursor`. + """ + Matches records where the field value is greater than (>) the provided value. -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type InventorAggregationEdge { + When `null` is passed, matches all documents. """ - The `Cursor` of this `InventorAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `InventorAggregation`. + gt: Float + """ - cursor: Cursor + Matches records where the field value is greater than or equal to (>=) the provided value. + When `null` is passed, matches all documents. """ - The `InventorAggregation` of this edge. + gte: Float + """ - node: InventorAggregation -} + Matches records where the field value is less than (<) the provided value. -""" -Represents a paginated collection of `Inventor` results. + When `null` is passed, matches all documents. + """ + lt: Float -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type InventorConnection { """ - Wraps a specific `Inventor` to pair it with its pagination cursor. + Matches records where the field value is less than or equal to (<=) the provided value. + + When `null` is passed, matches all documents. """ - edges: [InventorEdge!]! + lte: Float """ - The list of `Inventor` results. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. """ - nodes: [Inventor!]! + not: FloatFilterInput +} +""" +Geographic coordinates representing a location on the Earth's surface. +""" +type GeoLocation { """ - Provides pagination-related information. + Angular distance north or south of the Earth's equator, measured in degrees from -90 to +90. """ - page_info: PageInfo! + latitude: Float """ - The total number of edges available in this connection to paginate over. + Angular distance east or west of the Prime Meridian at Greenwich, UK, measured in degrees from -180 to +180. """ - total_edge_count: JsonSafeLong! + longitude: Float } """ -Represents a specific `Inventor` in the context of a `InventorConnection`, -providing access to both the `Inventor` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +Input type used to specify distance filtering parameters on `GeoLocation` fields. """ -type InventorEdge { +input GeoLocationDistanceFilterInput { """ - All search highlights for this `Inventor`, indicating where in the indexed document the query matched. + Angular distance north or south of the Earth's equator, measured in degrees from -90 to +90. """ - all_highlights: [SearchHighlight!]! + latitude: Float! """ - The `Cursor` of this `Inventor`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Inventor`. + Angular distance east or west of the Prime Meridian at Greenwich, UK, measured in degrees from -180 to +180. """ - cursor: Cursor + longitude: Float! """ - Specific search highlights for this `Inventor`, providing matching snippets for the requested fields. + Maximum distance (of the provided `unit`) to consider "near" the location identified + by `latitude` and `longitude`. """ - highlights: InventorHighlights + max_distance: Float! """ - The `Inventor` of this edge. + Determines the unit of the specified `max_distance`. """ - node: Inventor + unit: DistanceUnitInput! } """ -Input type used to specify filters on `Inventor` fields. +Input type used to specify filters on `GeoLocation` fields. Will match all documents if passed as an empty object (or as `null`). """ -input InventorFilterInput { +input GeoLocationFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `InventorFilterInput` input because of collisions + be provided on a single `GeoLocationFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [InventorFilterInput!] + all_of: [GeoLocationFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -3959,166 +3634,168 @@ input InventorFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [InventorFilterInput!] + any_of: [GeoLocationFilterInput!] """ - Used to filter on the `id` field. + Matches records where the field's geographic location is within a specified distance from the + location identified by `latitude` and `longitude`. When `null` or an empty object is passed, matches all documents. """ - id: IDFilterInput + near: GeoLocationDistanceFilterInput """ - Used to filter on the `name` field. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` or an empty object is passed, matches no documents. """ - name: StringFilterInput + not: GeoLocationFilterInput +} - """ - Used to filter on the `nationality` field. +type GeoShape { + coordinates: [Float!]! + type: String +} - When `null` or an empty object is passed, matches all documents. - """ - nationality: StringFilterInput +""" +Input type used to specify filters on `ID` fields. +Will match all documents if passed as an empty object (or as `null`). +""" +input IDFilterInput { """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - When `null` or an empty object is passed, matches no documents. - """ - not: InventorFilterInput + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `IDFilterInput` input because of collisions between + key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + When `null` or an empty list is passed, matches all documents. """ - Used to filter on the `stock_ticker` field. + all_of: [IDFilterInput!] - When `null` or an empty object is passed, matches all documents. """ - stock_ticker: StringFilterInput -} + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. -""" -Type used to specify the `Inventor` fields to group by for aggregations. -""" -type InventorGroupedBy { - """ - The `name` field value for this group. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - name: String + any_of: [IDFilterInput!] """ - The `nationality` field value for this group. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. + + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - nationality: String + equal_to_any_of: [ID] """ - The `stock_ticker` field value for this group. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. """ - stock_ticker: String + not: IDFilterInput } """ -Type used to request desired `Inventor` search highlight fields. +Input type used to specify filters on elements of a `[ID]` field. + +Will match all documents if passed as an empty object (or as `null`). """ -type InventorHighlights { - """ - Search highlights for the `id`, providing snippets of the matching text. +input IDListElementFilterInput { """ - id: [String!]! + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `IDListElementFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - Search highlights for the `name`, providing snippets of the matching text. - """ - name: [String!]! + all_of: [IDListElementFilterInput!] """ - Search highlights for the `nationality`, providing snippets of the matching text. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - nationality: [String!]! + any_of: [IDListElementFilterInput!] """ - Search highlights for the `stock_ticker`, providing snippets of the matching text. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. + + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - stock_ticker: [String!]! + equal_to_any_of: [ID!] } """ -Enumerates the ways `Inventor`s can be sorted. +Input type used to specify filters on `[ID]` fields. + +Will match all documents if passed as an empty object (or as `null`). """ -enum InventorSortOrderInput { - """ - Sorts ascending by the `id` field. +input IDListFilterInput { """ - id_ASC + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - """ - Sorts descending by the `id` field. - """ - id_DESC + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `IDListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + When `null` or an empty list is passed, matches all documents. """ - Sorts ascending by the `name` field. - """ - name_ASC + all_of: [IDListFilterInput!] """ - Sorts descending by the `name` field. - """ - name_DESC + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - Sorts ascending by the `nationality` field. - """ - nationality_ASC + any_of: [IDListFilterInput!] """ - Sorts descending by the `nationality` field. + Matches records where any of the list elements match the provided sub-filter. + + When `null` or an empty object is passed, matches all documents. """ - nationality_DESC + any_satisfy: IDListElementFilterInput """ - Sorts ascending by the `stock_ticker` field. + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. """ - stock_ticker_ASC + count: IntFilterInput """ - Sorts descending by the `stock_ticker` field. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. """ - stock_ticker_DESC + not: IDListFilterInput } """ -A numeric type for large integer values that can serialize safely as JSON. - -While JSON itself has no hard limit on the size of integers, the RFC-7159 spec -mentions that values outside of the range -9,007,199,254,740,991 (-(2^53) + 1) -to 9,007,199,254,740,991 (2^53 - 1) may not be interopable with all JSON -implementations. As it turns out, the number implementation used by JavaScript -has this issue. When you parse a JSON string that contains a numeric value like -`4693522397653681111`, the parsed result will contain a rounded value like -`4693522397653681000`. - -While this is entirely a client-side problem, we want to preserve maximum compatibility -with common client languages. Given the ubiquity of GraphiQL as a GraphQL client, -we want to avoid this problem. - -Our solution is to support two separate types: - -- This type (`JsonSafeLong`) is serialized as a number, but limits values to the safely - serializable range. -- The `LongString` type supports long values that use all 64 bits, but serializes as a - string rather than a number, avoiding the JavaScript compatibility problems. - -For more background, see the [JavaScript `Number.MAX_SAFE_INTEGER` -docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER). -""" -scalar JsonSafeLong - -""" -A return type used from aggregations to provided aggregated values over `JsonSafeLong` fields. +A return type used from aggregations to provided aggregated values over `Int` fields. """ -type JsonSafeLongAggregatedValues { +type IntAggregatedValues { """ The average (mean) of the field values within this grouping. @@ -4141,7 +3818,7 @@ type JsonSafeLongAggregatedValues { """ The (approximate) sum of the field values within this grouping. - Sums of large `JsonSafeLong` values can result in overflow, where the exact sum cannot + Sums of large `Int` values can result in overflow, where the exact sum cannot fit in a `JsonSafeLong` return value. This field, as a double-precision `Float`, can represent larger sums, but the value may only be approximate. """ @@ -4153,7 +3830,7 @@ type JsonSafeLongAggregatedValues { So long as the grouping contains at least one non-null value for the underlying indexed field, this will return an exact non-null value. """ - exact_max: JsonSafeLong + exact_max: Int """ The minimum of the field values within this grouping. @@ -4161,12 +3838,12 @@ type JsonSafeLongAggregatedValues { So long as the grouping contains at least one non-null value for the underlying indexed field, this will return an exact non-null value. """ - exact_min: JsonSafeLong + exact_min: Int """ The exact sum of the field values within this grouping, if it fits in a `JsonSafeLong`. - Sums of large `JsonSafeLong` values can result in overflow, where the exact sum cannot + Sums of large `Int` values can result in overflow, where the exact sum cannot fit in a `JsonSafeLong`. In that case, `null` will be returned, and `approximate_sum` can be used to get an approximate value. """ @@ -4174,22 +3851,22 @@ type JsonSafeLongAggregatedValues { } """ -Input type used to specify filters on `JsonSafeLong` fields. +Input type used to specify filters on `Int` fields. Will match all documents if passed as an empty object (or as `null`). """ -input JsonSafeLongFilterInput { +input IntFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `JsonSafeLongFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `IntFilterInput` input because of collisions between + key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [JsonSafeLongFilterInput!] + all_of: [IntFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4198,7 +3875,7 @@ input JsonSafeLongFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [JsonSafeLongFilterInput!] + any_of: [IntFilterInput!] """ Matches records where the field value is equal to any of the provided values. @@ -4208,35 +3885,35 @@ input JsonSafeLongFilterInput { this part of the filter matches no documents. When `null` is passed in the list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [JsonSafeLong] + equal_to_any_of: [Int] """ Matches records where the field value is greater than (>) the provided value. When `null` is passed, matches all documents. """ - gt: JsonSafeLong + gt: Int """ Matches records where the field value is greater than or equal to (>=) the provided value. When `null` is passed, matches all documents. """ - gte: JsonSafeLong + gte: Int """ Matches records where the field value is less than (<) the provided value. When `null` is passed, matches all documents. """ - lt: JsonSafeLong + lt: Int """ Matches records where the field value is less than or equal to (<=) the provided value. When `null` is passed, matches all documents. """ - lte: JsonSafeLong + lte: Int """ Matches records where the provided sub-filter evaluates to false. @@ -4244,26 +3921,26 @@ input JsonSafeLongFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: JsonSafeLongFilterInput + not: IntFilterInput } """ -Input type used to specify filters on elements of a `[JsonSafeLong]` field. +Input type used to specify filters on elements of a `[Int]` field. Will match all documents if passed as an empty object (or as `null`). """ -input JsonSafeLongListElementFilterInput { +input IntListElementFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `JsonSafeLongListElementFilterInput` input because of + be provided on a single `IntListElementFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [JsonSafeLongListElementFilterInput!] + all_of: [IntListElementFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4272,7 +3949,7 @@ input JsonSafeLongListElementFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [JsonSafeLongListElementFilterInput!] + any_of: [IntListElementFilterInput!] """ Matches records where the field value is equal to any of the provided values. @@ -4282,54 +3959,54 @@ input JsonSafeLongListElementFilterInput { this part of the filter matches no documents. When `null` is passed in the list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [JsonSafeLong!] + equal_to_any_of: [Int!] """ Matches records where the field value is greater than (>) the provided value. When `null` is passed, matches all documents. """ - gt: JsonSafeLong + gt: Int """ Matches records where the field value is greater than or equal to (>=) the provided value. When `null` is passed, matches all documents. """ - gte: JsonSafeLong + gte: Int """ Matches records where the field value is less than (<) the provided value. When `null` is passed, matches all documents. """ - lt: JsonSafeLong + lt: Int """ Matches records where the field value is less than or equal to (<=) the provided value. When `null` is passed, matches all documents. """ - lte: JsonSafeLong + lte: Int } """ -Input type used to specify filters on `[JsonSafeLong]` fields. +Input type used to specify filters on `[Int]` fields. Will match all documents if passed as an empty object (or as `null`). """ -input JsonSafeLongListFilterInput { +input IntListFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `JsonSafeLongListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple + be provided on a single `IntListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [JsonSafeLongListFilterInput!] + all_of: [IntListFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4338,14 +4015,14 @@ input JsonSafeLongListFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [JsonSafeLongListFilterInput!] + any_of: [IntListFilterInput!] """ Matches records where any of the list elements match the provided sub-filter. When `null` or an empty object is passed, matches all documents. """ - any_satisfy: JsonSafeLongListElementFilterInput + any_satisfy: IntListElementFilterInput """ Used to filter on the number of non-null elements in this list field. @@ -4360,282 +4037,390 @@ input JsonSafeLongListFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: JsonSafeLongListFilterInput + not: IntListFilterInput } -""" -A local time such as `"23:59:33"` or `"07:20:47.454"` without a time zone or offset, formatted based on the -[partial-time portion of RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6). -""" -scalar LocalTime +union Inventor = Company | Person """ -A return type used from aggregations to provided aggregated values over `LocalTime` fields. +Type used to perform aggregation computations on `Inventor` fields. """ -type LocalTimeAggregatedValues { +type InventorAggregatedValues { """ - The average (mean) of the field values within this grouping. - The returned value will be rounded to the nearest `LocalTime` value. + Computed aggregate values for the `id` field. """ - approximate_avg: LocalTime + id: NonNumericAggregatedValues """ - An approximation of the number of unique values for this field within this grouping. - - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. + Computed aggregate values for the `name` field. """ - approximate_distinct_value_count: JsonSafeLong + name: NonNumericAggregatedValues """ - The maximum of the field values within this grouping. - - So long as the grouping contains at least one non-null value for the - underlying indexed field, this will return an exact non-null value. + Computed aggregate values for the `nationality` field. """ - exact_max: LocalTime + nationality: NonNumericAggregatedValues """ - The minimum of the field values within this grouping. - - So long as the grouping contains at least one non-null value for the - underlying indexed field, this will return an exact non-null value. + Computed aggregate values for the `stock_ticker` field. """ - exact_min: LocalTime + stock_ticker: NonNumericAggregatedValues } """ -Input type used to specify filters on `LocalTime` fields. - -Will match all documents if passed as an empty object (or as `null`). +Return type representing a bucket of `Inventor` documents for an aggregations query. """ -input LocalTimeFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `LocalTimeFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. - """ - all_of: [LocalTimeFilterInput!] - - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. +type InventorAggregation { """ - any_of: [LocalTimeFilterInput!] - + Provides computed aggregated values over all `Inventor` documents in an aggregation bucket. """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. + aggregated_values: InventorAggregatedValues - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [LocalTime] - + The count of `Inventor` documents in an aggregation bucket. """ - Matches records where the field value is greater than (>) the provided value. + count: JsonSafeLong! - When `null` is passed, matches all documents. """ - gt: LocalTime - + Used to specify the `Inventor` fields to group by. The returned values identify each aggregation bucket. """ - Matches records where the field value is greater than or equal to (>=) the provided value. + grouped_by: InventorGroupedBy +} - When `null` is passed, matches all documents. - """ - gte: LocalTime +""" +Represents a paginated collection of `InventorAggregation` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type InventorAggregationConnection { """ - Matches records where the field value is less than (<) the provided value. - - When `null` is passed, matches all documents. + Wraps a specific `InventorAggregation` to pair it with its pagination cursor. """ - lt: LocalTime + edges: [InventorAggregationEdge!]! """ - Matches records where the field value is less than or equal to (<=) the provided value. - - When `null` is passed, matches all documents. + The list of `InventorAggregation` results. """ - lte: LocalTime + nodes: [InventorAggregation!]! """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Provides pagination-related information. """ - not: LocalTimeFilterInput + page_info: PageInfo! } """ -Input type offered when grouping on `LocalTime` fields, representing the amount of offset -(positive or negative) to shift the `LocalTime` boundaries of each grouping bucket. +Represents a specific `InventorAggregation` in the context of a `InventorAggregationConnection`, +providing access to both the `InventorAggregation` and query-specific information such as the pagination `Cursor`. -For example, when grouping by `HOUR`, you can shift by 30 minutes to change -what minute-of-hour hours are considered to start on. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -input LocalTimeGroupingOffsetInput { +type InventorAggregationEdge { """ - Number (positive or negative) of the given `unit` to offset the boundaries of the `LocalTime` groupings. + The `Cursor` of this `InventorAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `InventorAggregation`. """ - amount: Int! + cursor: Cursor """ - Unit of offsetting to apply to the boundaries of the `LocalTime` groupings. + The `InventorAggregation` of this edge. """ - unit: LocalTimeUnitInput! + node: InventorAggregation } """ -Enumerates the supported truncation units of a `LocalTime`. +Represents a paginated collection of `Inventor` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -enum LocalTimeGroupingTruncationUnitInput { +type InventorConnection { """ - The hour a `LocalTime` falls in. + Wraps a specific `Inventor` to pair it with its pagination cursor. """ - HOUR + edges: [InventorEdge!]! """ - The minute a `LocalTime` falls in. + The list of `Inventor` results. """ - MINUTE + nodes: [Inventor!]! """ - The second a `LocalTime` falls in. + Provides pagination-related information. """ - SECOND + page_info: PageInfo! + + """ + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! } """ -Enumeration of `LocalTime` units. +Represents a specific `Inventor` in the context of a `InventorConnection`, +providing access to both the `Inventor` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -enum LocalTimeUnitInput { +type InventorEdge { """ - 1/24th of a day. + All search highlights for this `Inventor`, indicating where in the indexed document the query matched. """ - HOUR + all_highlights: [SearchHighlight!]! """ - 1/1000th of a second. + The `Cursor` of this `Inventor`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Inventor`. """ - MILLISECOND + cursor: Cursor """ - 1/60th of an hour. + Specific search highlights for this `Inventor`, providing matching snippets for the requested fields. """ - MINUTE + highlights: InventorHighlights """ - 1/60th of a minute. + The `Inventor` of this edge. """ - SECOND + node: Inventor } """ -A numeric type for large integer values in the inclusive range -2^63 -(-9,223,372,036,854,775,808) to (2^63 - 1) (9,223,372,036,854,775,807). +Input type used to specify filters on `Inventor` fields. -Note that `LongString` values are serialized as strings within JSON, to avoid -interopability problems with JavaScript. If you want a large integer type that -serializes within JSON as a number, use `JsonSafeLong`. +Will match all documents if passed as an empty object (or as `null`). """ -scalar LongString +input InventorFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. -""" -A return type used from aggregations to provided aggregated values over `LongString` fields. -""" -type LongStringAggregatedValues { + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `InventorFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - The average (mean) of the field values within this grouping. + all_of: [InventorFilterInput!] - Note that the returned value is approximate. Imprecision can be introduced by the computation if - any intermediary values fall outside the `JsonSafeLong` range (-9,007,199,254,740,991 - to 9,007,199,254,740,991). """ - approximate_avg: Float + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - An approximation of the number of unique values for this field within this grouping. + any_of: [InventorFilterInput!] - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. """ - approximate_distinct_value_count: JsonSafeLong + Used to filter on the `id` field. + When `null` or an empty object is passed, matches all documents. """ - The maximum of the field values within this grouping. + id: IDFilterInput - The aggregation computation performed to identify the largest value is not able - to maintain exact precision when dealing with values that are outside the `JsonSafeLong` - range (-9,007,199,254,740,991 to 9,007,199,254,740,991). - In that case, the `exact_max` field will return `null`, but this field will provide - a value which may be approximate. """ - approximate_max: LongString + Used to filter on the `name` field. + When `null` or an empty object is passed, matches all documents. """ - The minimum of the field values within this grouping. + name: StringFilterInput - The aggregation computation performed to identify the smallest value is not able - to maintain exact precision when dealing with values that are outside the `JsonSafeLong` - range (-9,007,199,254,740,991 to 9,007,199,254,740,991). - In that case, the `exact_min` field will return `null`, but this field will provide - a value which may be approximate. """ - approximate_min: LongString + Used to filter on the `nationality` field. + When `null` or an empty object is passed, matches all documents. """ - The (approximate) sum of the field values within this grouping. + nationality: StringFilterInput - Sums of large `LongString` values can result in overflow, where the exact sum cannot - fit in a `LongString` return value. This field, as a double-precision `Float`, can - represent larger sums, but the value may only be approximate. """ - approximate_sum: Float! + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + When `null` or an empty object is passed, matches no documents. """ - The maximum of the field values within this grouping. + not: InventorFilterInput - So long as the grouping contains at least one non-null value, and no values exceed the - `JsonSafeLong` range in the underlying indexed field, this will return an exact non-null value. + """ + Used to filter on the `stock_ticker` field. - If no non-null values are available, or if the maximum value is outside the `JsonSafeLong` - range, `null` will be returned. `approximate_max` can be used to differentiate between these - cases and to get an approximate value. + When `null` or an empty object is passed, matches all documents. + """ + stock_ticker: StringFilterInput +} + +""" +Type used to specify the `Inventor` fields to group by for aggregations. +""" +type InventorGroupedBy { + """ + The `name` field value for this group. + """ + name: String + + """ + The `nationality` field value for this group. + """ + nationality: String + + """ + The `stock_ticker` field value for this group. + """ + stock_ticker: String +} + +""" +Type used to request desired `Inventor` search highlight fields. +""" +type InventorHighlights { + """ + Search highlights for the `id`, providing snippets of the matching text. + """ + id: [String!]! + + """ + Search highlights for the `name`, providing snippets of the matching text. + """ + name: [String!]! + + """ + Search highlights for the `nationality`, providing snippets of the matching text. + """ + nationality: [String!]! + + """ + Search highlights for the `stock_ticker`, providing snippets of the matching text. + """ + stock_ticker: [String!]! +} + +""" +Enumerates the ways `Inventor`s can be sorted. +""" +enum InventorSortOrderInput { + """ + Sorts ascending by the `id` field. + """ + id_ASC + + """ + Sorts descending by the `id` field. + """ + id_DESC + + """ + Sorts ascending by the `name` field. + """ + name_ASC + + """ + Sorts descending by the `name` field. + """ + name_DESC + + """ + Sorts ascending by the `nationality` field. + """ + nationality_ASC + + """ + Sorts descending by the `nationality` field. + """ + nationality_DESC + + """ + Sorts ascending by the `stock_ticker` field. + """ + stock_ticker_ASC + + """ + Sorts descending by the `stock_ticker` field. + """ + stock_ticker_DESC +} + +""" +A numeric type for large integer values that can serialize safely as JSON. + +While JSON itself has no hard limit on the size of integers, the RFC-7159 spec +mentions that values outside of the range -9,007,199,254,740,991 (-(2^53) + 1) +to 9,007,199,254,740,991 (2^53 - 1) may not be interopable with all JSON +implementations. As it turns out, the number implementation used by JavaScript +has this issue. When you parse a JSON string that contains a numeric value like +`4693522397653681111`, the parsed result will contain a rounded value like +`4693522397653681000`. + +While this is entirely a client-side problem, we want to preserve maximum compatibility +with common client languages. Given the ubiquity of GraphiQL as a GraphQL client, +we want to avoid this problem. + +Our solution is to support two separate types: + +- This type (`JsonSafeLong`) is serialized as a number, but limits values to the safely + serializable range. +- The `LongString` type supports long values that use all 64 bits, but serializes as a + string rather than a number, avoiding the JavaScript compatibility problems. + +For more background, see the [JavaScript `Number.MAX_SAFE_INTEGER` +docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER). +""" +scalar JsonSafeLong + +""" +A return type used from aggregations to provided aggregated values over `JsonSafeLong` fields. +""" +type JsonSafeLongAggregatedValues { + """ + The average (mean) of the field values within this grouping. + + Note that the returned value is approximate. Imprecision can be introduced by the computation if + any intermediary values fall outside the `JsonSafeLong` range (-9,007,199,254,740,991 + to 9,007,199,254,740,991). + """ + approximate_avg: Float + + """ + An approximation of the number of unique values for this field within this grouping. + + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. + """ + approximate_distinct_value_count: JsonSafeLong + + """ + The (approximate) sum of the field values within this grouping. + + Sums of large `JsonSafeLong` values can result in overflow, where the exact sum cannot + fit in a `JsonSafeLong` return value. This field, as a double-precision `Float`, can + represent larger sums, but the value may only be approximate. + """ + approximate_sum: Float! + + """ + The maximum of the field values within this grouping. + + So long as the grouping contains at least one non-null value for the + underlying indexed field, this will return an exact non-null value. """ exact_max: JsonSafeLong """ The minimum of the field values within this grouping. - So long as the grouping contains at least one non-null value, and no values exceed the - `JsonSafeLong` range in the underlying indexed field, this will return an exact non-null value. - - If no non-null values are available, or if the minimum value is outside the `JsonSafeLong` - range, `null` will be returned. `approximate_min` can be used to differentiate between these - cases and to get an approximate value. + So long as the grouping contains at least one non-null value for the + underlying indexed field, this will return an exact non-null value. """ exact_min: JsonSafeLong """ The exact sum of the field values within this grouping, if it fits in a `JsonSafeLong`. - Sums of large `LongString` values can result in overflow, where the exact sum cannot + Sums of large `JsonSafeLong` values can result in overflow, where the exact sum cannot fit in a `JsonSafeLong`. In that case, `null` will be returned, and `approximate_sum` can be used to get an approximate value. """ @@ -4643,22 +4428,22 @@ type LongStringAggregatedValues { } """ -Input type used to specify filters on `LongString` fields. +Input type used to specify filters on `JsonSafeLong` fields. Will match all documents if passed as an empty object (or as `null`). """ -input LongStringFilterInput { +input JsonSafeLongFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `LongStringFilterInput` input because of collisions + be provided on a single `JsonSafeLongFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [LongStringFilterInput!] + all_of: [JsonSafeLongFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4667,7 +4452,7 @@ input LongStringFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [LongStringFilterInput!] + any_of: [JsonSafeLongFilterInput!] """ Matches records where the field value is equal to any of the provided values. @@ -4677,35 +4462,35 @@ input LongStringFilterInput { this part of the filter matches no documents. When `null` is passed in the list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [LongString] + equal_to_any_of: [JsonSafeLong] """ Matches records where the field value is greater than (>) the provided value. When `null` is passed, matches all documents. """ - gt: LongString + gt: JsonSafeLong """ Matches records where the field value is greater than or equal to (>=) the provided value. When `null` is passed, matches all documents. """ - gte: LongString + gte: JsonSafeLong """ Matches records where the field value is less than (<) the provided value. When `null` is passed, matches all documents. """ - lt: LongString + lt: JsonSafeLong """ Matches records where the field value is less than or equal to (<=) the provided value. When `null` is passed, matches all documents. """ - lte: LongString + lte: JsonSafeLong """ Matches records where the provided sub-filter evaluates to false. @@ -4713,277 +4498,185 @@ input LongStringFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: LongStringFilterInput + not: JsonSafeLongFilterInput } -type Manufacturer implements NamedEntity { - address: Address - ceo: Person - created_at: DateTime! - id: ID! +""" +Input type used to specify filters on elements of a `[JsonSafeLong]` field. +Will match all documents if passed as an empty object (or as `null`). +""" +input JsonSafeLongListElementFilterInput { """ - Aggregations over the `manufactured_parts` data. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `JsonSafeLongListElementFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - manufactured_part_aggregations( - """ - Used to forward-paginate through the `manufactured_part_aggregations`. When provided, the next page after the - provided cursor will be returned. + all_of: [JsonSafeLongListElementFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - """ - Used to backward-paginate through the `manufactured_part_aggregations`. When provided, the previous page before the - provided cursor will be returned. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [JsonSafeLongListElementFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. - """ - Used to filter the `Part` documents that get aggregated over based on the provided criteria. - """ - filter: PartFilterInput + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. + """ + equal_to_any_of: [JsonSafeLong!] - """ - Used in conjunction with the `after` argument to forward-paginate through the `manufactured_part_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `manufactured_part_aggregations`, if no `after` cursor is provided). + """ + Matches records where the field value is greater than (>) the provided value. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through the `manufactured_part_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `manufactured_part_aggregations`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): PartAggregationConnection - manufactured_parts( - """ - Used to forward-paginate through the `manufactured_parts`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the `manufactured_parts`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the returned `manufactured_parts` based on the provided criteria. - """ - filter: PartFilterInput - - """ - Used in conjunction with the `after` argument to forward-paginate through the `manufactured_parts`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `manufactured_parts`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through the `manufactured_parts`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `manufactured_parts`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - - """ - Used to specify how the returned `manufactured_parts` should be sorted. - """ - order_by: [PartSortOrderInput!] - ): PartConnection - name: String -} - -""" -Type used to perform aggregation computations on `Manufacturer` fields. -""" -type ManufacturerAggregatedValues { - """ - Computed aggregate values for the `ceo` field. + When `null` is passed, matches all documents. """ - ceo: PersonAggregatedValues + gt: JsonSafeLong """ - Computed aggregate values for the `created_at` field. - """ - created_at: DateTimeAggregatedValues + Matches records where the field value is greater than or equal to (>=) the provided value. + When `null` is passed, matches all documents. """ - Computed aggregate values for the `id` field. - """ - id: NonNumericAggregatedValues + gte: JsonSafeLong """ - Computed aggregate values for the `name` field. - """ - name: NonNumericAggregatedValues -} + Matches records where the field value is less than (<) the provided value. -""" -Return type representing a bucket of `Manufacturer` documents for an aggregations query. -""" -type ManufacturerAggregation { - """ - Provides computed aggregated values over all `Manufacturer` documents in an aggregation bucket. + When `null` is passed, matches all documents. """ - aggregated_values: ManufacturerAggregatedValues + lt: JsonSafeLong """ - The count of `Manufacturer` documents in an aggregation bucket. - """ - count: JsonSafeLong! + Matches records where the field value is less than or equal to (<=) the provided value. + When `null` is passed, matches all documents. """ - Used to specify the `Manufacturer` fields to group by. The returned values identify each aggregation bucket. - """ - grouped_by: ManufacturerGroupedBy + lte: JsonSafeLong } """ -Represents a paginated collection of `ManufacturerAggregation` results. +Input type used to specify filters on `[JsonSafeLong]` fields. -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +Will match all documents if passed as an empty object (or as `null`). """ -type ManufacturerAggregationConnection { - """ - Wraps a specific `ManufacturerAggregation` to pair it with its pagination cursor. +input JsonSafeLongListFilterInput { """ - edges: [ManufacturerAggregationEdge!]! + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - """ - The list of `ManufacturerAggregation` results. - """ - nodes: [ManufacturerAggregation!]! + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `JsonSafeLongListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + When `null` or an empty list is passed, matches all documents. """ - Provides pagination-related information. - """ - page_info: PageInfo! -} - -""" -Represents a specific `ManufacturerAggregation` in the context of a `ManufacturerAggregationConnection`, -providing access to both the `ManufacturerAggregation` and query-specific information such as the pagination `Cursor`. + all_of: [JsonSafeLongListFilterInput!] -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type ManufacturerAggregationEdge { - """ - The `Cursor` of this `ManufacturerAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `ManufacturerAggregation`. """ - cursor: Cursor + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - The `ManufacturerAggregation` of this edge. - """ - node: ManufacturerAggregation -} - -""" -Represents a paginated collection of `Manufacturer` results. + any_of: [JsonSafeLongListFilterInput!] -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type ManufacturerConnection { - """ - Wraps a specific `Manufacturer` to pair it with its pagination cursor. """ - edges: [ManufacturerEdge!]! + Matches records where any of the list elements match the provided sub-filter. + When `null` or an empty object is passed, matches all documents. """ - The list of `Manufacturer` results. - """ - nodes: [Manufacturer!]! + any_satisfy: JsonSafeLongListElementFilterInput """ - Provides pagination-related information. + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. """ - page_info: PageInfo! + count: IntFilterInput """ - The total number of edges available in this connection to paginate over. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. """ - total_edge_count: JsonSafeLong! + not: JsonSafeLongListFilterInput } """ -Represents a specific `Manufacturer` in the context of a `ManufacturerConnection`, -providing access to both the `Manufacturer` and query-specific information such as the pagination `Cursor`. +A local time such as `"23:59:33"` or `"07:20:47.454"` without a time zone or offset, formatted based on the +[partial-time portion of RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6). +""" +scalar LocalTime -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type ManufacturerEdge { +A return type used from aggregations to provided aggregated values over `LocalTime` fields. +""" +type LocalTimeAggregatedValues { """ - All search highlights for this `Manufacturer`, indicating where in the indexed document the query matched. + The average (mean) of the field values within this grouping. + The returned value will be rounded to the nearest `LocalTime` value. """ - all_highlights: [SearchHighlight!]! + approximate_avg: LocalTime """ - The `Cursor` of this `Manufacturer`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Manufacturer`. + An approximation of the number of unique values for this field within this grouping. + + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. """ - cursor: Cursor + approximate_distinct_value_count: JsonSafeLong """ - Specific search highlights for this `Manufacturer`, providing matching snippets for the requested fields. + The maximum of the field values within this grouping. + + So long as the grouping contains at least one non-null value for the + underlying indexed field, this will return an exact non-null value. """ - highlights: ManufacturerHighlights + exact_max: LocalTime """ - The `Manufacturer` of this edge. + The minimum of the field values within this grouping. + + So long as the grouping contains at least one non-null value for the + underlying indexed field, this will return an exact non-null value. """ - node: Manufacturer + exact_min: LocalTime } """ -Input type used to specify filters on `Manufacturer` fields. +Input type used to specify filters on `LocalTime` fields. Will match all documents if passed as an empty object (or as `null`). """ -input ManufacturerFilterInput { +input LocalTimeFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `ManufacturerFilterInput` input because of collisions + be provided on a single `LocalTimeFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [ManufacturerFilterInput!] + all_of: [LocalTimeFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4992,35 +4685,45 @@ input ManufacturerFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [ManufacturerFilterInput!] + any_of: [LocalTimeFilterInput!] """ - Used to filter on the `ceo` field. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - ceo: PersonFilterInput + equal_to_any_of: [LocalTime] """ - Used to filter on the `created_at` field. + Matches records where the field value is greater than (>) the provided value. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. """ - created_at: DateTimeFilterInput + gt: LocalTime """ - Used to filter on the `id` field. + Matches records where the field value is greater than or equal to (>=) the provided value. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. """ - id: IDFilterInput + gte: LocalTime """ - Used to filter on the `name` field. + Matches records where the field value is less than (<) the provided value. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. """ - name: StringFilterInput + lt: LocalTime + + """ + Matches records where the field value is less than or equal to (<=) the provided value. + + When `null` is passed, matches all documents. + """ + lte: LocalTime """ Matches records where the provided sub-filter evaluates to false. @@ -5028,221 +4731,188 @@ input ManufacturerFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: ManufacturerFilterInput + not: LocalTimeFilterInput } """ -Type used to specify the `Manufacturer` fields to group by for aggregations. -""" -type ManufacturerGroupedBy { - """ - The `ceo` field value for this group. - """ - ceo: PersonGroupedBy +Input type offered when grouping on `LocalTime` fields, representing the amount of offset +(positive or negative) to shift the `LocalTime` boundaries of each grouping bucket. +For example, when grouping by `HOUR`, you can shift by 30 minutes to change +what minute-of-hour hours are considered to start on. +""" +input LocalTimeGroupingOffsetInput { """ - Offers the different grouping options for the `created_at` value within this group. + Number (positive or negative) of the given `unit` to offset the boundaries of the `LocalTime` groupings. """ - created_at: DateTimeGroupedBy + amount: Int! """ - The `name` field value for this group. + Unit of offsetting to apply to the boundaries of the `LocalTime` groupings. """ - name: String + unit: LocalTimeUnitInput! } """ -Type used to request desired `Manufacturer` search highlight fields. +Enumerates the supported truncation units of a `LocalTime`. """ -type ManufacturerHighlights { +enum LocalTimeGroupingTruncationUnitInput { """ - Search highlights for the `ceo`, providing snippets of the matching text. + The hour a `LocalTime` falls in. """ - ceo: PersonHighlights + HOUR """ - Search highlights for the `id`, providing snippets of the matching text. + The minute a `LocalTime` falls in. """ - id: [String!]! + MINUTE """ - Search highlights for the `name`, providing snippets of the matching text. + The second a `LocalTime` falls in. """ - name: [String!]! + SECOND } """ -Enumerates the ways `Manufacturer`s can be sorted. +Enumeration of `LocalTime` units. """ -enum ManufacturerSortOrderInput { +enum LocalTimeUnitInput { """ - Sorts ascending by the `ceo.id` field. + 1/24th of a day. """ - ceo_id_ASC + HOUR """ - Sorts descending by the `ceo.id` field. + 1/1000th of a second. """ - ceo_id_DESC + MILLISECOND """ - Sorts ascending by the `ceo.name` field. + 1/60th of an hour. """ - ceo_name_ASC + MINUTE """ - Sorts descending by the `ceo.name` field. + 1/60th of a minute. """ - ceo_name_DESC + SECOND +} - """ - Sorts ascending by the `ceo.nationality` field. - """ - ceo_nationality_ASC +""" +A numeric type for large integer values in the inclusive range -2^63 +(-9,223,372,036,854,775,808) to (2^63 - 1) (9,223,372,036,854,775,807). - """ - Sorts descending by the `ceo.nationality` field. - """ - ceo_nationality_DESC +Note that `LongString` values are serialized as strings within JSON, to avoid +interopability problems with JavaScript. If you want a large integer type that +serializes within JSON as a number, use `JsonSafeLong`. +""" +scalar LongString +""" +A return type used from aggregations to provided aggregated values over `LongString` fields. +""" +type LongStringAggregatedValues { """ - Sorts ascending by the `created_at` field. - """ - created_at_ASC + The average (mean) of the field values within this grouping. + Note that the returned value is approximate. Imprecision can be introduced by the computation if + any intermediary values fall outside the `JsonSafeLong` range (-9,007,199,254,740,991 + to 9,007,199,254,740,991). """ - Sorts descending by the `created_at` field. - """ - created_at_DESC + approximate_avg: Float """ - Sorts ascending by the `id` field. - """ - id_ASC + An approximation of the number of unique values for this field within this grouping. + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. """ - Sorts descending by the `id` field. - """ - id_DESC + approximate_distinct_value_count: JsonSafeLong """ - Sorts ascending by the `name` field. - """ - name_ASC + The maximum of the field values within this grouping. + The aggregation computation performed to identify the largest value is not able + to maintain exact precision when dealing with values that are outside the `JsonSafeLong` + range (-9,007,199,254,740,991 to 9,007,199,254,740,991). + In that case, the `exact_max` field will return `null`, but this field will provide + a value which may be approximate. """ - Sorts descending by the `name` field. - """ - name_DESC -} - -""" -Input type used to specify parameters for the `matches_phrase` filtering operator. + approximate_max: LongString -When `null` is passed, matches all documents. -""" -input MatchesPhraseFilterInput { - """ - The input phrase to search for. """ - phrase: String! -} + The minimum of the field values within this grouping. -""" -Enumeration of allowed values for the `matches_query: {allowed_edits_per_term: ...}` filter option. -""" -enum MatchesQueryAllowedEditsPerTermInput { - """ - Allowed edits per term is dynamically chosen based on the length of the term. + The aggregation computation performed to identify the smallest value is not able + to maintain exact precision when dealing with values that are outside the `JsonSafeLong` + range (-9,007,199,254,740,991 to 9,007,199,254,740,991). + In that case, the `exact_min` field will return `null`, but this field will provide + a value which may be approximate. """ - DYNAMIC + approximate_min: LongString """ - No allowed edits per term. - """ - NONE + The (approximate) sum of the field values within this grouping. + Sums of large `LongString` values can result in overflow, where the exact sum cannot + fit in a `LongString` return value. This field, as a double-precision `Float`, can + represent larger sums, but the value may only be approximate. """ - One allowed edit per term. - """ - ONE + approximate_sum: Float! """ - Two allowed edits per term. - """ - TWO -} - -""" -Input type used to specify parameters for the `matches_query` filtering operator. + The maximum of the field values within this grouping. -When `null` is passed, matches all documents. -""" -input MatchesQueryFilterInput { - """ - Number of allowed modifications per term to arrive at a match. For example, if set to 'ONE', the input - term 'glue' would match 'blue' but not 'clued', since the latter requires two modifications. - """ - allowed_edits_per_term: MatchesQueryAllowedEditsPerTermInput! = DYNAMIC + So long as the grouping contains at least one non-null value, and no values exceed the + `JsonSafeLong` range in the underlying indexed field, this will return an exact non-null value. + If no non-null values are available, or if the maximum value is outside the `JsonSafeLong` + range, `null` will be returned. `approximate_max` can be used to differentiate between these + cases and to get an approximate value. """ - The input query to search for. - """ - query: String! + exact_max: JsonSafeLong """ - Set to `true` to match only if all terms in `query` are found, or - `false` to only require one term to be found. - """ - require_all_terms: Boolean! = false -} + The minimum of the field values within this grouping. -""" -Input type used to specify parameters for the `matches_query_with_prefix` filtering operator. + So long as the grouping contains at least one non-null value, and no values exceed the + `JsonSafeLong` range in the underlying indexed field, this will return an exact non-null value. -When `null` is passed, matches all documents. -""" -input MatchesQueryWithPrefixFilterInput { - """ - Number of allowed modifications per term to arrive at a match. For example, if set to 'ONE', the input - term 'glue' would match 'blue' but not 'clued', since the latter requires two modifications. + If no non-null values are available, or if the minimum value is outside the `JsonSafeLong` + range, `null` will be returned. `approximate_min` can be used to differentiate between these + cases and to get an approximate value. """ - allowed_edits_per_term: MatchesQueryAllowedEditsPerTermInput! = DYNAMIC + exact_min: JsonSafeLong """ - The input query to search for, with the last term treated as a prefix. - """ - query_with_prefix: String! + The exact sum of the field values within this grouping, if it fits in a `JsonSafeLong`. + Sums of large `LongString` values can result in overflow, where the exact sum cannot + fit in a `JsonSafeLong`. In that case, `null` will be returned, and `approximate_sum` + can be used to get an approximate value. """ - Set to `true` to match only if all terms in `query_with_prefix` are found, or - `false` to only require one term to be found. - """ - require_all_terms: Boolean! = false -} - -enum Material { - ALLOY - CARBON_FIBER + exact_sum: JsonSafeLong } """ -Input type used to specify filters on `Material` fields. +Input type used to specify filters on `LongString` fields. Will match all documents if passed as an empty object (or as `null`). """ -input MaterialFilterInput { +input LongStringFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MaterialFilterInput` input because of collisions + be provided on a single `LongStringFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [MaterialFilterInput!] + all_of: [LongStringFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -5251,7 +4921,7 @@ input MaterialFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [MaterialFilterInput!] + any_of: [LongStringFilterInput!] """ Matches records where the field value is equal to any of the provided values. @@ -5261,29 +4931,57 @@ input MaterialFilterInput { this part of the filter matches no documents. When `null` is passed in the list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [MaterialInput] + equal_to_any_of: [LongString] """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Matches records where the field value is greater than (>) the provided value. - When `null` or an empty object is passed, matches no documents. + When `null` is passed, matches all documents. """ - not: MaterialFilterInput -} + gt: LongString -enum MaterialInput { - ALLOY - CARBON_FIBER -} + """ + Matches records where the field value is greater than or equal to (>=) the provided value. -type MechanicalPart implements NamedEntity { + When `null` is passed, matches all documents. """ - Aggregations over the `components` data. + gte: LongString + """ - component_aggregations( + Matches records where the field value is less than (<) the provided value. + + When `null` is passed, matches all documents. + """ + lt: LongString + + """ + Matches records where the field value is less than or equal to (<=) the provided value. + + When `null` is passed, matches all documents. + """ + lte: LongString + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: LongStringFilterInput +} + +type Manufacturer implements NamedEntity { + address: Address + ceo: Person + created_at: DateTime! + id: ID! + + """ + Aggregations over the `manufactured_parts` data. + """ + manufactured_part_aggregations( """ - Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + Used to forward-paginate through the `manufactured_part_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -5292,7 +4990,7 @@ type MechanicalPart implements NamedEntity { after: Cursor """ - Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `manufactured_part_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -5301,14 +4999,14 @@ type MechanicalPart implements NamedEntity { before: Cursor """ - Used to filter the `Component` documents that get aggregated over based on the provided criteria. + Used to filter the `Part` documents that get aggregated over based on the provided criteria. """ - filter: ComponentFilterInput + filter: PartFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `manufactured_part_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `manufactured_part_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -5316,18 +5014,18 @@ type MechanicalPart implements NamedEntity { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `manufactured_part_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `manufactured_part_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): ComponentAggregationConnection - components( + ): PartAggregationConnection + manufactured_parts( """ - Used to forward-paginate through the `components`. When provided, the next page after the + Used to forward-paginate through the `manufactured_parts`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -5336,7 +5034,7 @@ type MechanicalPart implements NamedEntity { after: Cursor """ - Used to backward-paginate through the `components`. When provided, the previous page before the + Used to backward-paginate through the `manufactured_parts`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -5345,14 +5043,14 @@ type MechanicalPart implements NamedEntity { before: Cursor """ - Used to filter the returned `components` based on the provided criteria. + Used to filter the returned `manufactured_parts` based on the provided criteria. """ - filter: ComponentFilterInput + filter: PartFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `components`. + Used in conjunction with the `after` argument to forward-paginate through the `manufactured_parts`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `components`, if no `after` cursor is provided). + `after` cursor (or from the start of the `manufactured_parts`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -5360,9 +5058,9 @@ type MechanicalPart implements NamedEntity { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `components`. + Used in conjunction with the `before` argument to backward-paginate through the `manufactured_parts`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + `before` cursor (or from the end of the `manufactured_parts`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -5370,21 +5068,22 @@ type MechanicalPart implements NamedEntity { last: Int """ - Used to specify how the returned `components` should be sorted. + Used to specify how the returned `manufactured_parts` should be sorted. """ - order_by: [ComponentSortOrderInput!] - ): ComponentConnection - created_at: DateTime! - id: ID! - manufacturer: Manufacturer - material: Material + order_by: [PartSortOrderInput!] + ): PartConnection name: String } """ -Type used to perform aggregation computations on `MechanicalPart` fields. +Type used to perform aggregation computations on `Manufacturer` fields. """ -type MechanicalPartAggregatedValues { +type ManufacturerAggregatedValues { + """ + Computed aggregate values for the `ceo` field. + """ + ceo: PersonAggregatedValues + """ Computed aggregate values for the `created_at` field. """ @@ -5395,11 +5094,6 @@ type MechanicalPartAggregatedValues { """ id: NonNumericAggregatedValues - """ - Computed aggregate values for the `material` field. - """ - material: NonNumericAggregatedValues - """ Computed aggregate values for the `name` field. """ @@ -5407,41 +5101,41 @@ type MechanicalPartAggregatedValues { } """ -Return type representing a bucket of `MechanicalPart` documents for an aggregations query. +Return type representing a bucket of `Manufacturer` documents for an aggregations query. """ -type MechanicalPartAggregation { +type ManufacturerAggregation { """ - Provides computed aggregated values over all `MechanicalPart` documents in an aggregation bucket. + Provides computed aggregated values over all `Manufacturer` documents in an aggregation bucket. """ - aggregated_values: MechanicalPartAggregatedValues + aggregated_values: ManufacturerAggregatedValues """ - The count of `MechanicalPart` documents in an aggregation bucket. + The count of `Manufacturer` documents in an aggregation bucket. """ count: JsonSafeLong! """ - Used to specify the `MechanicalPart` fields to group by. The returned values identify each aggregation bucket. + Used to specify the `Manufacturer` fields to group by. The returned values identify each aggregation bucket. """ - grouped_by: MechanicalPartGroupedBy + grouped_by: ManufacturerGroupedBy } """ -Represents a paginated collection of `MechanicalPartAggregation` results. +Represents a paginated collection of `ManufacturerAggregation` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type MechanicalPartAggregationConnection { +type ManufacturerAggregationConnection { """ - Wraps a specific `MechanicalPartAggregation` to pair it with its pagination cursor. + Wraps a specific `ManufacturerAggregation` to pair it with its pagination cursor. """ - edges: [MechanicalPartAggregationEdge!]! + edges: [ManufacturerAggregationEdge!]! """ - The list of `MechanicalPartAggregation` results. + The list of `ManufacturerAggregation` results. """ - nodes: [MechanicalPartAggregation!]! + nodes: [ManufacturerAggregation!]! """ Provides pagination-related information. @@ -5450,41 +5144,41 @@ type MechanicalPartAggregationConnection { } """ -Represents a specific `MechanicalPartAggregation` in the context of a `MechanicalPartAggregationConnection`, -providing access to both the `MechanicalPartAggregation` and query-specific information such as the pagination `Cursor`. +Represents a specific `ManufacturerAggregation` in the context of a `ManufacturerAggregationConnection`, +providing access to both the `ManufacturerAggregation` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type MechanicalPartAggregationEdge { +type ManufacturerAggregationEdge { """ - The `Cursor` of this `MechanicalPartAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `MechanicalPartAggregation`. + The `Cursor` of this `ManufacturerAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `ManufacturerAggregation`. """ cursor: Cursor """ - The `MechanicalPartAggregation` of this edge. + The `ManufacturerAggregation` of this edge. """ - node: MechanicalPartAggregation + node: ManufacturerAggregation } """ -Represents a paginated collection of `MechanicalPart` results. +Represents a paginated collection of `Manufacturer` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type MechanicalPartConnection { +type ManufacturerConnection { """ - Wraps a specific `MechanicalPart` to pair it with its pagination cursor. + Wraps a specific `Manufacturer` to pair it with its pagination cursor. """ - edges: [MechanicalPartEdge!]! + edges: [ManufacturerEdge!]! """ - The list of `MechanicalPart` results. + The list of `Manufacturer` results. """ - nodes: [MechanicalPart!]! + nodes: [Manufacturer!]! """ Provides pagination-related information. @@ -5498,52 +5192,52 @@ type MechanicalPartConnection { } """ -Represents a specific `MechanicalPart` in the context of a `MechanicalPartConnection`, -providing access to both the `MechanicalPart` and query-specific information such as the pagination `Cursor`. +Represents a specific `Manufacturer` in the context of a `ManufacturerConnection`, +providing access to both the `Manufacturer` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type MechanicalPartEdge { +type ManufacturerEdge { """ - All search highlights for this `MechanicalPart`, indicating where in the indexed document the query matched. + All search highlights for this `Manufacturer`, indicating where in the indexed document the query matched. """ all_highlights: [SearchHighlight!]! """ - The `Cursor` of this `MechanicalPart`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `MechanicalPart`. + The `Cursor` of this `Manufacturer`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Manufacturer`. """ cursor: Cursor """ - Specific search highlights for this `MechanicalPart`, providing matching snippets for the requested fields. + Specific search highlights for this `Manufacturer`, providing matching snippets for the requested fields. """ - highlights: MechanicalPartHighlights + highlights: ManufacturerHighlights """ - The `MechanicalPart` of this edge. + The `Manufacturer` of this edge. """ - node: MechanicalPart + node: Manufacturer } """ -Input type used to specify filters on `MechanicalPart` fields. +Input type used to specify filters on `Manufacturer` fields. Will match all documents if passed as an empty object (or as `null`). """ -input MechanicalPartFilterInput { +input ManufacturerFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MechanicalPartFilterInput` input because of - collisions between key names. For example, if you want to AND multiple + be provided on a single `ManufacturerFilterInput` input because of collisions + between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [MechanicalPartFilterInput!] + all_of: [ManufacturerFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -5552,28 +5246,28 @@ input MechanicalPartFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [MechanicalPartFilterInput!] + any_of: [ManufacturerFilterInput!] """ - Used to filter on the `created_at` field. + Used to filter on the `ceo` field. When `null` or an empty object is passed, matches all documents. """ - created_at: DateTimeFilterInput + ceo: PersonFilterInput """ - Used to filter on the `id` field. + Used to filter on the `created_at` field. When `null` or an empty object is passed, matches all documents. """ - id: IDFilterInput + created_at: DateTimeFilterInput """ - Used to filter on the `material` field. + Used to filter on the `id` field. When `null` or an empty object is passed, matches all documents. """ - material: MaterialFilterInput + id: IDFilterInput """ Used to filter on the `name` field. @@ -5588,22 +5282,22 @@ input MechanicalPartFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: MechanicalPartFilterInput + not: ManufacturerFilterInput } """ -Type used to specify the `MechanicalPart` fields to group by for aggregations. +Type used to specify the `Manufacturer` fields to group by for aggregations. """ -type MechanicalPartGroupedBy { +type ManufacturerGroupedBy { """ - Offers the different grouping options for the `created_at` value within this group. + The `ceo` field value for this group. """ - created_at: DateTimeGroupedBy + ceo: PersonGroupedBy """ - The `material` field value for this group. + Offers the different grouping options for the `created_at` value within this group. """ - material: Material + created_at: DateTimeGroupedBy """ The `name` field value for this group. @@ -5612,18 +5306,18 @@ type MechanicalPartGroupedBy { } """ -Type used to request desired `MechanicalPart` search highlight fields. +Type used to request desired `Manufacturer` search highlight fields. """ -type MechanicalPartHighlights { +type ManufacturerHighlights { """ - Search highlights for the `id`, providing snippets of the matching text. + Search highlights for the `ceo`, providing snippets of the matching text. """ - id: [String!]! + ceo: PersonHighlights """ - Search highlights for the `material`, providing snippets of the matching text. + Search highlights for the `id`, providing snippets of the matching text. """ - material: [String!]! + id: [String!]! """ Search highlights for the `name`, providing snippets of the matching text. @@ -5632,221 +5326,177 @@ type MechanicalPartHighlights { } """ -Enumerates the ways `MechanicalPart`s can be sorted. +Enumerates the ways `Manufacturer`s can be sorted. """ -enum MechanicalPartSortOrderInput { +enum ManufacturerSortOrderInput { """ - Sorts ascending by the `created_at` field. + Sorts ascending by the `ceo.id` field. """ - created_at_ASC + ceo_id_ASC """ - Sorts descending by the `created_at` field. + Sorts descending by the `ceo.id` field. """ - created_at_DESC + ceo_id_DESC """ - Sorts ascending by the `id` field. + Sorts ascending by the `ceo.name` field. """ - id_ASC + ceo_name_ASC """ - Sorts descending by the `id` field. + Sorts descending by the `ceo.name` field. """ - id_DESC + ceo_name_DESC """ - Sorts ascending by the `material` field. + Sorts ascending by the `ceo.nationality` field. """ - material_ASC + ceo_nationality_ASC """ - Sorts descending by the `material` field. + Sorts descending by the `ceo.nationality` field. """ - material_DESC + ceo_nationality_DESC """ - Sorts ascending by the `name` field. + Sorts ascending by the `created_at` field. """ - name_ASC + created_at_ASC """ - Sorts descending by the `name` field. + Sorts descending by the `created_at` field. """ - name_DESC -} + created_at_DESC -type Money { - amount_cents: Int - currency: String! -} + """ + Sorts ascending by the `id` field. + """ + id_ASC -""" -Type used to perform aggregation computations on `Money` fields. -""" -type MoneyAggregatedValues { """ - Computed aggregate values for the `amount_cents` field. + Sorts descending by the `id` field. """ - amount_cents: IntAggregatedValues + id_DESC """ - Computed aggregate values for the `currency` field. + Sorts ascending by the `name` field. """ - currency: NonNumericAggregatedValues + name_ASC + + """ + Sorts descending by the `name` field. + """ + name_DESC } """ -Input type used to specify filters on a `Money` object referenced directly -or transitively from a list field that has been configured to index each leaf field as -its own flattened list of values. +Input type used to specify parameters for the `matches_phrase` filtering operator. -Will match all documents if passed as an empty object (or as `null`). +When `null` is passed, matches all documents. """ -input MoneyFieldsListFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MoneyFieldsListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. - """ - all_of: [MoneyFieldsListFilterInput!] - +input MatchesPhraseFilterInput { """ - Used to filter on the `amount_cents` field. - - When `null` or an empty object is passed, matches all documents. + The input phrase to search for. """ - amount_cents: IntListFilterInput + phrase: String! +} +""" +Enumeration of allowed values for the `matches_query: {allowed_edits_per_term: ...}` filter option. +""" +enum MatchesQueryAllowedEditsPerTermInput { """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Allowed edits per term is dynamically chosen based on the length of the term. """ - any_of: [MoneyFieldsListFilterInput!] + DYNAMIC """ - Used to filter on the number of non-null elements in this list field. - - When `null` or an empty object is passed, matches all documents. + No allowed edits per term. """ - count: IntFilterInput + NONE """ - Used to filter on the `currency` field. - - When `null` or an empty object is passed, matches all documents. + One allowed edit per term. """ - currency: StringListFilterInput + ONE """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Two allowed edits per term. """ - not: MoneyFieldsListFilterInput + TWO } """ -Input type used to specify filters on `Money` fields. +Input type used to specify parameters for the `matches_query` filtering operator. -Will match all documents if passed as an empty object (or as `null`). +When `null` is passed, matches all documents. """ -input MoneyFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MoneyFilterInput` input because of collisions between - key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. - """ - all_of: [MoneyFilterInput!] - - """ - Used to filter on the `amount_cents` field. - - When `null` or an empty object is passed, matches all documents. - """ - amount_cents: IntFilterInput - +input MatchesQueryFilterInput { """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Number of allowed modifications per term to arrive at a match. For example, if set to 'ONE', the input + term 'glue' would match 'blue' but not 'clued', since the latter requires two modifications. """ - any_of: [MoneyFilterInput!] + allowed_edits_per_term: MatchesQueryAllowedEditsPerTermInput! = DYNAMIC """ - Used to filter on the `currency` field. - - When `null` or an empty object is passed, matches all documents. + The input query to search for. """ - currency: StringFilterInput + query: String! """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Set to `true` to match only if all terms in `query` are found, or + `false` to only require one term to be found. """ - not: MoneyFilterInput + require_all_terms: Boolean! = false } """ -Type used to specify the `Money` fields to group by for aggregations. +Input type used to specify parameters for the `matches_query_with_prefix` filtering operator. + +When `null` is passed, matches all documents. """ -type MoneyGroupedBy { +input MatchesQueryWithPrefixFilterInput { """ - The `amount_cents` field value for this group. + Number of allowed modifications per term to arrive at a match. For example, if set to 'ONE', the input + term 'glue' would match 'blue' but not 'clued', since the latter requires two modifications. """ - amount_cents: Int + allowed_edits_per_term: MatchesQueryAllowedEditsPerTermInput! = DYNAMIC """ - The `currency` field value for this group. + The input query to search for, with the last term treated as a prefix. """ - currency: String -} + query_with_prefix: String! -""" -Type used to request desired `Money` search highlight fields. -""" -type MoneyHighlights { """ - Search highlights for the `currency`, providing snippets of the matching text. + Set to `true` to match only if all terms in `query_with_prefix` are found, or + `false` to only require one term to be found. """ - currency: [String!]! + require_all_terms: Boolean! = false +} + +enum Material { + ALLOY + CARBON_FIBER } """ -Input type used to specify filters on `[Money]` fields. +Input type used to specify filters on `Material` fields. Will match all documents if passed as an empty object (or as `null`). """ -input MoneyListFilterInput { +input MaterialFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MoneyListFilterInput` input because of collisions + be provided on a single `MaterialFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [MoneyListFilterInput!] + all_of: [MaterialFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -5855,21 +5505,17 @@ input MoneyListFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [MoneyListFilterInput!] - - """ - Matches records where any of the list elements match the provided sub-filter. - - When `null` or an empty object is passed, matches all documents. - """ - any_satisfy: MoneyFilterInput + any_of: [MaterialFilterInput!] """ - Used to filter on the number of non-null elements in this list field. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - count: IntFilterInput + equal_to_any_of: [MaterialInput] """ Matches records where the provided sub-filter evaluates to false. @@ -5877,92 +5523,126 @@ input MoneyListFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: MoneyListFilterInput + not: MaterialFilterInput } -interface NamedEntity { - id: ID! - name: String +enum MaterialInput { + ALLOY + CARBON_FIBER } -""" -Type used to perform aggregation computations on `NamedEntity` fields. -""" -type NamedEntityAggregatedValues { +type MechanicalPart implements NamedEntity { """ - Computed aggregate values for the `amount_cents` field. + Aggregations over the `components` data. """ - amount_cents: IntAggregatedValues + component_aggregations( + """ + Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + provided cursor will be returned. - """ - Computed aggregate values for the `amount_cents2` field. - """ - amount_cents2: IntAggregatedValues + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor - """ - Computed aggregate values for the `amounts` field. - """ - amounts: IntAggregatedValues + """ + Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + provided cursor will be returned. - """ - Computed aggregate values for the `ceo` field. - """ - ceo: PersonAggregatedValues + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor - """ - Computed aggregate values for the `cost` field. - """ - cost: MoneyAggregatedValues + """ + Used to filter the `Component` documents that get aggregated over based on the provided criteria. + """ + filter: ComponentFilterInput - """ - Computed aggregate values for the `cost_currency_introduced_on` field. - """ - cost_currency_introduced_on: DateAggregatedValues + """ + Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). - """ - Computed aggregate values for the `cost_currency_name` field. - """ - cost_currency_name: NonNumericAggregatedValues + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int - """ - Computed aggregate values for the `cost_currency_primary_continent` field. - """ - cost_currency_primary_continent: NonNumericAggregatedValues + """ + Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). - """ - Computed aggregate values for the `cost_currency_symbol` field. - """ - cost_currency_symbol: NonNumericAggregatedValues + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ComponentAggregationConnection + components( + """ + Used to forward-paginate through the `components`. When provided, the next page after the + provided cursor will be returned. - """ - Computed aggregate values for the `cost_currency_unit` field. - """ - cost_currency_unit: NonNumericAggregatedValues + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor - """ - Computed aggregate values for the `created_at` field. - """ - created_at: DateTimeAggregatedValues + """ + Used to backward-paginate through the `components`. When provided, the previous page before the + provided cursor will be returned. - """ - Computed aggregate values for the `created_at2` field. - """ - created_at2: DateTimeAggregatedValues + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor - """ - Computed aggregate values for the `created_at_time_of_day` field. - """ - created_at_time_of_day: LocalTimeAggregatedValues + """ + Used to filter the returned `components` based on the provided criteria. + """ + filter: ComponentFilterInput - """ - Computed aggregate values for the `created_on` field. - """ - created_on: DateAggregatedValues + """ + Used in conjunction with the `after` argument to forward-paginate through the `components`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `components`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `components`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `components` should be sorted. + """ + order_by: [ComponentSortOrderInput!] + ): ComponentConnection + created_at: DateTime! + id: ID! + manufacturer: Manufacturer + material: Material + name: String +} +""" +Type used to perform aggregation computations on `MechanicalPart` fields. +""" +type MechanicalPartAggregatedValues { """ - Computed aggregate values for the `fees` field. + Computed aggregate values for the `created_at` field. """ - fees: MoneyAggregatedValues + created_at: DateTimeAggregatedValues """ Computed aggregate values for the `id` field. @@ -5970,295 +5650,341 @@ type NamedEntityAggregatedValues { id: NonNumericAggregatedValues """ - Computed aggregate values for the `internal_details` field. + Computed aggregate values for the `material` field. """ - internal_details: WidgetInternalDetailsAggregatedValues + material: NonNumericAggregatedValues """ - Computed aggregate values for the `internal_highlightable_details` field. + Computed aggregate values for the `name` field. """ - internal_highlightable_details: WidgetInternalDetailsAggregatedValues + name: NonNumericAggregatedValues +} +""" +Return type representing a bucket of `MechanicalPart` documents for an aggregations query. +""" +type MechanicalPartAggregation { """ - Computed aggregate values for the `internal_highlightable_name` field. + Provides computed aggregated values over all `MechanicalPart` documents in an aggregation bucket. """ - internal_highlightable_name: NonNumericAggregatedValues + aggregated_values: MechanicalPartAggregatedValues """ - Computed aggregate values for the `internal_name` field. + The count of `MechanicalPart` documents in an aggregation bucket. """ - internal_name: NonNumericAggregatedValues + count: JsonSafeLong! """ - Computed aggregate values for the `inventor` field. + Used to specify the `MechanicalPart` fields to group by. The returned values identify each aggregation bucket. """ - inventor: InventorAggregatedValues + grouped_by: MechanicalPartGroupedBy +} - """ - Computed aggregate values for the `material` field. - """ - material: NonNumericAggregatedValues +""" +Represents a paginated collection of `MechanicalPartAggregation` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type MechanicalPartAggregationConnection { """ - Computed aggregate values for the `metadata` field. + Wraps a specific `MechanicalPartAggregation` to pair it with its pagination cursor. """ - metadata: NonNumericAggregatedValues + edges: [MechanicalPartAggregationEdge!]! """ - Computed aggregate values for the `name` field. + The list of `MechanicalPartAggregation` results. """ - name: NonNumericAggregatedValues + nodes: [MechanicalPartAggregation!]! """ - Computed aggregate values for the `named_inventor` field. + Provides pagination-related information. """ - named_inventor: NamedInventorAggregatedValues + page_info: PageInfo! +} + +""" +Represents a specific `MechanicalPartAggregation` in the context of a `MechanicalPartAggregationConnection`, +providing access to both the `MechanicalPartAggregation` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type MechanicalPartAggregationEdge { """ - Computed aggregate values for the `options` field. + The `Cursor` of this `MechanicalPartAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `MechanicalPartAggregation`. """ - options: WidgetOptionsAggregatedValues + cursor: Cursor """ - Computed aggregate values for the `position` field. + The `MechanicalPartAggregation` of this edge. """ - position: PositionAggregatedValues + node: MechanicalPartAggregation +} + +""" +Represents a paginated collection of `MechanicalPart` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type MechanicalPartConnection { """ - Computed aggregate values for the `release_dates` field. + Wraps a specific `MechanicalPart` to pair it with its pagination cursor. """ - release_dates: DateAggregatedValues + edges: [MechanicalPartEdge!]! """ - Computed aggregate values for the `release_timestamps` field. + The list of `MechanicalPart` results. """ - release_timestamps: DateTimeAggregatedValues + nodes: [MechanicalPart!]! """ - Computed aggregate values for the `size` field. + Provides pagination-related information. """ - size: NonNumericAggregatedValues + page_info: PageInfo! """ - Computed aggregate values for the `tags` field. + The total number of edges available in this connection to paginate over. """ - tags: NonNumericAggregatedValues + total_edge_count: JsonSafeLong! +} + +""" +Represents a specific `MechanicalPart` in the context of a `MechanicalPartConnection`, +providing access to both the `MechanicalPart` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type MechanicalPartEdge { """ - Computed aggregate values for the `the_options` field. + All search highlights for this `MechanicalPart`, indicating where in the indexed document the query matched. """ - the_options: WidgetOptionsAggregatedValues + all_highlights: [SearchHighlight!]! """ - Computed aggregate values for the `voltage` field. + The `Cursor` of this `MechanicalPart`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `MechanicalPart`. """ - voltage: IntAggregatedValues + cursor: Cursor """ - Computed aggregate values for the `weight_in_ng` field. + Specific search highlights for this `MechanicalPart`, providing matching snippets for the requested fields. """ - weight_in_ng: JsonSafeLongAggregatedValues + highlights: MechanicalPartHighlights """ - Computed aggregate values for the `weight_in_ng_str` field. + The `MechanicalPart` of this edge. """ - weight_in_ng_str: LongStringAggregatedValues + node: MechanicalPart +} +""" +Input type used to specify filters on `MechanicalPart` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input MechanicalPartFilterInput { """ - Computed aggregate values for the `widget_cost` field. - """ - widget_cost: MoneyAggregatedValues + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `MechanicalPartFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + When `null` or an empty list is passed, matches all documents. """ - Computed aggregate values for the `widget_name` field. + all_of: [MechanicalPartFilterInput!] + """ - widget_name: NonNumericAggregatedValues + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - Computed aggregate values for the `widget_size` field. + any_of: [MechanicalPartFilterInput!] + """ - widget_size: NonNumericAggregatedValues + Used to filter on the `created_at` field. + When `null` or an empty object is passed, matches all documents. """ - Computed aggregate values for the `widget_tags` field. + created_at: DateTimeFilterInput + """ - widget_tags: NonNumericAggregatedValues + Used to filter on the `id` field. + When `null` or an empty object is passed, matches all documents. """ - Computed aggregate values for the `widget_workspace_id` field. + id: IDFilterInput + """ - widget_workspace_id: NonNumericAggregatedValues + Used to filter on the `material` field. + When `null` or an empty object is passed, matches all documents. """ - Computed aggregate values for the `workspace_id` field. + material: MaterialFilterInput + """ - workspace_id: NonNumericAggregatedValues + Used to filter on the `name` field. + When `null` or an empty object is passed, matches all documents. """ - Computed aggregate values for the `workspace_name` field. + name: StringFilterInput + """ - workspace_name: NonNumericAggregatedValues + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: MechanicalPartFilterInput } """ -Return type representing a bucket of `NamedEntity` documents for an aggregations query. +Type used to specify the `MechanicalPart` fields to group by for aggregations. """ -type NamedEntityAggregation { +type MechanicalPartGroupedBy { """ - Provides computed aggregated values over all `NamedEntity` documents in an aggregation bucket. + Offers the different grouping options for the `created_at` value within this group. """ - aggregated_values: NamedEntityAggregatedValues + created_at: DateTimeGroupedBy """ - The count of `NamedEntity` documents in an aggregation bucket. + The `material` field value for this group. """ - count: JsonSafeLong! + material: Material """ - Used to specify the `NamedEntity` fields to group by. The returned values identify each aggregation bucket. + The `name` field value for this group. """ - grouped_by: NamedEntityGroupedBy + name: String } """ -Represents a paginated collection of `NamedEntityAggregation` results. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +Type used to request desired `MechanicalPart` search highlight fields. """ -type NamedEntityAggregationConnection { +type MechanicalPartHighlights { """ - Wraps a specific `NamedEntityAggregation` to pair it with its pagination cursor. + Search highlights for the `id`, providing snippets of the matching text. """ - edges: [NamedEntityAggregationEdge!]! + id: [String!]! """ - The list of `NamedEntityAggregation` results. + Search highlights for the `material`, providing snippets of the matching text. """ - nodes: [NamedEntityAggregation!]! + material: [String!]! """ - Provides pagination-related information. + Search highlights for the `name`, providing snippets of the matching text. """ - page_info: PageInfo! + name: [String!]! } """ -Represents a specific `NamedEntityAggregation` in the context of a `NamedEntityAggregationConnection`, -providing access to both the `NamedEntityAggregation` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +Enumerates the ways `MechanicalPart`s can be sorted. """ -type NamedEntityAggregationEdge { +enum MechanicalPartSortOrderInput { """ - The `Cursor` of this `NamedEntityAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `NamedEntityAggregation`. + Sorts ascending by the `created_at` field. """ - cursor: Cursor + created_at_ASC """ - The `NamedEntityAggregation` of this edge. + Sorts descending by the `created_at` field. """ - node: NamedEntityAggregation -} - -""" -Represents a paginated collection of `NamedEntity` results. + created_at_DESC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type NamedEntityConnection { """ - Wraps a specific `NamedEntity` to pair it with its pagination cursor. + Sorts ascending by the `id` field. """ - edges: [NamedEntityEdge!]! + id_ASC """ - The list of `NamedEntity` results. + Sorts descending by the `id` field. """ - nodes: [NamedEntity!]! + id_DESC """ - Provides pagination-related information. + Sorts ascending by the `material` field. """ - page_info: PageInfo! + material_ASC """ - The total number of edges available in this connection to paginate over. + Sorts descending by the `material` field. """ - total_edge_count: JsonSafeLong! -} - -""" -Represents a specific `NamedEntity` in the context of a `NamedEntityConnection`, -providing access to both the `NamedEntity` and query-specific information such as the pagination `Cursor`. + material_DESC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type NamedEntityEdge { """ - All search highlights for this `NamedEntity`, indicating where in the indexed document the query matched. + Sorts ascending by the `name` field. """ - all_highlights: [SearchHighlight!]! + name_ASC """ - The `Cursor` of this `NamedEntity`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `NamedEntity`. + Sorts descending by the `name` field. """ - cursor: Cursor + name_DESC +} + +type MobileStore implements DistributionChannel & Retail & Store { + active: Boolean + current_location: String + customer_facing: Boolean + established_on: Date + id: ID! + vehicle_type: String! +} + +type Money { + amount_cents: Int + currency: String! +} +""" +Type used to perform aggregation computations on `Money` fields. +""" +type MoneyAggregatedValues { """ - Specific search highlights for this `NamedEntity`, providing matching snippets for the requested fields. + Computed aggregate values for the `amount_cents` field. """ - highlights: NamedEntityHighlights + amount_cents: IntAggregatedValues """ - The `NamedEntity` of this edge. + Computed aggregate values for the `currency` field. """ - node: NamedEntity + currency: NonNumericAggregatedValues } """ -Input type used to specify filters on `NamedEntity` fields. +Input type used to specify filters on a `Money` object referenced directly +or transitively from a list field that has been configured to index each leaf field as +its own flattened list of values. Will match all documents if passed as an empty object (or as `null`). """ -input NamedEntityFilterInput { +input MoneyFieldsListFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `NamedEntityFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `MoneyFieldsListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [NamedEntityFilterInput!] + all_of: [MoneyFieldsListFilterInput!] """ Used to filter on the `amount_cents` field. When `null` or an empty object is passed, matches all documents. """ - amount_cents: IntFilterInput - - """ - Used to filter on the `amount_cents2` field. - - When `null` or an empty object is passed, matches all documents. - """ - amount_cents2: IntFilterInput - - """ - Used to filter on the `amounts` field. - - When `null` or an empty object is passed, matches all documents. - """ - amounts: IntListFilterInput + amount_cents: IntListFilterInput """ Matches records where any of the provided sub-filters evaluate to true. @@ -6267,1873 +5993,1736 @@ input NamedEntityFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [NamedEntityFilterInput!] + any_of: [MoneyFieldsListFilterInput!] """ - Used to filter on the `ceo` field. + Used to filter on the number of non-null elements in this list field. When `null` or an empty object is passed, matches all documents. """ - ceo: PersonFilterInput + count: IntFilterInput """ - Used to filter on the `cost` field. + Used to filter on the `currency` field. When `null` or an empty object is passed, matches all documents. """ - cost: MoneyFilterInput + currency: StringListFilterInput """ - Used to filter on the `cost_currency_introduced_on` field. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` or an empty object is passed, matches no documents. """ - cost_currency_introduced_on: DateFilterInput + not: MoneyFieldsListFilterInput +} - """ - Used to filter on the `cost_currency_name` field. +""" +Input type used to specify filters on `Money` fields. - When `null` or an empty object is passed, matches all documents. +Will match all documents if passed as an empty object (or as `null`). +""" +input MoneyFilterInput { """ - cost_currency_name: StringFilterInput + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - """ - Used to filter on the `cost_currency_primary_continent` field. + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `MoneyFilterInput` input because of collisions between + key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - When `null` or an empty object is passed, matches all documents. + When `null` or an empty list is passed, matches all documents. """ - cost_currency_primary_continent: StringFilterInput + all_of: [MoneyFilterInput!] """ - Used to filter on the `cost_currency_symbol` field. + Used to filter on the `amount_cents` field. When `null` or an empty object is passed, matches all documents. """ - cost_currency_symbol: StringFilterInput + amount_cents: IntFilterInput """ - Used to filter on the `cost_currency_unit` field. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - cost_currency_unit: StringFilterInput + any_of: [MoneyFilterInput!] """ - Used to filter on the `created_at` field. + Used to filter on the `currency` field. When `null` or an empty object is passed, matches all documents. """ - created_at: DateTimeFilterInput - - """ - Used to filter on the `created_at2` field. + currency: StringFilterInput - When `null` or an empty object is passed, matches all documents. """ - created_at2: DateTimeFilterInput + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + When `null` or an empty object is passed, matches no documents. """ - Used to filter on the `created_at_time_of_day` field. + not: MoneyFilterInput +} - When `null` or an empty object is passed, matches all documents. +""" +Type used to specify the `Money` fields to group by for aggregations. +""" +type MoneyGroupedBy { """ - created_at_time_of_day: LocalTimeFilterInput - + The `amount_cents` field value for this group. """ - Used to filter on the `created_on` field. + amount_cents: Int - When `null` or an empty object is passed, matches all documents. """ - created_on: DateFilterInput - + The `currency` field value for this group. """ - Used to filter on the `description` field. + currency: String +} - When `null` or an empty object is passed, matches all documents. +""" +Type used to request desired `Money` search highlight fields. +""" +type MoneyHighlights { """ - description: TextFilterInput - + Search highlights for the `currency`, providing snippets of the matching text. """ - Used to filter on the `fees` field. + currency: [String!]! +} - When `null` or an empty object is passed, matches all documents. - """ - fees: MoneyFieldsListFilterInput +""" +Input type used to specify filters on `[Money]` fields. +Will match all documents if passed as an empty object (or as `null`). +""" +input MoneyListFilterInput { """ - Used to filter on the `id` field. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - When `null` or an empty object is passed, matches all documents. + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `MoneyListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - id: IDFilterInput + all_of: [MoneyListFilterInput!] """ - Used to filter on the `internal_details` field. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - internal_details: WidgetInternalDetailsFilterInput + any_of: [MoneyListFilterInput!] """ - Used to filter on the `internal_highlightable_details` field. + Matches records where any of the list elements match the provided sub-filter. When `null` or an empty object is passed, matches all documents. """ - internal_highlightable_details: WidgetInternalDetailsFilterInput + any_satisfy: MoneyFilterInput """ - Used to filter on the `internal_highlightable_name` field. + Used to filter on the number of non-null elements in this list field. When `null` or an empty object is passed, matches all documents. """ - internal_highlightable_name: StringFilterInput + count: IntFilterInput """ - Used to filter on the `internal_name` field. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` or an empty object is passed, matches no documents. """ - internal_name: StringFilterInput + not: MoneyListFilterInput +} - """ - Used to filter on the `inventor` field. +interface NamedEntity { + id: ID! + name: String +} - When `null` or an empty object is passed, matches all documents. +""" +Type used to perform aggregation computations on `NamedEntity` fields. +""" +type NamedEntityAggregatedValues { """ - inventor: InventorFilterInput - + Computed aggregate values for the `amount_cents` field. """ - Used to filter on the `material` field. + amount_cents: IntAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - material: MaterialFilterInput - + Computed aggregate values for the `amount_cents2` field. """ - Used to filter on the `metadata` field. + amount_cents2: IntAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - metadata: UntypedFilterInput - + Computed aggregate values for the `amounts` field. """ - Used to filter on the `name` field. + amounts: IntAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - name: StringFilterInput - + Computed aggregate values for the `ceo` field. """ - Used to filter on the `name_text` field. + ceo: PersonAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - name_text: TextFilterInput - + Computed aggregate values for the `cost` field. """ - Used to filter on the `named_inventor` field. + cost: MoneyAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - named_inventor: NamedInventorFilterInput - + Computed aggregate values for the `cost_currency_introduced_on` field. """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + cost_currency_introduced_on: DateAggregatedValues - When `null` or an empty object is passed, matches no documents. """ - not: NamedEntityFilterInput - + Computed aggregate values for the `cost_currency_name` field. """ - Used to filter on the `options` field. + cost_currency_name: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - options: WidgetOptionsFilterInput - + Computed aggregate values for the `cost_currency_primary_continent` field. """ - Used to filter on the `position` field. + cost_currency_primary_continent: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - position: PositionFilterInput - + Computed aggregate values for the `cost_currency_symbol` field. """ - Used to filter on the `release_dates` field. + cost_currency_symbol: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - release_dates: DateListFilterInput - + Computed aggregate values for the `cost_currency_unit` field. """ - Used to filter on the `release_timestamps` field. + cost_currency_unit: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - release_timestamps: DateTimeListFilterInput - + Computed aggregate values for the `created_at` field. """ - Used to filter on the `size` field. + created_at: DateTimeAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - size: SizeFilterInput - + Computed aggregate values for the `created_at2` field. """ - Used to filter on the `tags` field. + created_at2: DateTimeAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - tags: StringListFilterInput - + Computed aggregate values for the `created_at_time_of_day` field. """ - Used to filter on the `the_options` field. + created_at_time_of_day: LocalTimeAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - the_options: WidgetOptionsFilterInput - + Computed aggregate values for the `created_on` field. """ - Used to filter on the `voltage` field. + created_on: DateAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - voltage: IntFilterInput - + Computed aggregate values for the `fees` field. """ - Used to filter on the `weight_in_ng` field. + fees: MoneyAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - weight_in_ng: JsonSafeLongFilterInput - + Computed aggregate values for the `id` field. """ - Used to filter on the `weight_in_ng_str` field. + id: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - weight_in_ng_str: LongStringFilterInput - + Computed aggregate values for the `internal_details` field. """ - Used to filter on the `widget_cost` field. + internal_details: WidgetInternalDetailsAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_cost: MoneyFilterInput - + Computed aggregate values for the `internal_highlightable_details` field. """ - Used to filter on the `widget_name` field. + internal_highlightable_details: WidgetInternalDetailsAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_name: StringFilterInput - + Computed aggregate values for the `internal_highlightable_name` field. """ - Used to filter on the `widget_size` field. + internal_highlightable_name: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_size: SizeFilterInput + Computed aggregate values for the `internal_name` field. + """ + internal_name: NonNumericAggregatedValues """ - Used to filter on the `widget_tags` field. + Computed aggregate values for the `inventor` field. + """ + inventor: InventorAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_tags: StringListFilterInput + Computed aggregate values for the `material` field. + """ + material: NonNumericAggregatedValues """ - Used to filter on the `widget_workspace_id` field. + Computed aggregate values for the `metadata` field. + """ + metadata: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_workspace_id: IDFilterInput + Computed aggregate values for the `name` field. + """ + name: NonNumericAggregatedValues """ - Used to filter on the `workspace_id` field. + Computed aggregate values for the `named_inventor` field. + """ + named_inventor: NamedInventorAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - workspace_id: IDFilterInput + Computed aggregate values for the `options` field. + """ + options: WidgetOptionsAggregatedValues """ - Used to filter on the `workspace_name` field. + Computed aggregate values for the `position` field. + """ + position: PositionAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - workspace_name: StringFilterInput -} + Computed aggregate values for the `release_dates` field. + """ + release_dates: DateAggregatedValues -""" -Type used to specify the `NamedEntity` fields to group by for aggregations. -""" -type NamedEntityGroupedBy { """ - The `amount_cents` field value for this group. + Computed aggregate values for the `release_timestamps` field. """ - amount_cents: Int + release_timestamps: DateTimeAggregatedValues """ - The `amount_cents2` field value for this group. + Computed aggregate values for the `size` field. """ - amount_cents2: Int + size: NonNumericAggregatedValues """ - The `ceo` field value for this group. + Computed aggregate values for the `tags` field. """ - ceo: PersonGroupedBy + tags: NonNumericAggregatedValues """ - The `cost` field value for this group. + Computed aggregate values for the `the_options` field. """ - cost: MoneyGroupedBy + the_options: WidgetOptionsAggregatedValues """ - Offers the different grouping options for the `cost_currency_introduced_on` value within this group. + Computed aggregate values for the `voltage` field. """ - cost_currency_introduced_on: DateGroupedBy + voltage: IntAggregatedValues """ - The `cost_currency_name` field value for this group. + Computed aggregate values for the `weight_in_ng` field. """ - cost_currency_name: String + weight_in_ng: JsonSafeLongAggregatedValues """ - The `cost_currency_primary_continent` field value for this group. + Computed aggregate values for the `weight_in_ng_str` field. """ - cost_currency_primary_continent: String + weight_in_ng_str: LongStringAggregatedValues """ - The `cost_currency_symbol` field value for this group. + Computed aggregate values for the `widget_cost` field. """ - cost_currency_symbol: String + widget_cost: MoneyAggregatedValues """ - The `cost_currency_unit` field value for this group. + Computed aggregate values for the `widget_name` field. """ - cost_currency_unit: String + widget_name: NonNumericAggregatedValues """ - Offers the different grouping options for the `created_at` value within this group. + Computed aggregate values for the `widget_size` field. """ - created_at: DateTimeGroupedBy + widget_size: NonNumericAggregatedValues """ - Offers the different grouping options for the `created_at2` value within this group. + Computed aggregate values for the `widget_tags` field. """ - created_at2: DateTimeGroupedBy + widget_tags: NonNumericAggregatedValues """ - The `created_at_time_of_day` field value for this group. + Computed aggregate values for the `widget_workspace_id` field. """ - created_at_time_of_day: LocalTime + widget_workspace_id: NonNumericAggregatedValues """ - Offers the different grouping options for the `created_on` value within this group. + Computed aggregate values for the `workspace_id` field. """ - created_on: DateGroupedBy + workspace_id: NonNumericAggregatedValues """ - The `fees` field value for this group. - - Note: `fees` is a collection field, but selecting this field will group on - individual values of the selected subfields of `fees`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `fees` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `fees` multiple times for a single document, that document will only be included in the group - once. + Computed aggregate values for the `workspace_name` field. """ - fees: MoneyGroupedBy + workspace_name: NonNumericAggregatedValues +} +""" +Return type representing a bucket of `NamedEntity` documents for an aggregations query. +""" +type NamedEntityAggregation { """ - The `internal_details` field value for this group. + Provides computed aggregated values over all `NamedEntity` documents in an aggregation bucket. """ - internal_details: WidgetInternalDetailsGroupedBy + aggregated_values: NamedEntityAggregatedValues """ - The `internal_highlightable_details` field value for this group. + The count of `NamedEntity` documents in an aggregation bucket. """ - internal_highlightable_details: WidgetInternalDetailsGroupedBy + count: JsonSafeLong! """ - The `internal_highlightable_name` field value for this group. + Used to specify the `NamedEntity` fields to group by. The returned values identify each aggregation bucket. """ - internal_highlightable_name: String + grouped_by: NamedEntityGroupedBy +} + +""" +Represents a paginated collection of `NamedEntityAggregation` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type NamedEntityAggregationConnection { """ - The `internal_name` field value for this group. + Wraps a specific `NamedEntityAggregation` to pair it with its pagination cursor. """ - internal_name: String + edges: [NamedEntityAggregationEdge!]! """ - The `inventor` field value for this group. + The list of `NamedEntityAggregation` results. """ - inventor: InventorGroupedBy + nodes: [NamedEntityAggregation!]! """ - The `material` field value for this group. + Provides pagination-related information. """ - material: Material + page_info: PageInfo! +} + +""" +Represents a specific `NamedEntityAggregation` in the context of a `NamedEntityAggregationConnection`, +providing access to both the `NamedEntityAggregation` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type NamedEntityAggregationEdge { """ - The `metadata` field value for this group. + The `Cursor` of this `NamedEntityAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `NamedEntityAggregation`. """ - metadata: Untyped + cursor: Cursor """ - The `name` field value for this group. + The `NamedEntityAggregation` of this edge. """ - name: String + node: NamedEntityAggregation +} + +""" +Represents a paginated collection of `NamedEntity` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type NamedEntityConnection { """ - The `named_inventor` field value for this group. + Wraps a specific `NamedEntity` to pair it with its pagination cursor. """ - named_inventor: NamedInventorGroupedBy + edges: [NamedEntityEdge!]! """ - The `options` field value for this group. + The list of `NamedEntity` results. """ - options: WidgetOptionsGroupedBy + nodes: [NamedEntity!]! """ - The `position` field value for this group. + Provides pagination-related information. """ - position: PositionGroupedBy + page_info: PageInfo! """ - The individual value from `release_dates` for this group. - - Note: `release_dates` is a collection field, but selecting this field will group on individual values of `release_dates`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `release_dates` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `release_dates` multiple times for a single document, that document will only be included in the group - once. + The total number of edges available in this connection to paginate over. """ - release_date: DateGroupedBy + total_edge_count: JsonSafeLong! +} - """ - The individual value from `release_timestamps` for this group. +""" +Represents a specific `NamedEntity` in the context of a `NamedEntityConnection`, +providing access to both the `NamedEntity` and query-specific information such as the pagination `Cursor`. - Note: `release_timestamps` is a collection field, but selecting this field - will group on individual values of `release_timestamps`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `release_timestamps` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `release_timestamps` multiple times for a single document, that document will only be included in the group - once. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type NamedEntityEdge { """ - release_timestamp: DateTimeGroupedBy + All search highlights for this `NamedEntity`, indicating where in the indexed document the query matched. + """ + all_highlights: [SearchHighlight!]! """ - The `size` field value for this group. + The `Cursor` of this `NamedEntity`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `NamedEntity`. """ - size: Size + cursor: Cursor """ - The individual value from `tags` for this group. - - Note: `tags` is a collection field, but selecting this field will group on individual values of `tags`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `tags` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `tags` multiple times for a single document, that document will only be included in the group - once. + Specific search highlights for this `NamedEntity`, providing matching snippets for the requested fields. """ - tag: String + highlights: NamedEntityHighlights """ - The `the_options` field value for this group. + The `NamedEntity` of this edge. """ - the_options: WidgetOptionsGroupedBy + node: NamedEntity +} +""" +Input type used to specify filters on `NamedEntity` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input NamedEntityFilterInput { """ - The `voltage` field value for this group. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `NamedEntityFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - voltage: Int + all_of: [NamedEntityFilterInput!] """ - The `weight_in_ng` field value for this group. + Used to filter on the `amount_cents` field. + + When `null` or an empty object is passed, matches all documents. """ - weight_in_ng: JsonSafeLong + amount_cents: IntFilterInput """ - The `weight_in_ng_str` field value for this group. + Used to filter on the `amount_cents2` field. + + When `null` or an empty object is passed, matches all documents. """ - weight_in_ng_str: LongString + amount_cents2: IntFilterInput """ - The `widget_cost` field value for this group. + Used to filter on the `amounts` field. + + When `null` or an empty object is passed, matches all documents. """ - widget_cost: MoneyGroupedBy + amounts: IntListFilterInput """ - The `widget_name` field value for this group. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - widget_name: String + any_of: [NamedEntityFilterInput!] """ - The `widget_size` field value for this group. + Used to filter on the `ceo` field. + + When `null` or an empty object is passed, matches all documents. """ - widget_size: Size + ceo: PersonFilterInput """ - The `widget_workspace_id` field value for this group. + Used to filter on the `cost` field. + + When `null` or an empty object is passed, matches all documents. """ - widget_workspace_id: ID + cost: MoneyFilterInput """ - The `workspace_id` field value for this group. + Used to filter on the `cost_currency_introduced_on` field. + + When `null` or an empty object is passed, matches all documents. """ - workspace_id: ID + cost_currency_introduced_on: DateFilterInput """ - The `workspace_name` field value for this group. + Used to filter on the `cost_currency_name` field. + + When `null` or an empty object is passed, matches all documents. """ - workspace_name: String -} + cost_currency_name: StringFilterInput -""" -Type used to request desired `NamedEntity` search highlight fields. -""" -type NamedEntityHighlights { """ - Search highlights for the `ceo`, providing snippets of the matching text. + Used to filter on the `cost_currency_primary_continent` field. + + When `null` or an empty object is passed, matches all documents. """ - ceo: PersonHighlights + cost_currency_primary_continent: StringFilterInput """ - Search highlights for the `cost`, providing snippets of the matching text. + Used to filter on the `cost_currency_symbol` field. + + When `null` or an empty object is passed, matches all documents. """ - cost: MoneyHighlights + cost_currency_symbol: StringFilterInput """ - Search highlights for the `cost_currency_name`, providing snippets of the matching text. + Used to filter on the `cost_currency_unit` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_name: [String!]! + cost_currency_unit: StringFilterInput """ - Search highlights for the `cost_currency_primary_continent`, providing snippets of the matching text. + Used to filter on the `created_at` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_primary_continent: [String!]! + created_at: DateTimeFilterInput """ - Search highlights for the `cost_currency_symbol`, providing snippets of the matching text. + Used to filter on the `created_at2` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_symbol: [String!]! + created_at2: DateTimeFilterInput """ - Search highlights for the `cost_currency_unit`, providing snippets of the matching text. + Used to filter on the `created_at_time_of_day` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_unit: [String!]! + created_at_time_of_day: LocalTimeFilterInput """ - Search highlights for the `description`, providing snippets of the matching text. + Used to filter on the `created_on` field. + + When `null` or an empty object is passed, matches all documents. """ - description: [String!]! + created_on: DateFilterInput """ - Search highlights for the `fees`, providing snippets of the matching text. + Used to filter on the `description` field. + + When `null` or an empty object is passed, matches all documents. """ - fees: MoneyHighlights + description: TextFilterInput """ - Search highlights for the `id`, providing snippets of the matching text. - """ - id: [String!]! + Used to filter on the `fees` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `internal_highlightable_details`, providing snippets of the matching text. - """ - internal_highlightable_details: WidgetInternalDetailsHighlights + fees: MoneyFieldsListFilterInput """ - Search highlights for the `internal_highlightable_name`, providing snippets of the matching text. - """ - internal_highlightable_name: [String!]! + Used to filter on the `id` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `inventor`, providing snippets of the matching text. - """ - inventor: InventorHighlights + id: IDFilterInput """ - Search highlights for the `material`, providing snippets of the matching text. - """ - material: [String!]! + Used to filter on the `internal_details` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `metadata`, providing snippets of the matching text. - """ - metadata: [String!]! + internal_details: WidgetInternalDetailsFilterInput """ - Search highlights for the `name`, providing snippets of the matching text. - """ - name: [String!]! + Used to filter on the `internal_highlightable_details` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `name_text`, providing snippets of the matching text. - """ - name_text: [String!]! + internal_highlightable_details: WidgetInternalDetailsFilterInput """ - Search highlights for the `named_inventor`, providing snippets of the matching text. + Used to filter on the `internal_highlightable_name` field. + + When `null` or an empty object is passed, matches all documents. """ - named_inventor: NamedInventorHighlights + internal_highlightable_name: StringFilterInput """ - Search highlights for the `options`, providing snippets of the matching text. + Used to filter on the `internal_name` field. + + When `null` or an empty object is passed, matches all documents. """ - options: WidgetOptionsHighlights + internal_name: StringFilterInput """ - Search highlights for the `size`, providing snippets of the matching text. + Used to filter on the `inventor` field. + + When `null` or an empty object is passed, matches all documents. """ - size: [String!]! + inventor: InventorFilterInput """ - Search highlights for the `tags`, providing snippets of the matching text. + Used to filter on the `material` field. + + When `null` or an empty object is passed, matches all documents. """ - tags: [String!]! + material: MaterialFilterInput """ - Search highlights for the `the_options`, providing snippets of the matching text. + Used to filter on the `metadata` field. + + When `null` or an empty object is passed, matches all documents. """ - the_options: WidgetOptionsHighlights + metadata: UntypedFilterInput """ - Search highlights for the `widget_cost`, providing snippets of the matching text. + Used to filter on the `name` field. + + When `null` or an empty object is passed, matches all documents. """ - widget_cost: MoneyHighlights + name: StringFilterInput """ - Search highlights for the `widget_name`, providing snippets of the matching text. + Used to filter on the `name_text` field. + + When `null` or an empty object is passed, matches all documents. """ - widget_name: [String!]! + name_text: TextFilterInput """ - Search highlights for the `widget_size`, providing snippets of the matching text. + Used to filter on the `named_inventor` field. + + When `null` or an empty object is passed, matches all documents. """ - widget_size: [String!]! + named_inventor: NamedInventorFilterInput """ - Search highlights for the `widget_tags`, providing snippets of the matching text. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. """ - widget_tags: [String!]! + not: NamedEntityFilterInput """ - Search highlights for the `widget_workspace_id`, providing snippets of the matching text. + Used to filter on the `options` field. + + When `null` or an empty object is passed, matches all documents. """ - widget_workspace_id: [String!]! + options: WidgetOptionsFilterInput """ - Search highlights for the `workspace_id`, providing snippets of the matching text. + Used to filter on the `position` field. + + When `null` or an empty object is passed, matches all documents. """ - workspace_id: [String!]! + position: PositionFilterInput """ - Search highlights for the `workspace_name`, providing snippets of the matching text. + Used to filter on the `release_dates` field. + + When `null` or an empty object is passed, matches all documents. """ - workspace_name: [String!]! -} + release_dates: DateListFilterInput -""" -Enumerates the ways `NamedEntity`s can be sorted. -""" -enum NamedEntitySortOrderInput { """ - Sorts ascending by the `amount_cents2` field. + Used to filter on the `release_timestamps` field. + + When `null` or an empty object is passed, matches all documents. """ - amount_cents2_ASC + release_timestamps: DateTimeListFilterInput """ - Sorts descending by the `amount_cents2` field. + Used to filter on the `size` field. + + When `null` or an empty object is passed, matches all documents. """ - amount_cents2_DESC + size: SizeFilterInput """ - Sorts ascending by the `amount_cents` field. + Used to filter on the `tags` field. + + When `null` or an empty object is passed, matches all documents. """ - amount_cents_ASC + tags: StringListFilterInput """ - Sorts descending by the `amount_cents` field. + Used to filter on the `the_options` field. + + When `null` or an empty object is passed, matches all documents. """ - amount_cents_DESC + the_options: WidgetOptionsFilterInput """ - Sorts ascending by the `ceo.id` field. + Used to filter on the `voltage` field. + + When `null` or an empty object is passed, matches all documents. """ - ceo_id_ASC + voltage: IntFilterInput """ - Sorts descending by the `ceo.id` field. + Used to filter on the `weight_in_ng` field. + + When `null` or an empty object is passed, matches all documents. """ - ceo_id_DESC + weight_in_ng: JsonSafeLongFilterInput """ - Sorts ascending by the `ceo.name` field. + Used to filter on the `weight_in_ng_str` field. + + When `null` or an empty object is passed, matches all documents. """ - ceo_name_ASC + weight_in_ng_str: LongStringFilterInput """ - Sorts descending by the `ceo.name` field. + Used to filter on the `widget_cost` field. + + When `null` or an empty object is passed, matches all documents. """ - ceo_name_DESC + widget_cost: MoneyFilterInput """ - Sorts ascending by the `ceo.nationality` field. + Used to filter on the `widget_name` field. + + When `null` or an empty object is passed, matches all documents. """ - ceo_nationality_ASC + widget_name: StringFilterInput """ - Sorts descending by the `ceo.nationality` field. + Used to filter on the `widget_size` field. + + When `null` or an empty object is passed, matches all documents. """ - ceo_nationality_DESC + widget_size: SizeFilterInput """ - Sorts ascending by the `cost.amount_cents` field. + Used to filter on the `widget_tags` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_amount_cents_ASC + widget_tags: StringListFilterInput """ - Sorts descending by the `cost.amount_cents` field. + Used to filter on the `widget_workspace_id` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_amount_cents_DESC + widget_workspace_id: IDFilterInput """ - Sorts ascending by the `cost.currency` field. + Used to filter on the `workspace_id` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_ASC + workspace_id: IDFilterInput """ - Sorts descending by the `cost.currency` field. + Used to filter on the `workspace_name` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_DESC + workspace_name: StringFilterInput +} +""" +Type used to specify the `NamedEntity` fields to group by for aggregations. +""" +type NamedEntityGroupedBy { """ - Sorts ascending by the `cost_currency_introduced_on` field. + The `amount_cents` field value for this group. """ - cost_currency_introduced_on_ASC + amount_cents: Int """ - Sorts descending by the `cost_currency_introduced_on` field. + The `amount_cents2` field value for this group. """ - cost_currency_introduced_on_DESC + amount_cents2: Int """ - Sorts ascending by the `cost_currency_name` field. + The `ceo` field value for this group. """ - cost_currency_name_ASC + ceo: PersonGroupedBy """ - Sorts descending by the `cost_currency_name` field. + The `cost` field value for this group. """ - cost_currency_name_DESC + cost: MoneyGroupedBy """ - Sorts ascending by the `cost_currency_primary_continent` field. + Offers the different grouping options for the `cost_currency_introduced_on` value within this group. """ - cost_currency_primary_continent_ASC + cost_currency_introduced_on: DateGroupedBy """ - Sorts descending by the `cost_currency_primary_continent` field. + The `cost_currency_name` field value for this group. """ - cost_currency_primary_continent_DESC + cost_currency_name: String """ - Sorts ascending by the `cost_currency_symbol` field. + The `cost_currency_primary_continent` field value for this group. """ - cost_currency_symbol_ASC + cost_currency_primary_continent: String """ - Sorts descending by the `cost_currency_symbol` field. + The `cost_currency_symbol` field value for this group. """ - cost_currency_symbol_DESC + cost_currency_symbol: String """ - Sorts ascending by the `cost_currency_unit` field. + The `cost_currency_unit` field value for this group. """ - cost_currency_unit_ASC + cost_currency_unit: String """ - Sorts descending by the `cost_currency_unit` field. + Offers the different grouping options for the `created_at` value within this group. """ - cost_currency_unit_DESC + created_at: DateTimeGroupedBy """ - Sorts ascending by the `created_at2` field. + Offers the different grouping options for the `created_at2` value within this group. """ - created_at2_ASC + created_at2: DateTimeGroupedBy """ - Sorts descending by the `created_at2` field. + The `created_at_time_of_day` field value for this group. """ - created_at2_DESC + created_at_time_of_day: LocalTime """ - Sorts ascending by the `created_at` field. + Offers the different grouping options for the `created_on` value within this group. """ - created_at_ASC + created_on: DateGroupedBy """ - Sorts descending by the `created_at` field. + The `fees` field value for this group. + + Note: `fees` is a collection field, but selecting this field will group on + individual values of the selected subfields of `fees`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `fees` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `fees` multiple times for a single document, that document will only be included in the group + once. """ - created_at_DESC + fees: MoneyGroupedBy """ - Sorts ascending by the `created_at_time_of_day` field. + The `internal_details` field value for this group. """ - created_at_time_of_day_ASC + internal_details: WidgetInternalDetailsGroupedBy """ - Sorts descending by the `created_at_time_of_day` field. + The `internal_highlightable_details` field value for this group. """ - created_at_time_of_day_DESC + internal_highlightable_details: WidgetInternalDetailsGroupedBy """ - Sorts ascending by the `created_on` field. + The `internal_highlightable_name` field value for this group. """ - created_on_ASC + internal_highlightable_name: String """ - Sorts descending by the `created_on` field. + The `internal_name` field value for this group. """ - created_on_DESC + internal_name: String """ - Sorts ascending by the `id` field. + The `inventor` field value for this group. """ - id_ASC + inventor: InventorGroupedBy """ - Sorts descending by the `id` field. + The `material` field value for this group. """ - id_DESC + material: Material """ - Sorts ascending by the `internal_details.name` field. + The `metadata` field value for this group. """ - internal_details_name_ASC + metadata: Untyped """ - Sorts descending by the `internal_details.name` field. + The `name` field value for this group. """ - internal_details_name_DESC + name: String """ - Sorts ascending by the `internal_highlightable_details.name` field. + The `named_inventor` field value for this group. """ - internal_highlightable_details_name_ASC + named_inventor: NamedInventorGroupedBy """ - Sorts descending by the `internal_highlightable_details.name` field. + The `options` field value for this group. """ - internal_highlightable_details_name_DESC + options: WidgetOptionsGroupedBy """ - Sorts ascending by the `internal_highlightable_name` field. + The `position` field value for this group. """ - internal_highlightable_name_ASC + position: PositionGroupedBy """ - Sorts descending by the `internal_highlightable_name` field. + The individual value from `release_dates` for this group. + + Note: `release_dates` is a collection field, but selecting this field will group on individual values of `release_dates`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `release_dates` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `release_dates` multiple times for a single document, that document will only be included in the group + once. """ - internal_highlightable_name_DESC + release_date: DateGroupedBy """ - Sorts ascending by the `internal_name` field. + The individual value from `release_timestamps` for this group. + + Note: `release_timestamps` is a collection field, but selecting this field + will group on individual values of `release_timestamps`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `release_timestamps` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `release_timestamps` multiple times for a single document, that document will only be included in the group + once. """ - internal_name_ASC + release_timestamp: DateTimeGroupedBy """ - Sorts descending by the `internal_name` field. + The `size` field value for this group. """ - internal_name_DESC + size: Size """ - Sorts ascending by the `inventor.id` field. + The individual value from `tags` for this group. + + Note: `tags` is a collection field, but selecting this field will group on individual values of `tags`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `tags` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `tags` multiple times for a single document, that document will only be included in the group + once. """ - inventor_id_ASC + tag: String """ - Sorts descending by the `inventor.id` field. + The `the_options` field value for this group. """ - inventor_id_DESC + the_options: WidgetOptionsGroupedBy """ - Sorts ascending by the `inventor.name` field. + The `voltage` field value for this group. """ - inventor_name_ASC + voltage: Int """ - Sorts descending by the `inventor.name` field. + The `weight_in_ng` field value for this group. """ - inventor_name_DESC + weight_in_ng: JsonSafeLong """ - Sorts ascending by the `inventor.nationality` field. + The `weight_in_ng_str` field value for this group. """ - inventor_nationality_ASC + weight_in_ng_str: LongString """ - Sorts descending by the `inventor.nationality` field. + The `widget_cost` field value for this group. """ - inventor_nationality_DESC + widget_cost: MoneyGroupedBy """ - Sorts ascending by the `inventor.stock_ticker` field. + The `widget_name` field value for this group. """ - inventor_stock_ticker_ASC + widget_name: String """ - Sorts descending by the `inventor.stock_ticker` field. + The `widget_size` field value for this group. """ - inventor_stock_ticker_DESC + widget_size: Size """ - Sorts ascending by the `material` field. + The `widget_workspace_id` field value for this group. """ - material_ASC + widget_workspace_id: ID """ - Sorts descending by the `material` field. + The `workspace_id` field value for this group. """ - material_DESC + workspace_id: ID """ - Sorts ascending by the `metadata` field. + The `workspace_name` field value for this group. """ - metadata_ASC + workspace_name: String +} +""" +Type used to request desired `NamedEntity` search highlight fields. +""" +type NamedEntityHighlights { """ - Sorts descending by the `metadata` field. + Search highlights for the `ceo`, providing snippets of the matching text. """ - metadata_DESC + ceo: PersonHighlights """ - Sorts ascending by the `name` field. + Search highlights for the `cost`, providing snippets of the matching text. """ - name_ASC + cost: MoneyHighlights """ - Sorts descending by the `name` field. + Search highlights for the `cost_currency_name`, providing snippets of the matching text. """ - name_DESC + cost_currency_name: [String!]! """ - Sorts ascending by the `named_inventor.id` field. + Search highlights for the `cost_currency_primary_continent`, providing snippets of the matching text. """ - named_inventor_id_ASC + cost_currency_primary_continent: [String!]! """ - Sorts descending by the `named_inventor.id` field. + Search highlights for the `cost_currency_symbol`, providing snippets of the matching text. """ - named_inventor_id_DESC + cost_currency_symbol: [String!]! """ - Sorts ascending by the `named_inventor.name` field. + Search highlights for the `cost_currency_unit`, providing snippets of the matching text. """ - named_inventor_name_ASC + cost_currency_unit: [String!]! """ - Sorts descending by the `named_inventor.name` field. + Search highlights for the `description`, providing snippets of the matching text. """ - named_inventor_name_DESC + description: [String!]! """ - Sorts ascending by the `named_inventor.nationality` field. + Search highlights for the `fees`, providing snippets of the matching text. """ - named_inventor_nationality_ASC + fees: MoneyHighlights """ - Sorts descending by the `named_inventor.nationality` field. + Search highlights for the `id`, providing snippets of the matching text. """ - named_inventor_nationality_DESC + id: [String!]! """ - Sorts ascending by the `named_inventor.stock_ticker` field. + Search highlights for the `internal_highlightable_details`, providing snippets of the matching text. """ - named_inventor_stock_ticker_ASC + internal_highlightable_details: WidgetInternalDetailsHighlights """ - Sorts descending by the `named_inventor.stock_ticker` field. + Search highlights for the `internal_highlightable_name`, providing snippets of the matching text. """ - named_inventor_stock_ticker_DESC + internal_highlightable_name: [String!]! """ - Sorts ascending by the `options.color` field. + Search highlights for the `inventor`, providing snippets of the matching text. """ - options_color_ASC + inventor: InventorHighlights """ - Sorts descending by the `options.color` field. + Search highlights for the `material`, providing snippets of the matching text. """ - options_color_DESC + material: [String!]! """ - Sorts ascending by the `options.size` field. + Search highlights for the `metadata`, providing snippets of the matching text. """ - options_size_ASC + metadata: [String!]! """ - Sorts descending by the `options.size` field. + Search highlights for the `name`, providing snippets of the matching text. """ - options_size_DESC + name: [String!]! """ - Sorts ascending by the `options.the_size` field. + Search highlights for the `name_text`, providing snippets of the matching text. """ - options_the_size_ASC + name_text: [String!]! """ - Sorts descending by the `options.the_size` field. + Search highlights for the `named_inventor`, providing snippets of the matching text. """ - options_the_size_DESC + named_inventor: NamedInventorHighlights """ - Sorts ascending by the `position.x` field. + Search highlights for the `options`, providing snippets of the matching text. """ - position_x_ASC + options: WidgetOptionsHighlights """ - Sorts descending by the `position.x` field. + Search highlights for the `size`, providing snippets of the matching text. """ - position_x_DESC + size: [String!]! """ - Sorts ascending by the `position.y` field. + Search highlights for the `tags`, providing snippets of the matching text. """ - position_y_ASC + tags: [String!]! """ - Sorts descending by the `position.y` field. + Search highlights for the `the_options`, providing snippets of the matching text. """ - position_y_DESC + the_options: WidgetOptionsHighlights """ - Sorts ascending by the `size` field. + Search highlights for the `widget_cost`, providing snippets of the matching text. """ - size_ASC + widget_cost: MoneyHighlights """ - Sorts descending by the `size` field. + Search highlights for the `widget_name`, providing snippets of the matching text. """ - size_DESC + widget_name: [String!]! """ - Sorts ascending by the `the_options.color` field. + Search highlights for the `widget_size`, providing snippets of the matching text. """ - the_options_color_ASC + widget_size: [String!]! """ - Sorts descending by the `the_options.color` field. + Search highlights for the `widget_tags`, providing snippets of the matching text. """ - the_options_color_DESC + widget_tags: [String!]! """ - Sorts ascending by the `the_options.size` field. + Search highlights for the `widget_workspace_id`, providing snippets of the matching text. """ - the_options_size_ASC + widget_workspace_id: [String!]! """ - Sorts descending by the `the_options.size` field. + Search highlights for the `workspace_id`, providing snippets of the matching text. """ - the_options_size_DESC + workspace_id: [String!]! """ - Sorts ascending by the `the_options.the_size` field. + Search highlights for the `workspace_name`, providing snippets of the matching text. """ - the_options_the_size_ASC + workspace_name: [String!]! +} +""" +Enumerates the ways `NamedEntity`s can be sorted. +""" +enum NamedEntitySortOrderInput { """ - Sorts descending by the `the_options.the_size` field. + Sorts ascending by the `amount_cents2` field. """ - the_options_the_size_DESC + amount_cents2_ASC """ - Sorts ascending by the `voltage` field. + Sorts descending by the `amount_cents2` field. """ - voltage_ASC + amount_cents2_DESC """ - Sorts descending by the `voltage` field. + Sorts ascending by the `amount_cents` field. """ - voltage_DESC + amount_cents_ASC """ - Sorts ascending by the `weight_in_ng` field. + Sorts descending by the `amount_cents` field. """ - weight_in_ng_ASC + amount_cents_DESC """ - Sorts descending by the `weight_in_ng` field. + Sorts ascending by the `ceo.id` field. """ - weight_in_ng_DESC + ceo_id_ASC """ - Sorts ascending by the `weight_in_ng_str` field. + Sorts descending by the `ceo.id` field. """ - weight_in_ng_str_ASC + ceo_id_DESC """ - Sorts descending by the `weight_in_ng_str` field. + Sorts ascending by the `ceo.name` field. """ - weight_in_ng_str_DESC + ceo_name_ASC """ - Sorts ascending by the `widget_cost.amount_cents` field. + Sorts descending by the `ceo.name` field. """ - widget_cost_amount_cents_ASC + ceo_name_DESC """ - Sorts descending by the `widget_cost.amount_cents` field. + Sorts ascending by the `ceo.nationality` field. """ - widget_cost_amount_cents_DESC + ceo_nationality_ASC """ - Sorts ascending by the `widget_cost.currency` field. + Sorts descending by the `ceo.nationality` field. """ - widget_cost_currency_ASC + ceo_nationality_DESC """ - Sorts descending by the `widget_cost.currency` field. + Sorts ascending by the `cost.amount_cents` field. """ - widget_cost_currency_DESC + cost_amount_cents_ASC """ - Sorts ascending by the `widget_name` field. + Sorts descending by the `cost.amount_cents` field. """ - widget_name_ASC + cost_amount_cents_DESC """ - Sorts descending by the `widget_name` field. + Sorts ascending by the `cost.currency` field. """ - widget_name_DESC + cost_currency_ASC """ - Sorts ascending by the `widget_size` field. + Sorts descending by the `cost.currency` field. """ - widget_size_ASC + cost_currency_DESC """ - Sorts descending by the `widget_size` field. + Sorts ascending by the `cost_currency_introduced_on` field. """ - widget_size_DESC + cost_currency_introduced_on_ASC """ - Sorts ascending by the `widget_workspace_id` field. + Sorts descending by the `cost_currency_introduced_on` field. """ - widget_workspace_id_ASC + cost_currency_introduced_on_DESC """ - Sorts descending by the `widget_workspace_id` field. + Sorts ascending by the `cost_currency_name` field. """ - widget_workspace_id_DESC + cost_currency_name_ASC """ - Sorts ascending by the `workspace_id` field. + Sorts descending by the `cost_currency_name` field. """ - workspace_id_ASC + cost_currency_name_DESC """ - Sorts descending by the `workspace_id` field. + Sorts ascending by the `cost_currency_primary_continent` field. """ - workspace_id_DESC + cost_currency_primary_continent_ASC """ - Sorts ascending by the `workspace_name` field. + Sorts descending by the `cost_currency_primary_continent` field. """ - workspace_name_ASC + cost_currency_primary_continent_DESC """ - Sorts descending by the `workspace_name` field. + Sorts ascending by the `cost_currency_symbol` field. """ - workspace_name_DESC -} - -interface NamedInventor { - id: ID! - name: String -} + cost_currency_symbol_ASC -""" -Type used to perform aggregation computations on `NamedInventor` fields. -""" -type NamedInventorAggregatedValues { """ - Computed aggregate values for the `id` field. + Sorts descending by the `cost_currency_symbol` field. """ - id: NonNumericAggregatedValues + cost_currency_symbol_DESC """ - Computed aggregate values for the `name` field. + Sorts ascending by the `cost_currency_unit` field. """ - name: NonNumericAggregatedValues + cost_currency_unit_ASC """ - Computed aggregate values for the `nationality` field. + Sorts descending by the `cost_currency_unit` field. """ - nationality: NonNumericAggregatedValues + cost_currency_unit_DESC """ - Computed aggregate values for the `stock_ticker` field. + Sorts ascending by the `created_at2` field. """ - stock_ticker: NonNumericAggregatedValues -} + created_at2_ASC -""" -Return type representing a bucket of `NamedInventor` documents for an aggregations query. -""" -type NamedInventorAggregation { """ - Provides computed aggregated values over all `NamedInventor` documents in an aggregation bucket. + Sorts descending by the `created_at2` field. """ - aggregated_values: NamedInventorAggregatedValues + created_at2_DESC """ - The count of `NamedInventor` documents in an aggregation bucket. + Sorts ascending by the `created_at` field. """ - count: JsonSafeLong! + created_at_ASC """ - Used to specify the `NamedInventor` fields to group by. The returned values identify each aggregation bucket. + Sorts descending by the `created_at` field. """ - grouped_by: NamedInventorGroupedBy -} - -""" -Represents a paginated collection of `NamedInventorAggregation` results. + created_at_DESC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type NamedInventorAggregationConnection { """ - Wraps a specific `NamedInventorAggregation` to pair it with its pagination cursor. + Sorts ascending by the `created_at_time_of_day` field. """ - edges: [NamedInventorAggregationEdge!]! + created_at_time_of_day_ASC """ - The list of `NamedInventorAggregation` results. + Sorts descending by the `created_at_time_of_day` field. """ - nodes: [NamedInventorAggregation!]! + created_at_time_of_day_DESC """ - Provides pagination-related information. + Sorts ascending by the `created_on` field. """ - page_info: PageInfo! -} - -""" -Represents a specific `NamedInventorAggregation` in the context of a `NamedInventorAggregationConnection`, -providing access to both the `NamedInventorAggregation` and query-specific information such as the pagination `Cursor`. + created_on_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type NamedInventorAggregationEdge { """ - The `Cursor` of this `NamedInventorAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `NamedInventorAggregation`. + Sorts descending by the `created_on` field. """ - cursor: Cursor + created_on_DESC """ - The `NamedInventorAggregation` of this edge. + Sorts ascending by the `id` field. """ - node: NamedInventorAggregation -} - -""" -Represents a paginated collection of `NamedInventor` results. + id_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type NamedInventorConnection { """ - Wraps a specific `NamedInventor` to pair it with its pagination cursor. + Sorts descending by the `id` field. """ - edges: [NamedInventorEdge!]! + id_DESC """ - The list of `NamedInventor` results. + Sorts ascending by the `internal_details.name` field. """ - nodes: [NamedInventor!]! + internal_details_name_ASC """ - Provides pagination-related information. + Sorts descending by the `internal_details.name` field. """ - page_info: PageInfo! + internal_details_name_DESC """ - The total number of edges available in this connection to paginate over. + Sorts ascending by the `internal_highlightable_details.name` field. """ - total_edge_count: JsonSafeLong! -} - -""" -Represents a specific `NamedInventor` in the context of a `NamedInventorConnection`, -providing access to both the `NamedInventor` and query-specific information such as the pagination `Cursor`. + internal_highlightable_details_name_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type NamedInventorEdge { """ - All search highlights for this `NamedInventor`, indicating where in the indexed document the query matched. + Sorts descending by the `internal_highlightable_details.name` field. """ - all_highlights: [SearchHighlight!]! + internal_highlightable_details_name_DESC """ - The `Cursor` of this `NamedInventor`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `NamedInventor`. + Sorts ascending by the `internal_highlightable_name` field. """ - cursor: Cursor + internal_highlightable_name_ASC """ - Specific search highlights for this `NamedInventor`, providing matching snippets for the requested fields. + Sorts descending by the `internal_highlightable_name` field. """ - highlights: NamedInventorHighlights + internal_highlightable_name_DESC """ - The `NamedInventor` of this edge. + Sorts ascending by the `internal_name` field. """ - node: NamedInventor -} - -""" -Input type used to specify filters on `NamedInventor` fields. + internal_name_ASC -Will match all documents if passed as an empty object (or as `null`). -""" -input NamedInventorFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `NamedInventorFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Sorts descending by the `internal_name` field. """ - all_of: [NamedInventorFilterInput!] + internal_name_DESC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Sorts ascending by the `inventor.id` field. """ - any_of: [NamedInventorFilterInput!] + inventor_id_ASC """ - Used to filter on the `id` field. - - When `null` or an empty object is passed, matches all documents. + Sorts descending by the `inventor.id` field. """ - id: IDFilterInput + inventor_id_DESC """ - Used to filter on the `name` field. - - When `null` or an empty object is passed, matches all documents. + Sorts ascending by the `inventor.name` field. """ - name: StringFilterInput + inventor_name_ASC """ - Used to filter on the `nationality` field. - - When `null` or an empty object is passed, matches all documents. + Sorts descending by the `inventor.name` field. """ - nationality: StringFilterInput + inventor_name_DESC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Sorts ascending by the `inventor.nationality` field. """ - not: NamedInventorFilterInput + inventor_nationality_ASC """ - Used to filter on the `stock_ticker` field. - - When `null` or an empty object is passed, matches all documents. + Sorts descending by the `inventor.nationality` field. """ - stock_ticker: StringFilterInput -} + inventor_nationality_DESC -""" -Type used to specify the `NamedInventor` fields to group by for aggregations. -""" -type NamedInventorGroupedBy { """ - The `name` field value for this group. + Sorts ascending by the `inventor.stock_ticker` field. """ - name: String + inventor_stock_ticker_ASC """ - The `nationality` field value for this group. + Sorts descending by the `inventor.stock_ticker` field. """ - nationality: String + inventor_stock_ticker_DESC """ - The `stock_ticker` field value for this group. + Sorts ascending by the `material` field. """ - stock_ticker: String -} + material_ASC -""" -Type used to request desired `NamedInventor` search highlight fields. -""" -type NamedInventorHighlights { """ - Search highlights for the `id`, providing snippets of the matching text. + Sorts descending by the `material` field. """ - id: [String!]! + material_DESC """ - Search highlights for the `name`, providing snippets of the matching text. + Sorts ascending by the `metadata` field. """ - name: [String!]! + metadata_ASC """ - Search highlights for the `nationality`, providing snippets of the matching text. + Sorts descending by the `metadata` field. """ - nationality: [String!]! + metadata_DESC """ - Search highlights for the `stock_ticker`, providing snippets of the matching text. + Sorts ascending by the `name` field. """ - stock_ticker: [String!]! -} + name_ASC -""" -Enumerates the ways `NamedInventor`s can be sorted. -""" -enum NamedInventorSortOrderInput { """ - Sorts ascending by the `id` field. + Sorts descending by the `name` field. """ - id_ASC + name_DESC """ - Sorts descending by the `id` field. + Sorts ascending by the `named_inventor.id` field. """ - id_DESC + named_inventor_id_ASC """ - Sorts ascending by the `name` field. + Sorts descending by the `named_inventor.id` field. """ - name_ASC + named_inventor_id_DESC """ - Sorts descending by the `name` field. + Sorts ascending by the `named_inventor.name` field. """ - name_DESC + named_inventor_name_ASC """ - Sorts ascending by the `nationality` field. + Sorts descending by the `named_inventor.name` field. """ - nationality_ASC + named_inventor_name_DESC """ - Sorts descending by the `nationality` field. + Sorts ascending by the `named_inventor.nationality` field. """ - nationality_DESC + named_inventor_nationality_ASC """ - Sorts ascending by the `stock_ticker` field. + Sorts descending by the `named_inventor.nationality` field. """ - stock_ticker_ASC + named_inventor_nationality_DESC """ - Sorts descending by the `stock_ticker` field. + Sorts ascending by the `named_inventor.stock_ticker` field. """ - stock_ticker_DESC -} + named_inventor_stock_ticker_ASC -""" -A return type used from aggregations to provided aggregated values over non-numeric fields. -""" -type NonNumericAggregatedValues { """ - An approximation of the number of unique values for this field within this grouping. - - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. + Sorts descending by the `named_inventor.stock_ticker` field. """ - approximate_distinct_value_count: JsonSafeLong -} + named_inventor_stock_ticker_DESC -""" -Provides information about the specific fetched page. This implements the `PageInfo` -specification from the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo). -""" -type PageInfo { """ - The `Cursor` of the last edge of the current page. This can be passed in the next query as - a `after` argument to paginate forwards. + Sorts ascending by the `options.color` field. """ - end_cursor: Cursor + options_color_ASC """ - Indicates if there is another page of results available after the current one. + Sorts descending by the `options.color` field. """ - has_next_page: Boolean! + options_color_DESC """ - Indicates if there is another page of results available before the current one. + Sorts ascending by the `options.size` field. """ - has_previous_page: Boolean! + options_size_ASC """ - The `Cursor` of the first edge of the current page. This can be passed in the next query as - a `before` argument to paginate backwards. + Sorts descending by the `options.size` field. """ - start_cursor: Cursor -} - -union Part = ElectricalPart | MechanicalPart + options_size_DESC -""" -Type used to perform aggregation computations on `Part` fields. -""" -type PartAggregatedValues { """ - Computed aggregate values for the `created_at` field. + Sorts ascending by the `options.the_size` field. """ - created_at: DateTimeAggregatedValues + options_the_size_ASC """ - Computed aggregate values for the `id` field. + Sorts descending by the `options.the_size` field. """ - id: NonNumericAggregatedValues + options_the_size_DESC """ - Computed aggregate values for the `material` field. + Sorts ascending by the `position.x` field. """ - material: NonNumericAggregatedValues + position_x_ASC """ - Computed aggregate values for the `name` field. + Sorts descending by the `position.x` field. """ - name: NonNumericAggregatedValues + position_x_DESC """ - Computed aggregate values for the `voltage` field. + Sorts ascending by the `position.y` field. """ - voltage: IntAggregatedValues -} + position_y_ASC -""" -Return type representing a bucket of `Part` documents for an aggregations query. -""" -type PartAggregation { """ - Provides computed aggregated values over all `Part` documents in an aggregation bucket. + Sorts descending by the `position.y` field. """ - aggregated_values: PartAggregatedValues + position_y_DESC """ - The count of `Part` documents in an aggregation bucket. + Sorts ascending by the `size` field. """ - count: JsonSafeLong! + size_ASC """ - Used to specify the `Part` fields to group by. The returned values identify each aggregation bucket. + Sorts descending by the `size` field. """ - grouped_by: PartGroupedBy -} - -""" -Represents a paginated collection of `PartAggregation` results. + size_DESC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type PartAggregationConnection { """ - Wraps a specific `PartAggregation` to pair it with its pagination cursor. + Sorts ascending by the `the_options.color` field. """ - edges: [PartAggregationEdge!]! + the_options_color_ASC """ - The list of `PartAggregation` results. + Sorts descending by the `the_options.color` field. """ - nodes: [PartAggregation!]! + the_options_color_DESC """ - Provides pagination-related information. + Sorts ascending by the `the_options.size` field. """ - page_info: PageInfo! -} - -""" -Represents a specific `PartAggregation` in the context of a `PartAggregationConnection`, -providing access to both the `PartAggregation` and query-specific information such as the pagination `Cursor`. + the_options_size_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type PartAggregationEdge { """ - The `Cursor` of this `PartAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `PartAggregation`. + Sorts descending by the `the_options.size` field. """ - cursor: Cursor + the_options_size_DESC """ - The `PartAggregation` of this edge. + Sorts ascending by the `the_options.the_size` field. """ - node: PartAggregation -} - -""" -Represents a paginated collection of `Part` results. + the_options_the_size_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type PartConnection { """ - Wraps a specific `Part` to pair it with its pagination cursor. + Sorts descending by the `the_options.the_size` field. """ - edges: [PartEdge!]! + the_options_the_size_DESC """ - The list of `Part` results. + Sorts ascending by the `voltage` field. """ - nodes: [Part!]! + voltage_ASC """ - Provides pagination-related information. + Sorts descending by the `voltage` field. """ - page_info: PageInfo! + voltage_DESC """ - The total number of edges available in this connection to paginate over. + Sorts ascending by the `weight_in_ng` field. """ - total_edge_count: JsonSafeLong! -} - -""" -Represents a specific `Part` in the context of a `PartConnection`, -providing access to both the `Part` and query-specific information such as the pagination `Cursor`. + weight_in_ng_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type PartEdge { """ - All search highlights for this `Part`, indicating where in the indexed document the query matched. + Sorts descending by the `weight_in_ng` field. """ - all_highlights: [SearchHighlight!]! + weight_in_ng_DESC """ - The `Cursor` of this `Part`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Part`. + Sorts ascending by the `weight_in_ng_str` field. """ - cursor: Cursor + weight_in_ng_str_ASC """ - Specific search highlights for this `Part`, providing matching snippets for the requested fields. + Sorts descending by the `weight_in_ng_str` field. """ - highlights: PartHighlights + weight_in_ng_str_DESC """ - The `Part` of this edge. + Sorts ascending by the `widget_cost.amount_cents` field. """ - node: Part -} - -""" -Input type used to specify filters on `Part` fields. - -Will match all documents if passed as an empty object (or as `null`). -""" -input PartFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PartFilterInput` input because of collisions between - key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. - """ - all_of: [PartFilterInput!] - - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. - """ - any_of: [PartFilterInput!] - - """ - Used to filter on the `created_at` field. - - When `null` or an empty object is passed, matches all documents. - """ - created_at: DateTimeFilterInput - - """ - Used to filter on the `id` field. - - When `null` or an empty object is passed, matches all documents. - """ - id: IDFilterInput - - """ - Used to filter on the `material` field. - - When `null` or an empty object is passed, matches all documents. - """ - material: MaterialFilterInput - - """ - Used to filter on the `name` field. - - When `null` or an empty object is passed, matches all documents. - """ - name: StringFilterInput - - """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. - """ - not: PartFilterInput - - """ - Used to filter on the `voltage` field. - - When `null` or an empty object is passed, matches all documents. - """ - voltage: IntFilterInput -} - -""" -Type used to specify the `Part` fields to group by for aggregations. -""" -type PartGroupedBy { - """ - Offers the different grouping options for the `created_at` value within this group. - """ - created_at: DateTimeGroupedBy - - """ - The `material` field value for this group. - """ - material: Material - - """ - The `name` field value for this group. - """ - name: String - - """ - The `voltage` field value for this group. - """ - voltage: Int -} + widget_cost_amount_cents_ASC -""" -Type used to request desired `Part` search highlight fields. -""" -type PartHighlights { """ - Search highlights for the `id`, providing snippets of the matching text. + Sorts descending by the `widget_cost.amount_cents` field. """ - id: [String!]! + widget_cost_amount_cents_DESC """ - Search highlights for the `material`, providing snippets of the matching text. + Sorts ascending by the `widget_cost.currency` field. """ - material: [String!]! + widget_cost_currency_ASC """ - Search highlights for the `name`, providing snippets of the matching text. + Sorts descending by the `widget_cost.currency` field. """ - name: [String!]! -} + widget_cost_currency_DESC -""" -Enumerates the ways `Part`s can be sorted. -""" -enum PartSortOrderInput { """ - Sorts ascending by the `created_at` field. + Sorts ascending by the `widget_name` field. """ - created_at_ASC + widget_name_ASC """ - Sorts descending by the `created_at` field. + Sorts descending by the `widget_name` field. """ - created_at_DESC + widget_name_DESC """ - Sorts ascending by the `id` field. + Sorts ascending by the `widget_size` field. """ - id_ASC + widget_size_ASC """ - Sorts descending by the `id` field. + Sorts descending by the `widget_size` field. """ - id_DESC + widget_size_DESC """ - Sorts ascending by the `material` field. + Sorts ascending by the `widget_workspace_id` field. """ - material_ASC + widget_workspace_id_ASC """ - Sorts descending by the `material` field. + Sorts descending by the `widget_workspace_id` field. """ - material_DESC + widget_workspace_id_DESC """ - Sorts ascending by the `name` field. + Sorts ascending by the `workspace_id` field. """ - name_ASC + workspace_id_ASC """ - Sorts descending by the `name` field. + Sorts descending by the `workspace_id` field. """ - name_DESC + workspace_id_DESC """ - Sorts ascending by the `voltage` field. + Sorts ascending by the `workspace_name` field. """ - voltage_ASC + workspace_name_ASC """ - Sorts descending by the `voltage` field. + Sorts descending by the `workspace_name` field. """ - voltage_DESC + workspace_name_DESC } -type Person implements NamedInventor { +interface NamedInventor { id: ID! name: String - nationality: String } """ -Type used to perform aggregation computations on `Person` fields. +Type used to perform aggregation computations on `NamedInventor` fields. """ -type PersonAggregatedValues { +type NamedInventorAggregatedValues { """ Computed aggregate values for the `id` field. """ @@ -8148,44 +7737,49 @@ type PersonAggregatedValues { Computed aggregate values for the `nationality` field. """ nationality: NonNumericAggregatedValues + + """ + Computed aggregate values for the `stock_ticker` field. + """ + stock_ticker: NonNumericAggregatedValues } """ -Return type representing a bucket of `Person` documents for an aggregations query. +Return type representing a bucket of `NamedInventor` documents for an aggregations query. """ -type PersonAggregation { +type NamedInventorAggregation { """ - Provides computed aggregated values over all `Person` documents in an aggregation bucket. + Provides computed aggregated values over all `NamedInventor` documents in an aggregation bucket. """ - aggregated_values: PersonAggregatedValues + aggregated_values: NamedInventorAggregatedValues """ - The count of `Person` documents in an aggregation bucket. + The count of `NamedInventor` documents in an aggregation bucket. """ count: JsonSafeLong! """ - Used to specify the `Person` fields to group by. The returned values identify each aggregation bucket. + Used to specify the `NamedInventor` fields to group by. The returned values identify each aggregation bucket. """ - grouped_by: PersonGroupedBy + grouped_by: NamedInventorGroupedBy } """ -Represents a paginated collection of `PersonAggregation` results. +Represents a paginated collection of `NamedInventorAggregation` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type PersonAggregationConnection { +type NamedInventorAggregationConnection { """ - Wraps a specific `PersonAggregation` to pair it with its pagination cursor. + Wraps a specific `NamedInventorAggregation` to pair it with its pagination cursor. """ - edges: [PersonAggregationEdge!]! + edges: [NamedInventorAggregationEdge!]! """ - The list of `PersonAggregation` results. + The list of `NamedInventorAggregation` results. """ - nodes: [PersonAggregation!]! + nodes: [NamedInventorAggregation!]! """ Provides pagination-related information. @@ -8194,41 +7788,41 @@ type PersonAggregationConnection { } """ -Represents a specific `PersonAggregation` in the context of a `PersonAggregationConnection`, -providing access to both the `PersonAggregation` and query-specific information such as the pagination `Cursor`. +Represents a specific `NamedInventorAggregation` in the context of a `NamedInventorAggregationConnection`, +providing access to both the `NamedInventorAggregation` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type PersonAggregationEdge { +type NamedInventorAggregationEdge { """ - The `Cursor` of this `PersonAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `PersonAggregation`. + The `Cursor` of this `NamedInventorAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `NamedInventorAggregation`. """ cursor: Cursor """ - The `PersonAggregation` of this edge. + The `NamedInventorAggregation` of this edge. """ - node: PersonAggregation + node: NamedInventorAggregation } """ -Represents a paginated collection of `Person` results. +Represents a paginated collection of `NamedInventor` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type PersonConnection { +type NamedInventorConnection { """ - Wraps a specific `Person` to pair it with its pagination cursor. + Wraps a specific `NamedInventor` to pair it with its pagination cursor. """ - edges: [PersonEdge!]! + edges: [NamedInventorEdge!]! """ - The list of `Person` results. + The list of `NamedInventor` results. """ - nodes: [Person!]! + nodes: [NamedInventor!]! """ Provides pagination-related information. @@ -8242,52 +7836,52 @@ type PersonConnection { } """ -Represents a specific `Person` in the context of a `PersonConnection`, -providing access to both the `Person` and query-specific information such as the pagination `Cursor`. +Represents a specific `NamedInventor` in the context of a `NamedInventorConnection`, +providing access to both the `NamedInventor` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type PersonEdge { +type NamedInventorEdge { """ - All search highlights for this `Person`, indicating where in the indexed document the query matched. + All search highlights for this `NamedInventor`, indicating where in the indexed document the query matched. """ all_highlights: [SearchHighlight!]! """ - The `Cursor` of this `Person`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Person`. + The `Cursor` of this `NamedInventor`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `NamedInventor`. """ cursor: Cursor """ - Specific search highlights for this `Person`, providing matching snippets for the requested fields. + Specific search highlights for this `NamedInventor`, providing matching snippets for the requested fields. """ - highlights: PersonHighlights + highlights: NamedInventorHighlights """ - The `Person` of this edge. + The `NamedInventor` of this edge. """ - node: Person + node: NamedInventor } """ -Input type used to specify filters on `Person` fields. +Input type used to specify filters on `NamedInventor` fields. Will match all documents if passed as an empty object (or as `null`). """ -input PersonFilterInput { +input NamedInventorFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PersonFilterInput` input because of collisions + be provided on a single `NamedInventorFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [PersonFilterInput!] + all_of: [NamedInventorFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -8296,7 +7890,7 @@ input PersonFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PersonFilterInput!] + any_of: [NamedInventorFilterInput!] """ Used to filter on the `id` field. @@ -8325,13 +7919,20 @@ input PersonFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: PersonFilterInput + not: NamedInventorFilterInput + + """ + Used to filter on the `stock_ticker` field. + + When `null` or an empty object is passed, matches all documents. + """ + stock_ticker: StringFilterInput } """ -Type used to specify the `Person` fields to group by for aggregations. +Type used to specify the `NamedInventor` fields to group by for aggregations. """ -type PersonGroupedBy { +type NamedInventorGroupedBy { """ The `name` field value for this group. """ @@ -8341,12 +7942,17 @@ type PersonGroupedBy { The `nationality` field value for this group. """ nationality: String + + """ + The `stock_ticker` field value for this group. + """ + stock_ticker: String } """ -Type used to request desired `Person` search highlight fields. +Type used to request desired `NamedInventor` search highlight fields. """ -type PersonHighlights { +type NamedInventorHighlights { """ Search highlights for the `id`, providing snippets of the matching text. """ @@ -8361,12 +7967,17 @@ type PersonHighlights { Search highlights for the `nationality`, providing snippets of the matching text. """ nationality: [String!]! + + """ + Search highlights for the `stock_ticker`, providing snippets of the matching text. + """ + stock_ticker: [String!]! } """ -Enumerates the ways `Person`s can be sorted. +Enumerates the ways `NamedInventor`s can be sorted. """ -enum PersonSortOrderInput { +enum NamedInventorSortOrderInput { """ Sorts ascending by the `id` field. """ @@ -8396,145 +8007,241 @@ enum PersonSortOrderInput { Sorts descending by the `nationality` field. """ nationality_DESC + + """ + Sorts ascending by the `stock_ticker` field. + """ + stock_ticker_ASC + + """ + Sorts descending by the `stock_ticker` field. + """ + stock_ticker_DESC } -type Player { - affiliations: Affiliations! - name: String - nicknames: [String!]! - seasons_nested: [PlayerSeason!]! - seasons_object: [PlayerSeason!]! +""" +A return type used from aggregations to provided aggregated values over non-numeric fields. +""" +type NonNumericAggregatedValues { + """ + An approximation of the number of unique values for this field within this grouping. + + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. + """ + approximate_distinct_value_count: JsonSafeLong +} + +type OnlineStore implements DistributionChannel & Retail & Store { + active: Boolean + customer_facing: Boolean + established_on: Date + id: ID! + platform: String + url: String! } """ -Type used to perform aggregation computations on `Player` fields. +Provides information about the specific fetched page. This implements the `PageInfo` +specification from the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo). """ -type PlayerAggregatedValues { +type PageInfo { """ - Computed aggregate values for the `affiliations` field. + The `Cursor` of the last edge of the current page. This can be passed in the next query as + a `after` argument to paginate forwards. """ - affiliations: AffiliationsAggregatedValues + end_cursor: Cursor """ - Computed aggregate values for the `name` field. + Indicates if there is another page of results available after the current one. """ - name: NonNumericAggregatedValues + has_next_page: Boolean! """ - Computed aggregate values for the `nicknames` field. + Indicates if there is another page of results available before the current one. """ - nicknames: NonNumericAggregatedValues + has_previous_page: Boolean! """ - Computed aggregate values for the `seasons_object` field. + The `Cursor` of the first edge of the current page. This can be passed in the next query as + a `before` argument to paginate backwards. """ - seasons_object: PlayerSeasonAggregatedValues + start_cursor: Cursor } -""" -Input type used to specify filters on a `Player` object referenced directly -or transitively from a list field that has been configured to index each leaf field as -its own flattened list of values. +union Part = ElectricalPart | MechanicalPart -Will match all documents if passed as an empty object (or as `null`). """ -input PlayerFieldsListFilterInput { +Type used to perform aggregation computations on `Part` fields. +""" +type PartAggregatedValues { """ - Used to filter on the `affiliations` field. - - When `null` or an empty object is passed, matches all documents. + Computed aggregate values for the `created_at` field. """ - affiliations: AffiliationsFieldsListFilterInput + created_at: DateTimeAggregatedValues """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerFieldsListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues - When `null` or an empty list is passed, matches all documents. """ - all_of: [PlayerFieldsListFilterInput!] + Computed aggregate values for the `material` field. + """ + material: NonNumericAggregatedValues """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + Computed aggregate values for the `name` field. + """ + name: NonNumericAggregatedValues - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PlayerFieldsListFilterInput!] + Computed aggregate values for the `voltage` field. + """ + voltage: IntAggregatedValues +} +""" +Return type representing a bucket of `Part` documents for an aggregations query. +""" +type PartAggregation { """ - Used to filter on the number of non-null elements in this list field. + Provides computed aggregated values over all `Part` documents in an aggregation bucket. + """ + aggregated_values: PartAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - count: IntFilterInput + The count of `Part` documents in an aggregation bucket. + """ + count: JsonSafeLong! """ - Used to filter on the `name` field. + Used to specify the `Part` fields to group by. The returned values identify each aggregation bucket. + """ + grouped_by: PartGroupedBy +} - When `null` or an empty object is passed, matches all documents. +""" +Represents a paginated collection of `PartAggregation` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type PartAggregationConnection { """ - name: StringListFilterInput + Wraps a specific `PartAggregation` to pair it with its pagination cursor. + """ + edges: [PartAggregationEdge!]! """ - Used to filter on the `nicknames` field. + The list of `PartAggregation` results. + """ + nodes: [PartAggregation!]! - When `null` or an empty object is passed, matches all documents. """ - nicknames: StringListFilterInput + Provides pagination-related information. + """ + page_info: PageInfo! +} +""" +Represents a specific `PartAggregation` in the context of a `PartAggregationConnection`, +providing access to both the `PartAggregation` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type PartAggregationEdge { """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + The `Cursor` of this `PartAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `PartAggregation`. + """ + cursor: Cursor - When `null` or an empty object is passed, matches no documents. """ - not: PlayerFieldsListFilterInput + The `PartAggregation` of this edge. + """ + node: PartAggregation +} +""" +Represents a paginated collection of `Part` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type PartConnection { """ - Used to filter on the `seasons_nested` field. + Wraps a specific `Part` to pair it with its pagination cursor. + """ + edges: [PartEdge!]! - When `null` or an empty object is passed, matches all documents. """ - seasons_nested: PlayerSeasonListFilterInput + The list of `Part` results. + """ + nodes: [Part!]! """ - Used to filter on the `seasons_object` field. + Provides pagination-related information. + """ + page_info: PageInfo! - When `null` or an empty object is passed, matches all documents. """ - seasons_object: PlayerSeasonFieldsListFilterInput + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! } """ -Input type used to specify filters on `Player` fields. +Represents a specific `Part` in the context of a `PartConnection`, +providing access to both the `Part` and query-specific information such as the pagination `Cursor`. -Will match all documents if passed as an empty object (or as `null`). +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -input PlayerFilterInput { +type PartEdge { """ - Used to filter on the `affiliations` field. + All search highlights for this `Part`, indicating where in the indexed document the query matched. + """ + all_highlights: [SearchHighlight!]! - When `null` or an empty object is passed, matches all documents. """ - affiliations: AffiliationsFilterInput + The `Cursor` of this `Part`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Part`. + """ + cursor: Cursor + + """ + Specific search highlights for this `Part`, providing matching snippets for the requested fields. + """ + highlights: PartHighlights + + """ + The `Part` of this edge. + """ + node: Part +} + +""" +Input type used to specify filters on `Part` fields. +Will match all documents if passed as an empty object (or as `null`). +""" +input PartFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `PartFilterInput` input because of collisions between + key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [PlayerFilterInput!] + all_of: [PartFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -8543,235 +8250,195 @@ input PlayerFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PlayerFilterInput!] + any_of: [PartFilterInput!] """ - Used to filter on the `name` field. + Used to filter on the `created_at` field. When `null` or an empty object is passed, matches all documents. """ - name: StringFilterInput + created_at: DateTimeFilterInput """ - Used to filter on the `nicknames` field. + Used to filter on the `id` field. When `null` or an empty object is passed, matches all documents. """ - nicknames: StringListFilterInput + id: IDFilterInput """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Used to filter on the `material` field. - When `null` or an empty object is passed, matches no documents. + When `null` or an empty object is passed, matches all documents. """ - not: PlayerFilterInput + material: MaterialFilterInput """ - Used to filter on the `seasons_nested` field. + Used to filter on the `name` field. When `null` or an empty object is passed, matches all documents. """ - seasons_nested: PlayerSeasonListFilterInput + name: StringFilterInput """ - Used to filter on the `seasons_object` field. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PartFilterInput + + """ + Used to filter on the `voltage` field. When `null` or an empty object is passed, matches all documents. """ - seasons_object: PlayerSeasonFieldsListFilterInput + voltage: IntFilterInput } """ -Type used to specify the `Player` fields to group by for aggregations. +Type used to specify the `Part` fields to group by for aggregations. """ -type PlayerGroupedBy { +type PartGroupedBy { """ - The `affiliations` field value for this group. + Offers the different grouping options for the `created_at` value within this group. """ - affiliations: AffiliationsGroupedBy + created_at: DateTimeGroupedBy """ - The `name` field value for this group. + The `material` field value for this group. """ - name: String + material: Material """ - The `seasons_object` field value for this group. + The `name` field value for this group. + """ + name: String - Note: `seasons_object` is a collection field, but selecting this field will - group on individual values of the selected subfields of `seasons_object`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `seasons_object` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `seasons_object` multiple times for a single document, that document will only be included in the group - once. """ - seasons_object: PlayerSeasonGroupedBy + The `voltage` field value for this group. + """ + voltage: Int } """ -Type used to request desired `Player` search highlight fields. +Type used to request desired `Part` search highlight fields. """ -type PlayerHighlights { +type PartHighlights { """ - Search highlights for the `affiliations`, providing snippets of the matching text. + Search highlights for the `id`, providing snippets of the matching text. """ - affiliations: AffiliationsHighlights + id: [String!]! + + """ + Search highlights for the `material`, providing snippets of the matching text. + """ + material: [String!]! """ Search highlights for the `name`, providing snippets of the matching text. """ name: [String!]! +} +""" +Enumerates the ways `Part`s can be sorted. +""" +enum PartSortOrderInput { """ - Search highlights for the `nicknames`, providing snippets of the matching text. + Sorts ascending by the `created_at` field. """ - nicknames: [String!]! + created_at_ASC """ - Search highlights for the `seasons_nested`, providing snippets of the matching text. + Sorts descending by the `created_at` field. """ - seasons_nested: PlayerSeasonHighlights + created_at_DESC """ - Search highlights for the `seasons_object`, providing snippets of the matching text. + Sorts ascending by the `id` field. """ - seasons_object: PlayerSeasonHighlights -} - -""" -Input type used to specify filters on `[Player]` fields. + id_ASC -Will match all documents if passed as an empty object (or as `null`). -""" -input PlayerListFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerListFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Sorts descending by the `id` field. """ - all_of: [PlayerListFilterInput!] + id_DESC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Sorts ascending by the `material` field. """ - any_of: [PlayerListFilterInput!] + material_ASC """ - Matches records where any of the list elements match the provided sub-filter. - - When `null` or an empty object is passed, matches all documents. + Sorts descending by the `material` field. """ - any_satisfy: PlayerFilterInput + material_DESC """ - Used to filter on the number of non-null elements in this list field. + Sorts ascending by the `name` field. + """ + name_ASC - When `null` or an empty object is passed, matches all documents. """ - count: IntFilterInput + Sorts descending by the `name` field. + """ + name_DESC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Sorts ascending by the `voltage` field. + """ + voltage_ASC - When `null` or an empty object is passed, matches no documents. """ - not: PlayerListFilterInput + Sorts descending by the `voltage` field. + """ + voltage_DESC } -type PlayerSeason { - awards( - """ - Used to forward-paginate through the `awards`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the `awards`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used in conjunction with the `after` argument to forward-paginate through the `awards`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `awards`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through the `awards`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `awards`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): StringConnection - games_played: Int - year: Int +type Person implements NamedInventor { + id: ID! + name: String + nationality: String } """ -Type used to perform aggregation computations on `PlayerSeason` fields. +Type used to perform aggregation computations on `Person` fields. """ -type PlayerSeasonAggregatedValues { +type PersonAggregatedValues { """ - Computed aggregate values for the `awards` field. + Computed aggregate values for the `id` field. """ - awards: NonNumericAggregatedValues + id: NonNumericAggregatedValues """ - Computed aggregate values for the `games_played` field. + Computed aggregate values for the `name` field. """ - games_played: IntAggregatedValues + name: NonNumericAggregatedValues """ - Computed aggregate values for the `year` field. + Computed aggregate values for the `nationality` field. """ - year: IntAggregatedValues + nationality: NonNumericAggregatedValues } """ -Input type used to specify filters on a `PlayerSeason` object referenced directly -or transitively from a list field that has been configured to index each leaf field as -its own flattened list of values. +Input type used to specify filters on `Person` fields. Will match all documents if passed as an empty object (or as `null`). """ -input PlayerSeasonFieldsListFilterInput { +input PersonFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerSeasonFieldsListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple + be provided on a single `PersonFilterInput` input because of collisions + between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [PlayerSeasonFieldsListFilterInput!] + all_of: [PersonFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -8780,28 +8447,28 @@ input PlayerSeasonFieldsListFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PlayerSeasonFieldsListFilterInput!] + any_of: [PersonFilterInput!] """ - Used to filter on the `awards` field. + Used to filter on the `id` field. When `null` or an empty object is passed, matches all documents. """ - awards: StringListFilterInput + id: IDFilterInput """ - Used to filter on the number of non-null elements in this list field. + Used to filter on the `name` field. When `null` or an empty object is passed, matches all documents. """ - count: IntFilterInput + name: StringFilterInput """ - Used to filter on the `games_played` field. + Used to filter on the `nationality` field. When `null` or an empty object is passed, matches all documents. """ - games_played: IntListFilterInput + nationality: StringFilterInput """ Matches records where the provided sub-filter evaluates to false. @@ -8809,185 +8476,240 @@ input PlayerSeasonFieldsListFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: PlayerSeasonFieldsListFilterInput + not: PersonFilterInput +} +""" +Type used to specify the `Person` fields to group by for aggregations. +""" +type PersonGroupedBy { """ - Used to filter on the `year` field. + The `name` field value for this group. + """ + name: String - When `null` or an empty object is passed, matches all documents. """ - year: IntListFilterInput + The `nationality` field value for this group. + """ + nationality: String } """ -Input type used to specify filters on `PlayerSeason` fields. - -Will match all documents if passed as an empty object (or as `null`). +Type used to request desired `Person` search highlight fields. """ -input PlayerSeasonFilterInput { +type PersonHighlights { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerSeasonFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Search highlights for the `id`, providing snippets of the matching text. """ - all_of: [PlayerSeasonFilterInput!] + id: [String!]! """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Search highlights for the `name`, providing snippets of the matching text. """ - any_of: [PlayerSeasonFilterInput!] + name: [String!]! """ - Used to filter on the `awards` field. - - When `null` or an empty object is passed, matches all documents. + Search highlights for the `nationality`, providing snippets of the matching text. """ - awards: StringListFilterInput + nationality: [String!]! +} + +type PhysicalStore implements DistributionChannel & Retail & Store { + active: Boolean + address: String! + customer_facing: Boolean + established_on: Date + id: ID! + square_footage: Int +} +""" +Type used to perform aggregation computations on `PhysicalStore` fields. +""" +type PhysicalStoreAggregatedValues { """ - Used to filter on the `games_played` field. + Computed aggregate values for the `active` field. + """ + active: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - games_played: IntFilterInput + Computed aggregate values for the `address` field. + """ + address: NonNumericAggregatedValues """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Computed aggregate values for the `customer_facing` field. + """ + customer_facing: NonNumericAggregatedValues - When `null` or an empty object is passed, matches no documents. """ - not: PlayerSeasonFilterInput + Computed aggregate values for the `established_on` field. + """ + established_on: DateAggregatedValues """ - Used to filter on the `year` field. + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - year: IntFilterInput + Computed aggregate values for the `square_footage` field. + """ + square_footage: IntAggregatedValues } """ -Type used to specify the `PlayerSeason` fields to group by for aggregations. +Return type representing a bucket of `PhysicalStore` documents for an aggregations query. """ -type PlayerSeasonGroupedBy { +type PhysicalStoreAggregation { """ - The `games_played` field value for this group. + Provides computed aggregated values over all `PhysicalStore` documents in an aggregation bucket. """ - games_played: Int + aggregated_values: PhysicalStoreAggregatedValues """ - The `year` field value for this group. + The count of `PhysicalStore` documents in an aggregation bucket. """ - year: Int -} + count: JsonSafeLong! -""" -Type used to request desired `PlayerSeason` search highlight fields. -""" -type PlayerSeasonHighlights { """ - Search highlights for the `awards`, providing snippets of the matching text. + Used to specify the `PhysicalStore` fields to group by. The returned values identify each aggregation bucket. """ - awards: [String!]! + grouped_by: PhysicalStoreGroupedBy } """ -Input type used to specify filters on `[PlayerSeason]` fields. +Represents a paginated collection of `PhysicalStoreAggregation` results. -Will match all documents if passed as an empty object (or as `null`). +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -input PlayerSeasonListFilterInput { +type PhysicalStoreAggregationConnection { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerSeasonListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Wraps a specific `PhysicalStoreAggregation` to pair it with its pagination cursor. """ - all_of: [PlayerSeasonListFilterInput!] + edges: [PhysicalStoreAggregationEdge!]! """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + The list of `PhysicalStoreAggregation` results. """ - any_of: [PlayerSeasonListFilterInput!] + nodes: [PhysicalStoreAggregation!]! """ - Matches records where any of the list elements match the provided sub-filter. + Provides pagination-related information. + """ + page_info: PageInfo! +} - When `null` or an empty object is passed, matches all documents. +""" +Represents a specific `PhysicalStoreAggregation` in the context of a `PhysicalStoreAggregationConnection`, +providing access to both the `PhysicalStoreAggregation` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type PhysicalStoreAggregationEdge { """ - any_satisfy: PlayerSeasonFilterInput + The `Cursor` of this `PhysicalStoreAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `PhysicalStoreAggregation`. + """ + cursor: Cursor """ - Used to filter on the number of non-null elements in this list field. + The `PhysicalStoreAggregation` of this edge. + """ + node: PhysicalStoreAggregation +} - When `null` or an empty object is passed, matches all documents. +""" +Represents a paginated collection of `PhysicalStore` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type PhysicalStoreConnection { """ - count: IntFilterInput + Wraps a specific `PhysicalStore` to pair it with its pagination cursor. + """ + edges: [PhysicalStoreEdge!]! """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + The list of `PhysicalStore` results. + """ + nodes: [PhysicalStore!]! - When `null` or an empty object is passed, matches no documents. """ - not: PlayerSeasonListFilterInput -} + Provides pagination-related information. + """ + page_info: PageInfo! -type Position { - x: Float! - y: Float! + """ + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! } """ -Type used to perform aggregation computations on `Position` fields. +Represents a specific `PhysicalStore` in the context of a `PhysicalStoreConnection`, +providing access to both the `PhysicalStore` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type PositionAggregatedValues { +type PhysicalStoreEdge { """ - Computed aggregate values for the `x` field. + All search highlights for this `PhysicalStore`, indicating where in the indexed document the query matched. """ - x: FloatAggregatedValues + all_highlights: [SearchHighlight!]! """ - Computed aggregate values for the `y` field. + The `Cursor` of this `PhysicalStore`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `PhysicalStore`. """ - y: FloatAggregatedValues + cursor: Cursor + + """ + Specific search highlights for this `PhysicalStore`, providing matching snippets for the requested fields. + """ + highlights: PhysicalStoreHighlights + + """ + The `PhysicalStore` of this edge. + """ + node: PhysicalStore } """ -Input type used to specify filters on `Position` fields. +Input type used to specify filters on `PhysicalStore` fields. Will match all documents if passed as an empty object (or as `null`). """ -input PositionFilterInput { +input PhysicalStoreFilterInput { + """ + Used to filter on the `active` field. + + When `null` or an empty object is passed, matches all documents. + """ + active: BooleanFilterInput + + """ + Used to filter on the `address` field. + + When `null` or an empty object is passed, matches all documents. + """ + address: StringFilterInput + """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PositionFilterInput` input because of collisions + be provided on a single `PhysicalStoreFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [PositionFilterInput!] + all_of: [PhysicalStoreFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -8996,7 +8718,28 @@ input PositionFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PositionFilterInput!] + any_of: [PhysicalStoreFilterInput!] + + """ + Used to filter on the `customer_facing` field. + + When `null` or an empty object is passed, matches all documents. + """ + customer_facing: BooleanFilterInput + + """ + Used to filter on the `established_on` field. + + When `null` or an empty object is passed, matches all documents. + """ + established_on: DateFilterInput + + """ + Used to filter on the `id` field. + + When `null` or an empty object is passed, matches all documents. + """ + id: IDFilterInput """ Matches records where the provided sub-filter evaluates to false. @@ -9004,123 +8747,1555 @@ input PositionFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: PositionFilterInput + not: PhysicalStoreFilterInput """ - Used to filter on the `x` field. + Used to filter on the `square_footage` field. When `null` or an empty object is passed, matches all documents. """ - x: FloatFilterInput + square_footage: IntFilterInput +} +""" +Type used to specify the `PhysicalStore` fields to group by for aggregations. +""" +type PhysicalStoreGroupedBy { """ - Used to filter on the `y` field. + The `active` field value for this group. + """ + active: Boolean - When `null` or an empty object is passed, matches all documents. """ - y: FloatFilterInput + The `address` field value for this group. + """ + address: String + + """ + The `customer_facing` field value for this group. + """ + customer_facing: Boolean + + """ + Offers the different grouping options for the `established_on` value within this group. + """ + established_on: DateGroupedBy + + """ + The `square_footage` field value for this group. + """ + square_footage: Int } """ -Type used to specify the `Position` fields to group by for aggregations. +Type used to request desired `PhysicalStore` search highlight fields. """ -type PositionGroupedBy { +type PhysicalStoreHighlights { """ - The `x` field value for this group. + Search highlights for the `address`, providing snippets of the matching text. """ - x: Float + address: [String!]! """ - The `y` field value for this group. + Search highlights for the `id`, providing snippets of the matching text. """ - y: Float + id: [String!]! } """ -The query entry point for the entire schema. +Enumerates the ways `PhysicalStore`s can be sorted. """ -type Query { +enum PhysicalStoreSortOrderInput { """ - Aggregations over the `addresses` data: - - > Fetches `Address`s based on the provided arguments. + Sorts ascending by the `address` field. """ - address_aggregations( - """ - Used to forward-paginate through the `address_aggregations`. When provided, the next page after the - provided cursor will be returned. + address_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Sorts descending by the `address` field. + """ + address_DESC - """ - Used to backward-paginate through the `address_aggregations`. When provided, the previous page before the - provided cursor will be returned. + """ + Sorts ascending by the `established_on` field. + """ + established_on_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Sorts descending by the `established_on` field. + """ + established_on_DESC - """ - Used to filter the `Address` documents that get aggregated over based on the provided criteria. - """ - filter: AddressFilterInput + """ + Sorts ascending by the `id` field. + """ + id_ASC - """ - Used in conjunction with the `after` argument to forward-paginate through the `address_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `address_aggregations`, if no `after` cursor is provided). + """ + Sorts descending by the `id` field. + """ + id_DESC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Sorts ascending by the `square_footage` field. + """ + square_footage_ASC - """ - Used in conjunction with the `before` argument to backward-paginate through the `address_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `address_aggregations`, if no `before` cursor is provided). + """ + Sorts descending by the `square_footage` field. + """ + square_footage_DESC +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): AddressAggregationConnection +type Player { + affiliations: Affiliations! + name: String + nicknames: [String!]! + seasons_nested: [PlayerSeason!]! + seasons_object: [PlayerSeason!]! +} +""" +Type used to perform aggregation computations on `Player` fields. +""" +type PlayerAggregatedValues { """ - Fetches `Address`s based on the provided arguments. + Computed aggregate values for the `affiliations` field. """ - addresses( - """ - Used to forward-paginate through the `addresses`. When provided, the next page after the - provided cursor will be returned. + affiliations: AffiliationsAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Computed aggregate values for the `name` field. + """ + name: NonNumericAggregatedValues - """ - Used to backward-paginate through the `addresses`. When provided, the previous page before the - provided cursor will be returned. + """ + Computed aggregate values for the `nicknames` field. + """ + nicknames: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Computed aggregate values for the `seasons_object` field. + """ + seasons_object: PlayerSeasonAggregatedValues +} - """ +""" +Input type used to specify filters on a `Player` object referenced directly +or transitively from a list field that has been configured to index each leaf field as +its own flattened list of values. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerFieldsListFilterInput { + """ + Used to filter on the `affiliations` field. + + When `null` or an empty object is passed, matches all documents. + """ + affiliations: AffiliationsFieldsListFilterInput + + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerFieldsListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerFieldsListFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerFieldsListFilterInput!] + + """ + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput + + """ + Used to filter on the `name` field. + + When `null` or an empty object is passed, matches all documents. + """ + name: StringListFilterInput + + """ + Used to filter on the `nicknames` field. + + When `null` or an empty object is passed, matches all documents. + """ + nicknames: StringListFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerFieldsListFilterInput + + """ + Used to filter on the `seasons_nested` field. + + When `null` or an empty object is passed, matches all documents. + """ + seasons_nested: PlayerSeasonListFilterInput + + """ + Used to filter on the `seasons_object` field. + + When `null` or an empty object is passed, matches all documents. + """ + seasons_object: PlayerSeasonFieldsListFilterInput +} + +""" +Input type used to specify filters on `Player` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerFilterInput { + """ + Used to filter on the `affiliations` field. + + When `null` or an empty object is passed, matches all documents. + """ + affiliations: AffiliationsFilterInput + + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerFilterInput!] + + """ + Used to filter on the `name` field. + + When `null` or an empty object is passed, matches all documents. + """ + name: StringFilterInput + + """ + Used to filter on the `nicknames` field. + + When `null` or an empty object is passed, matches all documents. + """ + nicknames: StringListFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerFilterInput + + """ + Used to filter on the `seasons_nested` field. + + When `null` or an empty object is passed, matches all documents. + """ + seasons_nested: PlayerSeasonListFilterInput + + """ + Used to filter on the `seasons_object` field. + + When `null` or an empty object is passed, matches all documents. + """ + seasons_object: PlayerSeasonFieldsListFilterInput +} + +""" +Type used to specify the `Player` fields to group by for aggregations. +""" +type PlayerGroupedBy { + """ + The `affiliations` field value for this group. + """ + affiliations: AffiliationsGroupedBy + + """ + The `name` field value for this group. + """ + name: String + + """ + The `seasons_object` field value for this group. + + Note: `seasons_object` is a collection field, but selecting this field will + group on individual values of the selected subfields of `seasons_object`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `seasons_object` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `seasons_object` multiple times for a single document, that document will only be included in the group + once. + """ + seasons_object: PlayerSeasonGroupedBy +} + +""" +Type used to request desired `Player` search highlight fields. +""" +type PlayerHighlights { + """ + Search highlights for the `affiliations`, providing snippets of the matching text. + """ + affiliations: AffiliationsHighlights + + """ + Search highlights for the `name`, providing snippets of the matching text. + """ + name: [String!]! + + """ + Search highlights for the `nicknames`, providing snippets of the matching text. + """ + nicknames: [String!]! + + """ + Search highlights for the `seasons_nested`, providing snippets of the matching text. + """ + seasons_nested: PlayerSeasonHighlights + + """ + Search highlights for the `seasons_object`, providing snippets of the matching text. + """ + seasons_object: PlayerSeasonHighlights +} + +""" +Input type used to specify filters on `[Player]` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerListFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerListFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerListFilterInput!] + + """ + Matches records where any of the list elements match the provided sub-filter. + + When `null` or an empty object is passed, matches all documents. + """ + any_satisfy: PlayerFilterInput + + """ + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerListFilterInput +} + +type PlayerSeason { + awards( + """ + Used to forward-paginate through the `awards`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `awards`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used in conjunction with the `after` argument to forward-paginate through the `awards`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `awards`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `awards`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `awards`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): StringConnection + games_played: Int + year: Int +} + +""" +Type used to perform aggregation computations on `PlayerSeason` fields. +""" +type PlayerSeasonAggregatedValues { + """ + Computed aggregate values for the `awards` field. + """ + awards: NonNumericAggregatedValues + + """ + Computed aggregate values for the `games_played` field. + """ + games_played: IntAggregatedValues + + """ + Computed aggregate values for the `year` field. + """ + year: IntAggregatedValues +} + +""" +Input type used to specify filters on a `PlayerSeason` object referenced directly +or transitively from a list field that has been configured to index each leaf field as +its own flattened list of values. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerSeasonFieldsListFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerSeasonFieldsListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerSeasonFieldsListFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerSeasonFieldsListFilterInput!] + + """ + Used to filter on the `awards` field. + + When `null` or an empty object is passed, matches all documents. + """ + awards: StringListFilterInput + + """ + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput + + """ + Used to filter on the `games_played` field. + + When `null` or an empty object is passed, matches all documents. + """ + games_played: IntListFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerSeasonFieldsListFilterInput + + """ + Used to filter on the `year` field. + + When `null` or an empty object is passed, matches all documents. + """ + year: IntListFilterInput +} + +""" +Input type used to specify filters on `PlayerSeason` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerSeasonFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerSeasonFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerSeasonFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerSeasonFilterInput!] + + """ + Used to filter on the `awards` field. + + When `null` or an empty object is passed, matches all documents. + """ + awards: StringListFilterInput + + """ + Used to filter on the `games_played` field. + + When `null` or an empty object is passed, matches all documents. + """ + games_played: IntFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerSeasonFilterInput + + """ + Used to filter on the `year` field. + + When `null` or an empty object is passed, matches all documents. + """ + year: IntFilterInput +} + +""" +Type used to specify the `PlayerSeason` fields to group by for aggregations. +""" +type PlayerSeasonGroupedBy { + """ + The `games_played` field value for this group. + """ + games_played: Int + + """ + The `year` field value for this group. + """ + year: Int +} + +""" +Type used to request desired `PlayerSeason` search highlight fields. +""" +type PlayerSeasonHighlights { + """ + Search highlights for the `awards`, providing snippets of the matching text. + """ + awards: [String!]! +} + +""" +Input type used to specify filters on `[PlayerSeason]` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerSeasonListFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerSeasonListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerSeasonListFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerSeasonListFilterInput!] + + """ + Matches records where any of the list elements match the provided sub-filter. + + When `null` or an empty object is passed, matches all documents. + """ + any_satisfy: PlayerSeasonFilterInput + + """ + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerSeasonListFilterInput +} + +type Position { + x: Float! + y: Float! +} + +""" +Type used to perform aggregation computations on `Position` fields. +""" +type PositionAggregatedValues { + """ + Computed aggregate values for the `x` field. + """ + x: FloatAggregatedValues + + """ + Computed aggregate values for the `y` field. + """ + y: FloatAggregatedValues +} + +""" +Input type used to specify filters on `Position` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PositionFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PositionFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PositionFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PositionFilterInput!] + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PositionFilterInput + + """ + Used to filter on the `x` field. + + When `null` or an empty object is passed, matches all documents. + """ + x: FloatFilterInput + + """ + Used to filter on the `y` field. + + When `null` or an empty object is passed, matches all documents. + """ + y: FloatFilterInput +} + +""" +Type used to specify the `Position` fields to group by for aggregations. +""" +type PositionGroupedBy { + """ + The `x` field value for this group. + """ + x: Float + + """ + The `y` field value for this group. + """ + y: Float +} + +""" +The query entry point for the entire schema. +""" +type Query { + """ + Aggregations over the `addresses` data: + + > Fetches `Address`s based on the provided arguments. + """ + address_aggregations( + """ + Used to forward-paginate through the `address_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `address_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Address` documents that get aggregated over based on the provided criteria. + """ + filter: AddressFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `address_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `address_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `address_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `address_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): AddressAggregationConnection + + """ + Fetches `Address`s based on the provided arguments. + """ + addresses( + """ + Used to forward-paginate through the `addresses`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `addresses`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ Used to filter the returned `addresses` based on the provided criteria. """ - filter: AddressFilterInput + filter: AddressFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `addresses`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `addresses`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `addresses`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `addresses`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `addresses` should be sorted. + """ + order_by: [AddressSortOrderInput!] + ): AddressConnection + + """ + Aggregations over the `components` data: + + > Fetches `Component`s based on the provided arguments. + """ + component_aggregations( + """ + Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Component` documents that get aggregated over based on the provided criteria. + """ + filter: ComponentFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ComponentAggregationConnection + + """ + Fetches `Component`s based on the provided arguments. + """ + components( + """ + Used to forward-paginate through the `components`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `components`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `components` based on the provided criteria. + """ + filter: ComponentFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `components`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `components`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `components`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `components` should be sorted. + """ + order_by: [ComponentSortOrderInput!] + ): ComponentConnection + + """ + Aggregations over the `distribution_channels` data: + + > Fetches `DistributionChannel`s based on the provided arguments. + """ + distribution_channel_aggregations( + """ + Used to forward-paginate through the `distribution_channel_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `distribution_channel_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `DistributionChannel` documents that get aggregated over based on the provided criteria. + """ + filter: DistributionChannelFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `distribution_channel_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `distribution_channel_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `distribution_channel_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `distribution_channel_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): DistributionChannelAggregationConnection + + """ + Fetches `DistributionChannel`s based on the provided arguments. + """ + distribution_channels( + """ + Used to forward-paginate through the `distribution_channels`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `distribution_channels`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `distribution_channels` based on the provided criteria. + """ + filter: DistributionChannelFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `distribution_channels`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `distribution_channels`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `distribution_channels`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `distribution_channels`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `distribution_channels` should be sorted. + """ + order_by: [DistributionChannelSortOrderInput!] + ): DistributionChannelConnection + + """ + Aggregations over the `electrical_parts` data: + + > Fetches `ElectricalPart`s based on the provided arguments. + """ + electrical_part_aggregations( + """ + Used to forward-paginate through the `electrical_part_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `electrical_part_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `ElectricalPart` documents that get aggregated over based on the provided criteria. + """ + filter: ElectricalPartFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `electrical_part_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `electrical_part_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `electrical_part_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `electrical_part_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ElectricalPartAggregationConnection + + """ + Fetches `ElectricalPart`s based on the provided arguments. + """ + electrical_parts( + """ + Used to forward-paginate through the `electrical_parts`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `electrical_parts`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `electrical_parts` based on the provided criteria. + """ + filter: ElectricalPartFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `electrical_parts`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `electrical_parts`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `electrical_parts`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `electrical_parts`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `electrical_parts` should be sorted. + """ + order_by: [ElectricalPartSortOrderInput!] + ): ElectricalPartConnection + + """ + Aggregations over the `inventors` data: + + > Fetches `Inventor`s based on the provided arguments. + """ + inventor_aggregations( + """ + Used to forward-paginate through the `inventor_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `inventor_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Inventor` documents that get aggregated over based on the provided criteria. + """ + filter: InventorFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `inventor_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `inventor_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `inventor_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `inventor_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): InventorAggregationConnection + + """ + Fetches `Inventor`s based on the provided arguments. + """ + inventors( + """ + Used to forward-paginate through the `inventors`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `inventors`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `inventors` based on the provided criteria. + """ + filter: InventorFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `inventors`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `inventors`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `inventors`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `inventors`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `inventors` should be sorted. + """ + order_by: [InventorSortOrderInput!] + ): InventorConnection + + """ + Aggregations over the `manufacturers` data: + + > Fetches `Manufacturer`s based on the provided arguments. + """ + manufacturer_aggregations( + """ + Used to forward-paginate through the `manufacturer_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `manufacturer_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Manufacturer` documents that get aggregated over based on the provided criteria. + """ + filter: ManufacturerFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `manufacturer_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `manufacturer_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `manufacturer_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `manufacturer_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ManufacturerAggregationConnection + + """ + Fetches `Manufacturer`s based on the provided arguments. + """ + manufacturers( + """ + Used to forward-paginate through the `manufacturers`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `manufacturers`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `manufacturers` based on the provided criteria. + """ + filter: ManufacturerFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `manufacturers`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `manufacturers`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `manufacturers`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `manufacturers`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `manufacturers` should be sorted. + """ + order_by: [ManufacturerSortOrderInput!] + ): ManufacturerConnection + + """ + Aggregations over the `mechanical_parts` data: + + > Fetches `MechanicalPart`s based on the provided arguments. + """ + mechanical_part_aggregations( + """ + Used to forward-paginate through the `mechanical_part_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `mechanical_part_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `MechanicalPart` documents that get aggregated over based on the provided criteria. + """ + filter: MechanicalPartFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `mechanical_part_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `mechanical_part_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `mechanical_part_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `mechanical_part_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): MechanicalPartAggregationConnection + + """ + Fetches `MechanicalPart`s based on the provided arguments. + """ + mechanical_parts( + """ + Used to forward-paginate through the `mechanical_parts`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `mechanical_parts`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `mechanical_parts` based on the provided criteria. + """ + filter: MechanicalPartFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `mechanical_parts`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `mechanical_parts`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `mechanical_parts`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `mechanical_parts`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `mechanical_parts` should be sorted. + """ + order_by: [MechanicalPartSortOrderInput!] + ): MechanicalPartConnection + + """ + Fetches `NamedEntity`s based on the provided arguments. + """ + named_entities( + """ + Used to forward-paginate through the `named_entities`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `named_entities`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `named_entities` based on the provided criteria. + """ + filter: NamedEntityFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `named_entities`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `named_entities`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `named_entities`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `named_entities`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `named_entities` should be sorted. + """ + order_by: [NamedEntitySortOrderInput!] + ): NamedEntityConnection + + """ + Aggregations over the `named_entities` data: + + > Fetches `NamedEntity`s based on the provided arguments. + """ + named_entity_aggregations( + """ + Used to forward-paginate through the `named_entity_aggregations`. When provided, the next page after the + provided cursor will be returned. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ - Used in conjunction with the `after` argument to forward-paginate through the `addresses`. + after: Cursor + + """ + Used to backward-paginate through the `named_entity_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `NamedEntity` documents that get aggregated over based on the provided criteria. + """ + filter: NamedEntityFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `named_entity_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `addresses`, if no `after` cursor is provided). + `after` cursor (or from the start of the `named_entity_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9128,27 +10303,72 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `addresses`. + Used in conjunction with the `before` argument to backward-paginate through the `named_entity_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `addresses`, if no `before` cursor is provided). + `before` cursor (or from the end of the `named_entity_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int + ): NamedEntityAggregationConnection + + """ + Aggregations over the `named_inventors` data: + > Fetches `NamedInventor`s based on the provided arguments. + """ + named_inventor_aggregations( """ - Used to specify how the returned `addresses` should be sorted. + Used to forward-paginate through the `named_inventor_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ - order_by: [AddressSortOrderInput!] - ): AddressConnection + after: Cursor + + """ + Used to backward-paginate through the `named_inventor_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `NamedInventor` documents that get aggregated over based on the provided criteria. + """ + filter: NamedInventorFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `named_inventor_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `named_inventor_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `named_inventor_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `named_inventor_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): NamedInventorAggregationConnection """ - Fetches `Company`s based on the provided arguments. + Fetches `NamedInventor`s based on the provided arguments. """ - companies( + named_inventors( """ - Used to forward-paginate through the `companies`. When provided, the next page after the + Used to forward-paginate through the `named_inventors`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9157,7 +10377,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `companies`. When provided, the previous page before the + Used to backward-paginate through the `named_inventors`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9166,14 +10386,14 @@ type Query { before: Cursor """ - Used to filter the returned `companies` based on the provided criteria. + Used to filter the returned `named_inventors` based on the provided criteria. """ - filter: CompanyFilterInput + filter: NamedInventorFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `companies`. + Used in conjunction with the `after` argument to forward-paginate through the `named_inventors`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `companies`, if no `after` cursor is provided). + `after` cursor (or from the start of the `named_inventors`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9181,9 +10401,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `companies`. + Used in conjunction with the `before` argument to backward-paginate through the `named_inventors`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `companies`, if no `before` cursor is provided). + `before` cursor (or from the end of the `named_inventors`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9191,19 +10411,19 @@ type Query { last: Int """ - Used to specify how the returned `companies` should be sorted. + Used to specify how the returned `named_inventors` should be sorted. """ - order_by: [CompanySortOrderInput!] - ): CompanyConnection + order_by: [NamedInventorSortOrderInput!] + ): NamedInventorConnection """ - Aggregations over the `companies` data: + Aggregations over the `parts` data: - > Fetches `Company`s based on the provided arguments. + > Fetches `Part`s based on the provided arguments. """ - company_aggregations( + part_aggregations( """ - Used to forward-paginate through the `company_aggregations`. When provided, the next page after the + Used to forward-paginate through the `part_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9212,7 +10432,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `company_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `part_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9221,14 +10441,14 @@ type Query { before: Cursor """ - Used to filter the `Company` documents that get aggregated over based on the provided criteria. + Used to filter the `Part` documents that get aggregated over based on the provided criteria. """ - filter: CompanyFilterInput + filter: PartFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `company_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `part_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `company_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `part_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9236,24 +10456,77 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `company_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `part_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `company_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `part_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): CompanyAggregationConnection + ): PartAggregationConnection """ - Aggregations over the `components` data: + Fetches `Part`s based on the provided arguments. + """ + parts( + """ + Used to forward-paginate through the `parts`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `parts`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `parts` based on the provided criteria. + """ + filter: PartFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `parts`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `parts`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `parts`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `parts`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `parts` should be sorted. + """ + order_by: [PartSortOrderInput!] + ): PartConnection - > Fetches `Component`s based on the provided arguments. """ - component_aggregations( + Aggregations over the `physical_stores` data: + + > Fetches `PhysicalStore`s based on the provided arguments. + """ + physical_store_aggregations( """ - Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + Used to forward-paginate through the `physical_store_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9262,7 +10535,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `physical_store_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9271,14 +10544,14 @@ type Query { before: Cursor """ - Used to filter the `Component` documents that get aggregated over based on the provided criteria. + Used to filter the `PhysicalStore` documents that get aggregated over based on the provided criteria. """ - filter: ComponentFilterInput + filter: PhysicalStoreFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `physical_store_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `physical_store_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9286,22 +10559,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `physical_store_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `physical_store_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): ComponentAggregationConnection + ): PhysicalStoreAggregationConnection """ - Fetches `Component`s based on the provided arguments. + Fetches `PhysicalStore`s based on the provided arguments. """ - components( + physical_stores( """ - Used to forward-paginate through the `components`. When provided, the next page after the + Used to forward-paginate through the `physical_stores`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9310,7 +10583,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `components`. When provided, the previous page before the + Used to backward-paginate through the `physical_stores`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9319,14 +10592,14 @@ type Query { before: Cursor """ - Used to filter the returned `components` based on the provided criteria. + Used to filter the returned `physical_stores` based on the provided criteria. """ - filter: ComponentFilterInput + filter: PhysicalStoreFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `components`. + Used in conjunction with the `after` argument to forward-paginate through the `physical_stores`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `components`, if no `after` cursor is provided). + `after` cursor (or from the start of the `physical_stores`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9334,9 +10607,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `components`. + Used in conjunction with the `before` argument to backward-paginate through the `physical_stores`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + `before` cursor (or from the end of the `physical_stores`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9344,19 +10617,19 @@ type Query { last: Int """ - Used to specify how the returned `components` should be sorted. + Used to specify how the returned `physical_stores` should be sorted. """ - order_by: [ComponentSortOrderInput!] - ): ComponentConnection + order_by: [PhysicalStoreSortOrderInput!] + ): PhysicalStoreConnection """ - Aggregations over the `electrical_parts` data: + Aggregations over the `retailers` data: - > Fetches `ElectricalPart`s based on the provided arguments. + > Fetches `Retail`s based on the provided arguments. """ - electrical_part_aggregations( + retail_aggregations( """ - Used to forward-paginate through the `electrical_part_aggregations`. When provided, the next page after the + Used to forward-paginate through the `retail_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9365,7 +10638,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `electrical_part_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `retail_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9374,14 +10647,14 @@ type Query { before: Cursor """ - Used to filter the `ElectricalPart` documents that get aggregated over based on the provided criteria. + Used to filter the `Retail` documents that get aggregated over based on the provided criteria. """ - filter: ElectricalPartFilterInput + filter: RetailFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `electrical_part_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `retail_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `electrical_part_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `retail_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9389,22 +10662,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `electrical_part_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `retail_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `electrical_part_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `retail_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): ElectricalPartAggregationConnection + ): RetailAggregationConnection """ - Fetches `ElectricalPart`s based on the provided arguments. + Fetches `Retail`s based on the provided arguments. """ - electrical_parts( + retailers( """ - Used to forward-paginate through the `electrical_parts`. When provided, the next page after the + Used to forward-paginate through the `retailers`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9413,7 +10686,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `electrical_parts`. When provided, the previous page before the + Used to backward-paginate through the `retailers`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9422,14 +10695,14 @@ type Query { before: Cursor """ - Used to filter the returned `electrical_parts` based on the provided criteria. + Used to filter the returned `retailers` based on the provided criteria. """ - filter: ElectricalPartFilterInput + filter: RetailFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `electrical_parts`. + Used in conjunction with the `after` argument to forward-paginate through the `retailers`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `electrical_parts`, if no `after` cursor is provided). + `after` cursor (or from the start of the `retailers`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9437,29 +10710,77 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `electrical_parts`. + Used in conjunction with the `before` argument to backward-paginate through the `retailers`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `retailers`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `retailers` should be sorted. + """ + order_by: [RetailSortOrderInput!] + ): RetailConnection + + """ + Aggregations over the `sponsors` data: + + > Fetches `Sponsor`s based on the provided arguments. + """ + sponsor_aggregations( + """ + Used to forward-paginate through the `sponsor_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `sponsor_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Sponsor` documents that get aggregated over based on the provided criteria. + """ + filter: SponsorFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `sponsor_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `sponsor_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `sponsor_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `electrical_parts`, if no `before` cursor is provided). + `before` cursor (or from the end of the `sponsor_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `electrical_parts` should be sorted. - """ - order_by: [ElectricalPartSortOrderInput!] - ): ElectricalPartConnection + ): SponsorAggregationConnection """ - Aggregations over the `inventors` data: - - > Fetches `Inventor`s based on the provided arguments. + Fetches `Sponsor`s based on the provided arguments. """ - inventor_aggregations( + sponsors( """ - Used to forward-paginate through the `inventor_aggregations`. When provided, the next page after the + Used to forward-paginate through the `sponsors`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9468,7 +10789,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `inventor_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `sponsors`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9477,14 +10798,14 @@ type Query { before: Cursor """ - Used to filter the `Inventor` documents that get aggregated over based on the provided criteria. + Used to filter the returned `sponsors` based on the provided criteria. """ - filter: InventorFilterInput + filter: SponsorFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `inventor_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `sponsors`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `inventor_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `sponsors`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9492,22 +10813,29 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `inventor_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `sponsors`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `inventor_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `sponsors`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): InventorAggregationConnection + + """ + Used to specify how the returned `sponsors` should be sorted. + """ + order_by: [SponsorSortOrderInput!] + ): SponsorConnection """ - Fetches `Inventor`s based on the provided arguments. + Aggregations over the `stores` data: + + > Fetches `Store`s based on the provided arguments. """ - inventors( + store_aggregations( """ - Used to forward-paginate through the `inventors`. When provided, the next page after the + Used to forward-paginate through the `store_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9516,7 +10844,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `inventors`. When provided, the previous page before the + Used to backward-paginate through the `store_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9525,14 +10853,14 @@ type Query { before: Cursor """ - Used to filter the returned `inventors` based on the provided criteria. + Used to filter the `Store` documents that get aggregated over based on the provided criteria. """ - filter: InventorFilterInput + filter: StoreFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `inventors`. + Used in conjunction with the `after` argument to forward-paginate through the `store_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `inventors`, if no `after` cursor is provided). + `after` cursor (or from the start of the `store_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9540,29 +10868,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `inventors`. + Used in conjunction with the `before` argument to backward-paginate through the `store_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `inventors`, if no `before` cursor is provided). + `before` cursor (or from the end of the `store_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `inventors` should be sorted. - """ - order_by: [InventorSortOrderInput!] - ): InventorConnection + ): StoreAggregationConnection """ - Aggregations over the `manufacturers` data: - - > Fetches `Manufacturer`s based on the provided arguments. + Fetches `Store`s based on the provided arguments. """ - manufacturer_aggregations( + stores( """ - Used to forward-paginate through the `manufacturer_aggregations`. When provided, the next page after the + Used to forward-paginate through the `stores`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9571,7 +10892,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `manufacturer_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `stores`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9580,14 +10901,14 @@ type Query { before: Cursor """ - Used to filter the `Manufacturer` documents that get aggregated over based on the provided criteria. + Used to filter the returned `stores` based on the provided criteria. """ - filter: ManufacturerFilterInput + filter: StoreFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `manufacturer_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `stores`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `manufacturer_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `stores`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9595,22 +10916,29 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `manufacturer_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `stores`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `manufacturer_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `stores`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): ManufacturerAggregationConnection + + """ + Used to specify how the returned `stores` should be sorted. + """ + order_by: [StoreSortOrderInput!] + ): StoreConnection """ - Fetches `Manufacturer`s based on the provided arguments. + Aggregations over the `teams` data: + + > Fetches `Team`s based on the provided arguments. """ - manufacturers( + team_aggregations( """ - Used to forward-paginate through the `manufacturers`. When provided, the next page after the + Used to forward-paginate through the `team_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9619,7 +10947,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `manufacturers`. When provided, the previous page before the + Used to backward-paginate through the `team_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9628,14 +10956,14 @@ type Query { before: Cursor """ - Used to filter the returned `manufacturers` based on the provided criteria. + Used to filter the `Team` documents that get aggregated over based on the provided criteria. """ - filter: ManufacturerFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `manufacturers`. + Used in conjunction with the `after` argument to forward-paginate through the `team_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `manufacturers`, if no `after` cursor is provided). + `after` cursor (or from the start of the `team_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9643,29 +10971,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `manufacturers`. + Used in conjunction with the `before` argument to backward-paginate through the `team_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `manufacturers`, if no `before` cursor is provided). + `before` cursor (or from the end of the `team_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `manufacturers` should be sorted. - """ - order_by: [ManufacturerSortOrderInput!] - ): ManufacturerConnection + ): TeamAggregationConnection """ - Aggregations over the `mechanical_parts` data: - - > Fetches `MechanicalPart`s based on the provided arguments. + Fetches `Team`s based on the provided arguments. """ - mechanical_part_aggregations( + teams( """ - Used to forward-paginate through the `mechanical_part_aggregations`. When provided, the next page after the + Used to forward-paginate through the `teams`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9674,7 +10995,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `mechanical_part_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `teams`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9683,14 +11004,14 @@ type Query { before: Cursor """ - Used to filter the `MechanicalPart` documents that get aggregated over based on the provided criteria. + Used to filter the returned `teams` based on the provided criteria. """ - filter: MechanicalPartFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `mechanical_part_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `teams`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `mechanical_part_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `teams`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9698,22 +11019,34 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `mechanical_part_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `teams`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `mechanical_part_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `teams`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): MechanicalPartAggregationConnection + + """ + Used to specify how the returned `teams` should be sorted. + """ + order_by: [TeamSortOrderInput!] + ): TeamConnection """ - Fetches `MechanicalPart`s based on the provided arguments. + Aggregations over the `widgets` data: + + > Fetches `Widget`s based on the provided arguments. + + Note: aggregation queries are relatively expensive, and some fields have been pre-aggregated to allow + more efficient queries for some common aggregation cases: + + - The root `widget_currencies` field groups by `cost.currency` """ - mechanical_parts( + widget_aggregations( """ - Used to forward-paginate through the `mechanical_parts`. When provided, the next page after the + Used to forward-paginate through the `widget_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9722,7 +11055,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `mechanical_parts`. When provided, the previous page before the + Used to backward-paginate through the `widget_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9731,14 +11064,14 @@ type Query { before: Cursor """ - Used to filter the returned `mechanical_parts` based on the provided criteria. + Used to filter the `Widget` documents that get aggregated over based on the provided criteria. """ - filter: MechanicalPartFilterInput + filter: WidgetFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `mechanical_parts`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `mechanical_parts`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9746,27 +11079,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `mechanical_parts`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `mechanical_parts`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `mechanical_parts` should be sorted. - """ - order_by: [MechanicalPartSortOrderInput!] - ): MechanicalPartConnection + ): WidgetAggregationConnection """ - Fetches `NamedEntity`s based on the provided arguments. + Fetches `WidgetCurrency`s based on the provided arguments. """ - named_entities( + widget_currencies( """ - Used to forward-paginate through the `named_entities`. When provided, the next page after the + Used to forward-paginate through the `widget_currencies`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9775,7 +11103,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `named_entities`. When provided, the previous page before the + Used to backward-paginate through the `widget_currencies`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9784,14 +11112,14 @@ type Query { before: Cursor """ - Used to filter the returned `named_entities` based on the provided criteria. + Used to filter the returned `widget_currencies` based on the provided criteria. """ - filter: NamedEntityFilterInput + filter: WidgetCurrencyFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `named_entities`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_currencies`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `named_entities`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_currencies`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9799,9 +11127,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `named_entities`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_currencies`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `named_entities`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_currencies`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9809,19 +11137,19 @@ type Query { last: Int """ - Used to specify how the returned `named_entities` should be sorted. + Used to specify how the returned `widget_currencies` should be sorted. """ - order_by: [NamedEntitySortOrderInput!] - ): NamedEntityConnection + order_by: [WidgetCurrencySortOrderInput!] + ): WidgetCurrencyConnection """ - Aggregations over the `named_entities` data: + Aggregations over the `widget_currencies` data: - > Fetches `NamedEntity`s based on the provided arguments. + > Fetches `WidgetCurrency`s based on the provided arguments. """ - named_entity_aggregations( + widget_currency_aggregations( """ - Used to forward-paginate through the `named_entity_aggregations`. When provided, the next page after the + Used to forward-paginate through the `widget_currency_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9830,7 +11158,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `named_entity_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `widget_currency_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9839,14 +11167,14 @@ type Query { before: Cursor """ - Used to filter the `NamedEntity` documents that get aggregated over based on the provided criteria. + Used to filter the `WidgetCurrency` documents that get aggregated over based on the provided criteria. """ - filter: NamedEntityFilterInput + filter: WidgetCurrencyFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `named_entity_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_currency_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `named_entity_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_currency_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9854,24 +11182,24 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `named_entity_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_currency_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `named_entity_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_currency_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): NamedEntityAggregationConnection + ): WidgetCurrencyAggregationConnection """ - Aggregations over the `named_inventors` data: + Aggregations over the `widgets_or_addresses` data: - > Fetches `NamedInventor`s based on the provided arguments. + > Fetches `WidgetOrAddress`s based on the provided arguments. """ - named_inventor_aggregations( + widget_or_address_aggregations( """ - Used to forward-paginate through the `named_inventor_aggregations`. When provided, the next page after the + Used to forward-paginate through the `widget_or_address_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9880,7 +11208,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `named_inventor_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `widget_or_address_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9889,14 +11217,14 @@ type Query { before: Cursor """ - Used to filter the `NamedInventor` documents that get aggregated over based on the provided criteria. + Used to filter the `WidgetOrAddress` documents that get aggregated over based on the provided criteria. """ - filter: NamedInventorFilterInput + filter: WidgetOrAddressFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `named_inventor_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_or_address_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `named_inventor_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_or_address_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9904,22 +11232,24 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `named_inventor_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_or_address_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `named_inventor_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_or_address_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): NamedInventorAggregationConnection + ): WidgetOrAddressAggregationConnection """ - Fetches `NamedInventor`s based on the provided arguments. + Aggregations over the `widget_workspaces` data: + + > Fetches `WidgetWorkspace`s based on the provided arguments. """ - named_inventors( + widget_workspace_aggregations( """ - Used to forward-paginate through the `named_inventors`. When provided, the next page after the + Used to forward-paginate through the `widget_workspace_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9928,7 +11258,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `named_inventors`. When provided, the previous page before the + Used to backward-paginate through the `widget_workspace_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9937,14 +11267,14 @@ type Query { before: Cursor """ - Used to filter the returned `named_inventors` based on the provided criteria. + Used to filter the `WidgetWorkspace` documents that get aggregated over based on the provided criteria. """ - filter: NamedInventorFilterInput + filter: WidgetWorkspaceFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `named_inventors`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_workspace_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `named_inventors`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_workspace_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9952,29 +11282,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `named_inventors`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_workspace_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `named_inventors`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_workspace_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `named_inventors` should be sorted. - """ - order_by: [NamedInventorSortOrderInput!] - ): NamedInventorConnection + ): WidgetWorkspaceAggregationConnection """ - Aggregations over the `parts` data: - - > Fetches `Part`s based on the provided arguments. + Fetches `WidgetWorkspace`s based on the provided arguments. """ - part_aggregations( + widget_workspaces( """ - Used to forward-paginate through the `part_aggregations`. When provided, the next page after the + Used to forward-paginate through the `widget_workspaces`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9983,7 +11306,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `part_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `widget_workspaces`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9992,14 +11315,14 @@ type Query { before: Cursor """ - Used to filter the `Part` documents that get aggregated over based on the provided criteria. + Used to filter the returned `widget_workspaces` based on the provided criteria. """ - filter: PartFilterInput + filter: WidgetWorkspaceFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `part_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_workspaces`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `part_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_workspaces`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10007,22 +11330,27 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `part_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_workspaces`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `part_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_workspaces`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): PartAggregationConnection + + """ + Used to specify how the returned `widget_workspaces` should be sorted. + """ + order_by: [WidgetWorkspaceSortOrderInput!] + ): WidgetWorkspaceConnection """ - Fetches `Part`s based on the provided arguments. + Fetches `Widget`s based on the provided arguments. """ - parts( + widgets( """ - Used to forward-paginate through the `parts`. When provided, the next page after the + Used to forward-paginate through the `widgets`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10031,7 +11359,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `parts`. When provided, the previous page before the + Used to backward-paginate through the `widgets`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10040,14 +11368,14 @@ type Query { before: Cursor """ - Used to filter the returned `parts` based on the provided criteria. + Used to filter the returned `widgets` based on the provided criteria. """ - filter: PartFilterInput + filter: WidgetFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `parts`. + Used in conjunction with the `after` argument to forward-paginate through the `widgets`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `parts`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widgets`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10055,9 +11383,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `parts`. + Used in conjunction with the `before` argument to backward-paginate through the `widgets`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `parts`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widgets`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10065,17 +11393,17 @@ type Query { last: Int """ - Used to specify how the returned `parts` should be sorted. + Used to specify how the returned `widgets` should be sorted. """ - order_by: [PartSortOrderInput!] - ): PartConnection + order_by: [WidgetSortOrderInput!] + ): WidgetConnection """ - Fetches `Person`s based on the provided arguments. + Fetches `WidgetOrAddress`s based on the provided arguments. """ - people( + widgets_or_addresses( """ - Used to forward-paginate through the `people`. When provided, the next page after the + Used to forward-paginate through the `widgets_or_addresses`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10084,7 +11412,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `people`. When provided, the previous page before the + Used to backward-paginate through the `widgets_or_addresses`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10093,14 +11421,14 @@ type Query { before: Cursor """ - Used to filter the returned `people` based on the provided criteria. + Used to filter the returned `widgets_or_addresses` based on the provided criteria. """ - filter: PersonFilterInput + filter: WidgetOrAddressFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `people`. + Used in conjunction with the `after` argument to forward-paginate through the `widgets_or_addresses`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `people`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widgets_or_addresses`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10108,393 +11436,649 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `people`. + Used in conjunction with the `before` argument to backward-paginate through the `widgets_or_addresses`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `people`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widgets_or_addresses`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `widgets_or_addresses` should be sorted. + """ + order_by: [WidgetOrAddressSortOrderInput!] + ): WidgetOrAddressConnection +} + +interface Retail implements DistributionChannel { + active: Boolean + established_on: Date + id: ID! +} + +""" +Type used to perform aggregation computations on `Retail` fields. +""" +type RetailAggregatedValues { + """ + Computed aggregate values for the `active` field. + """ + active: NonNumericAggregatedValues + + """ + Computed aggregate values for the `address` field. + """ + address: NonNumericAggregatedValues + + """ + Computed aggregate values for the `current_location` field. + """ + current_location: NonNumericAggregatedValues + + """ + Computed aggregate values for the `customer_facing` field. + """ + customer_facing: NonNumericAggregatedValues + + """ + Computed aggregate values for the `established_on` field. + """ + established_on: DateAggregatedValues + + """ + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues + + """ + Computed aggregate values for the `platform` field. + """ + platform: NonNumericAggregatedValues + + """ + Computed aggregate values for the `square_footage` field. + """ + square_footage: IntAggregatedValues + + """ + Computed aggregate values for the `url` field. + """ + url: NonNumericAggregatedValues + + """ + Computed aggregate values for the `vehicle_type` field. + """ + vehicle_type: NonNumericAggregatedValues +} + +""" +Return type representing a bucket of `Retail` documents for an aggregations query. +""" +type RetailAggregation { + """ + Provides computed aggregated values over all `Retail` documents in an aggregation bucket. + """ + aggregated_values: RetailAggregatedValues + + """ + The count of `Retail` documents in an aggregation bucket. + """ + count: JsonSafeLong! + + """ + Used to specify the `Retail` fields to group by. The returned values identify each aggregation bucket. + """ + grouped_by: RetailGroupedBy +} + +""" +Represents a paginated collection of `RetailAggregation` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type RetailAggregationConnection { + """ + Wraps a specific `RetailAggregation` to pair it with its pagination cursor. + """ + edges: [RetailAggregationEdge!]! + + """ + The list of `RetailAggregation` results. + """ + nodes: [RetailAggregation!]! + + """ + Provides pagination-related information. + """ + page_info: PageInfo! +} + +""" +Represents a specific `RetailAggregation` in the context of a `RetailAggregationConnection`, +providing access to both the `RetailAggregation` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type RetailAggregationEdge { + """ + The `Cursor` of this `RetailAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `RetailAggregation`. + """ + cursor: Cursor + + """ + The `RetailAggregation` of this edge. + """ + node: RetailAggregation +} + +""" +Represents a paginated collection of `Retail` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type RetailConnection { + """ + Wraps a specific `Retail` to pair it with its pagination cursor. + """ + edges: [RetailEdge!]! + + """ + The list of `Retail` results. + """ + nodes: [Retail!]! + + """ + Provides pagination-related information. + """ + page_info: PageInfo! + + """ + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! +} + +""" +Represents a specific `Retail` in the context of a `RetailConnection`, +providing access to both the `Retail` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type RetailEdge { + """ + All search highlights for this `Retail`, indicating where in the indexed document the query matched. + """ + all_highlights: [SearchHighlight!]! + + """ + The `Cursor` of this `Retail`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Retail`. + """ + cursor: Cursor + + """ + Specific search highlights for this `Retail`, providing matching snippets for the requested fields. + """ + highlights: RetailHighlights + + """ + The `Retail` of this edge. + """ + node: Retail +} + +""" +Input type used to specify filters on `Retail` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input RetailFilterInput { + """ + Used to filter on the `active` field. + + When `null` or an empty object is passed, matches all documents. + """ + active: BooleanFilterInput + + """ + Used to filter on the `address` field. + + When `null` or an empty object is passed, matches all documents. + """ + address: StringFilterInput + + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `RetailFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [RetailFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [RetailFilterInput!] + + """ + Used to filter on the `current_location` field. + + When `null` or an empty object is passed, matches all documents. + """ + current_location: StringFilterInput + + """ + Used to filter on the `customer_facing` field. + + When `null` or an empty object is passed, matches all documents. + """ + customer_facing: BooleanFilterInput + + """ + Used to filter on the `established_on` field. + + When `null` or an empty object is passed, matches all documents. + """ + established_on: DateFilterInput - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Used to filter on the `id` field. - """ - Used to specify how the returned `people` should be sorted. - """ - order_by: [PersonSortOrderInput!] - ): PersonConnection + When `null` or an empty object is passed, matches all documents. + """ + id: IDFilterInput """ - Aggregations over the `people` data: + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - > Fetches `Person`s based on the provided arguments. + When `null` or an empty object is passed, matches no documents. """ - person_aggregations( - """ - Used to forward-paginate through the `person_aggregations`. When provided, the next page after the - provided cursor will be returned. + not: RetailFilterInput - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Used to filter on the `platform` field. - """ - Used to backward-paginate through the `person_aggregations`. When provided, the previous page before the - provided cursor will be returned. + When `null` or an empty object is passed, matches all documents. + """ + platform: StringFilterInput - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Used to filter on the `square_footage` field. - """ - Used to filter the `Person` documents that get aggregated over based on the provided criteria. - """ - filter: PersonFilterInput + When `null` or an empty object is passed, matches all documents. + """ + square_footage: IntFilterInput - """ - Used in conjunction with the `after` argument to forward-paginate through the `person_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `person_aggregations`, if no `after` cursor is provided). + """ + Used to filter on the `url` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + When `null` or an empty object is passed, matches all documents. + """ + url: StringFilterInput - """ - Used in conjunction with the `before` argument to backward-paginate through the `person_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `person_aggregations`, if no `before` cursor is provided). + """ + Used to filter on the `vehicle_type` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): PersonAggregationConnection + When `null` or an empty object is passed, matches all documents. + """ + vehicle_type: StringFilterInput +} +""" +Type used to specify the `Retail` fields to group by for aggregations. +""" +type RetailGroupedBy { """ - Aggregations over the `sponsors` data: + The `active` field value for this group. + """ + active: Boolean - > Fetches `Sponsor`s based on the provided arguments. """ - sponsor_aggregations( - """ - Used to forward-paginate through the `sponsor_aggregations`. When provided, the next page after the - provided cursor will be returned. + The `address` field value for this group. + """ + address: String - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + The `current_location` field value for this group. + """ + current_location: String - """ - Used to backward-paginate through the `sponsor_aggregations`. When provided, the previous page before the - provided cursor will be returned. + """ + The `customer_facing` field value for this group. + """ + customer_facing: Boolean - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Offers the different grouping options for the `established_on` value within this group. + """ + established_on: DateGroupedBy - """ - Used to filter the `Sponsor` documents that get aggregated over based on the provided criteria. - """ - filter: SponsorFilterInput + """ + The `platform` field value for this group. + """ + platform: String - """ - Used in conjunction with the `after` argument to forward-paginate through the `sponsor_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `sponsor_aggregations`, if no `after` cursor is provided). + """ + The `square_footage` field value for this group. + """ + square_footage: Int - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + The `url` field value for this group. + """ + url: String - """ - Used in conjunction with the `before` argument to backward-paginate through the `sponsor_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `sponsor_aggregations`, if no `before` cursor is provided). + """ + The `vehicle_type` field value for this group. + """ + vehicle_type: String +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): SponsorAggregationConnection +""" +Type used to request desired `Retail` search highlight fields. +""" +type RetailHighlights { + """ + Search highlights for the `address`, providing snippets of the matching text. + """ + address: [String!]! """ - Fetches `Sponsor`s based on the provided arguments. + Search highlights for the `current_location`, providing snippets of the matching text. """ - sponsors( - """ - Used to forward-paginate through the `sponsors`. When provided, the next page after the - provided cursor will be returned. + current_location: [String!]! - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Search highlights for the `id`, providing snippets of the matching text. + """ + id: [String!]! - """ - Used to backward-paginate through the `sponsors`. When provided, the previous page before the - provided cursor will be returned. + """ + Search highlights for the `platform`, providing snippets of the matching text. + """ + platform: [String!]! - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Search highlights for the `url`, providing snippets of the matching text. + """ + url: [String!]! - """ - Used to filter the returned `sponsors` based on the provided criteria. - """ - filter: SponsorFilterInput + """ + Search highlights for the `vehicle_type`, providing snippets of the matching text. + """ + vehicle_type: [String!]! +} - """ - Used in conjunction with the `after` argument to forward-paginate through the `sponsors`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `sponsors`, if no `after` cursor is provided). +""" +Enumerates the ways `Retail`s can be sorted. +""" +enum RetailSortOrderInput { + """ + Sorts ascending by the `address` field. + """ + address_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Sorts descending by the `address` field. + """ + address_DESC - """ - Used in conjunction with the `before` argument to backward-paginate through the `sponsors`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `sponsors`, if no `before` cursor is provided). + """ + Sorts ascending by the `current_location` field. + """ + current_location_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Sorts descending by the `current_location` field. + """ + current_location_DESC - """ - Used to specify how the returned `sponsors` should be sorted. - """ - order_by: [SponsorSortOrderInput!] - ): SponsorConnection + """ + Sorts ascending by the `established_on` field. + """ + established_on_ASC """ - Aggregations over the `teams` data: + Sorts descending by the `established_on` field. + """ + established_on_DESC - > Fetches `Team`s based on the provided arguments. """ - team_aggregations( - """ - Used to forward-paginate through the `team_aggregations`. When provided, the next page after the - provided cursor will be returned. + Sorts ascending by the `id` field. + """ + id_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Sorts descending by the `id` field. + """ + id_DESC - """ - Used to backward-paginate through the `team_aggregations`. When provided, the previous page before the - provided cursor will be returned. + """ + Sorts ascending by the `platform` field. + """ + platform_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Sorts descending by the `platform` field. + """ + platform_DESC - """ - Used to filter the `Team` documents that get aggregated over based on the provided criteria. - """ - filter: TeamFilterInput + """ + Sorts ascending by the `square_footage` field. + """ + square_footage_ASC - """ - Used in conjunction with the `after` argument to forward-paginate through the `team_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `team_aggregations`, if no `after` cursor is provided). + """ + Sorts descending by the `square_footage` field. + """ + square_footage_DESC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Sorts ascending by the `url` field. + """ + url_ASC - """ - Used in conjunction with the `before` argument to backward-paginate through the `team_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `team_aggregations`, if no `before` cursor is provided). + """ + Sorts descending by the `url` field. + """ + url_DESC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): TeamAggregationConnection + """ + Sorts ascending by the `vehicle_type` field. + """ + vehicle_type_ASC """ - Fetches `Team`s based on the provided arguments. + Sorts descending by the `vehicle_type` field. """ - teams( - """ - Used to forward-paginate through the `teams`. When provided, the next page after the - provided cursor will be returned. + vehicle_type_DESC +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor +""" +Provides information about why a document matched a search via highlighted snippets. +""" +type SearchHighlight { + """ + Path to a leaf field containing one or more search highlight snippets. The returned list will contain a path segment for + each object layer of the schema, from the document root. + """ + path: [String!]! - """ - Used to backward-paginate through the `teams`. When provided, the previous page before the - provided cursor will be returned. + """ + List of snippets containing search highlights from field values at this `path`. + """ + snippets: [String!]! +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor +enum Size { + LARGE + MEDIUM + SMALL +} - """ - Used to filter the returned `teams` based on the provided criteria. - """ - filter: TeamFilterInput +""" +Input type used to specify filters on `Size` fields. - """ - Used in conjunction with the `after` argument to forward-paginate through the `teams`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `teams`, if no `after` cursor is provided). +Will match all documents if passed as an empty object (or as `null`). +""" +input SizeFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `SizeFilterInput` input because of collisions between + key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - """ - Used in conjunction with the `before` argument to backward-paginate through the `teams`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `teams`, if no `before` cursor is provided). + When `null` or an empty list is passed, matches all documents. + """ + all_of: [SizeFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - """ - Used to specify how the returned `teams` should be sorted. - """ - order_by: [TeamSortOrderInput!] - ): TeamConnection + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SizeFilterInput!] """ - Aggregations over the `widgets` data: + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. - > Fetches `Widget`s based on the provided arguments. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. + """ + equal_to_any_of: [SizeInput] - Note: aggregation queries are relatively expensive, and some fields have been pre-aggregated to allow - more efficient queries for some common aggregation cases: + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - - The root `widget_currencies` field groups by `cost.currency` + When `null` or an empty object is passed, matches no documents. """ - widget_aggregations( - """ - Used to forward-paginate through the `widget_aggregations`. When provided, the next page after the - provided cursor will be returned. + not: SizeFilterInput +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor +enum SizeInput { + LARGE + MEDIUM + SMALL +} - """ - Used to backward-paginate through the `widget_aggregations`. When provided, the previous page before the - provided cursor will be returned. +""" +Input type used to specify filters on elements of a `[Size]` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor +Will match all documents if passed as an empty object (or as `null`). +""" +input SizeListElementFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - """ - Used to filter the `Widget` documents that get aggregated over based on the provided criteria. - """ - filter: WidgetFilterInput + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `SizeListElementFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_aggregations`, if no `after` cursor is provided). + When `null` or an empty list is passed, matches all documents. + """ + all_of: [SizeListElementFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_aggregations`, if no `before` cursor is provided). + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SizeListElementFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): WidgetAggregationConnection + """ + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - Fetches `WidgetCurrency`s based on the provided arguments. + equal_to_any_of: [SizeInput!] +} + +""" +Input type used to specify filters on `[Size]` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input SizeListFilterInput { """ - widget_currencies( - """ - Used to forward-paginate through the `widget_currencies`. When provided, the next page after the - provided cursor will be returned. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `SizeListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - """ - Used to backward-paginate through the `widget_currencies`. When provided, the previous page before the - provided cursor will be returned. + When `null` or an empty list is passed, matches all documents. + """ + all_of: [SizeListFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - """ - Used to filter the returned `widget_currencies` based on the provided criteria. - """ - filter: WidgetCurrencyFilterInput + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SizeListFilterInput!] - """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_currencies`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_currencies`, if no `after` cursor is provided). + """ + Matches records where any of the list elements match the provided sub-filter. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + When `null` or an empty object is passed, matches all documents. + """ + any_satisfy: SizeListElementFilterInput - """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_currencies`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_currencies`, if no `before` cursor is provided). + """ + Used to filter on the number of non-null elements in this list field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput - """ - Used to specify how the returned `widget_currencies` should be sorted. - """ - order_by: [WidgetCurrencySortOrderInput!] - ): WidgetCurrencyConnection + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + When `null` or an empty object is passed, matches no documents. """ - Aggregations over the `widget_currencies` data: + not: SizeListFilterInput +} - > Fetches `WidgetCurrency`s based on the provided arguments. +type Sponsor { """ - widget_currency_aggregations( + Aggregations over the `affiliated_teams_from_nested` data. + """ + affiliated_team_from_nested_aggregations( """ - Used to forward-paginate through the `widget_currency_aggregations`. When provided, the next page after the + Used to forward-paginate through the `affiliated_team_from_nested_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10503,7 +12087,8 @@ type Query { after: Cursor """ - Used to backward-paginate through the `widget_currency_aggregations`. When provided, the previous page before the + Used to backward-paginate through the + `affiliated_team_from_nested_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10512,14 +12097,15 @@ type Query { before: Cursor """ - Used to filter the `WidgetCurrency` documents that get aggregated over based on the provided criteria. + Used to filter the `Team` documents that get aggregated over based on the provided criteria. """ - filter: WidgetCurrencyFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_currency_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through + the `affiliated_team_from_nested_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_currency_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `affiliated_team_from_nested_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10527,24 +12113,23 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_currency_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through + the `affiliated_team_from_nested_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_currency_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `affiliated_team_from_nested_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): WidgetCurrencyAggregationConnection + ): TeamAggregationConnection """ - Aggregations over the `widgets_or_addresses` data: - - > Fetches `WidgetOrAddress`s based on the provided arguments. + Aggregations over the `affiliated_teams_from_object` data. """ - widget_or_address_aggregations( + affiliated_team_from_object_aggregations( """ - Used to forward-paginate through the `widget_or_address_aggregations`. When provided, the next page after the + Used to forward-paginate through the `affiliated_team_from_object_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10553,7 +12138,8 @@ type Query { after: Cursor """ - Used to backward-paginate through the `widget_or_address_aggregations`. When provided, the previous page before the + Used to backward-paginate through the + `affiliated_team_from_object_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10562,14 +12148,15 @@ type Query { before: Cursor """ - Used to filter the `WidgetOrAddress` documents that get aggregated over based on the provided criteria. + Used to filter the `Team` documents that get aggregated over based on the provided criteria. """ - filter: WidgetOrAddressFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_or_address_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through + the `affiliated_team_from_object_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_or_address_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `affiliated_team_from_object_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10577,24 +12164,19 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_or_address_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through + the `affiliated_team_from_object_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_or_address_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `affiliated_team_from_object_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): WidgetOrAddressAggregationConnection - - """ - Aggregations over the `widget_workspaces` data: - - > Fetches `WidgetWorkspace`s based on the provided arguments. - """ - widget_workspace_aggregations( + ): TeamAggregationConnection + affiliated_teams_from_nested( """ - Used to forward-paginate through the `widget_workspace_aggregations`. When provided, the next page after the + Used to forward-paginate through the `affiliated_teams_from_nested`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10603,7 +12185,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `widget_workspace_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `affiliated_teams_from_nested`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10612,14 +12194,14 @@ type Query { before: Cursor """ - Used to filter the `WidgetWorkspace` documents that get aggregated over based on the provided criteria. + Used to filter the returned `affiliated_teams_from_nested` based on the provided criteria. """ - filter: WidgetWorkspaceFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_workspace_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `affiliated_teams_from_nested`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_workspace_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `affiliated_teams_from_nested`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10627,22 +12209,23 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_workspace_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `affiliated_teams_from_nested`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_workspace_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `affiliated_teams_from_nested`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): WidgetWorkspaceAggregationConnection - """ - Fetches `WidgetWorkspace`s based on the provided arguments. - """ - widget_workspaces( """ - Used to forward-paginate through the `widget_workspaces`. When provided, the next page after the + Used to specify how the returned `affiliated_teams_from_nested` should be sorted. + """ + order_by: [TeamSortOrderInput!] + ): TeamConnection + affiliated_teams_from_object( + """ + Used to forward-paginate through the `affiliated_teams_from_object`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10651,7 +12234,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `widget_workspaces`. When provided, the previous page before the + Used to backward-paginate through the `affiliated_teams_from_object`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10660,14 +12243,14 @@ type Query { before: Cursor """ - Used to filter the returned `widget_workspaces` based on the provided criteria. + Used to filter the returned `affiliated_teams_from_object` based on the provided criteria. """ - filter: WidgetWorkspaceFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_workspaces`. + Used in conjunction with the `after` argument to forward-paginate through the `affiliated_teams_from_object`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_workspaces`, if no `after` cursor is provided). + `after` cursor (or from the start of the `affiliated_teams_from_object`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10675,9 +12258,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_workspaces`. + Used in conjunction with the `before` argument to backward-paginate through the `affiliated_teams_from_object`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_workspaces`, if no `before` cursor is provided). + `before` cursor (or from the end of the `affiliated_teams_from_object`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10685,157 +12268,296 @@ type Query { last: Int """ - Used to specify how the returned `widget_workspaces` should be sorted. + Used to specify how the returned `affiliated_teams_from_object` should be sorted. """ - order_by: [WidgetWorkspaceSortOrderInput!] - ): WidgetWorkspaceConnection + order_by: [TeamSortOrderInput!] + ): TeamConnection + id: ID! + name: String +} +""" +Type used to perform aggregation computations on `Sponsor` fields. +""" +type SponsorAggregatedValues { """ - Fetches `Widget`s based on the provided arguments. + Computed aggregate values for the `id` field. """ - widgets( - """ - Used to forward-paginate through the `widgets`. When provided, the next page after the - provided cursor will be returned. + id: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Computed aggregate values for the `name` field. + """ + name: NonNumericAggregatedValues +} - """ - Used to backward-paginate through the `widgets`. When provided, the previous page before the - provided cursor will be returned. +""" +Return type representing a bucket of `Sponsor` documents for an aggregations query. +""" +type SponsorAggregation { + """ + Provides computed aggregated values over all `Sponsor` documents in an aggregation bucket. + """ + aggregated_values: SponsorAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + The count of `Sponsor` documents in an aggregation bucket. + """ + count: JsonSafeLong! - """ - Used to filter the returned `widgets` based on the provided criteria. - """ - filter: WidgetFilterInput + """ + Used to specify the `Sponsor` fields to group by. The returned values identify each aggregation bucket. + """ + grouped_by: SponsorGroupedBy +} + +""" +Represents a paginated collection of `SponsorAggregation` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type SponsorAggregationConnection { + """ + Wraps a specific `SponsorAggregation` to pair it with its pagination cursor. + """ + edges: [SponsorAggregationEdge!]! + + """ + The list of `SponsorAggregation` results. + """ + nodes: [SponsorAggregation!]! + + """ + Provides pagination-related information. + """ + page_info: PageInfo! +} + +""" +Represents a specific `SponsorAggregation` in the context of a `SponsorAggregationConnection`, +providing access to both the `SponsorAggregation` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type SponsorAggregationEdge { + """ + The `Cursor` of this `SponsorAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `SponsorAggregation`. + """ + cursor: Cursor + + """ + The `SponsorAggregation` of this edge. + """ + node: SponsorAggregation +} + +""" +Represents a paginated collection of `Sponsor` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type SponsorConnection { + """ + Wraps a specific `Sponsor` to pair it with its pagination cursor. + """ + edges: [SponsorEdge!]! + + """ + The list of `Sponsor` results. + """ + nodes: [Sponsor!]! + + """ + Provides pagination-related information. + """ + page_info: PageInfo! + + """ + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! +} + +""" +Represents a specific `Sponsor` in the context of a `SponsorConnection`, +providing access to both the `Sponsor` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type SponsorEdge { + """ + All search highlights for this `Sponsor`, indicating where in the indexed document the query matched. + """ + all_highlights: [SearchHighlight!]! + + """ + The `Cursor` of this `Sponsor`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Sponsor`. + """ + cursor: Cursor + + """ + Specific search highlights for this `Sponsor`, providing matching snippets for the requested fields. + """ + highlights: SponsorHighlights + + """ + The `Sponsor` of this edge. + """ + node: Sponsor +} + +""" +Input type used to specify filters on `Sponsor` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input SponsorFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `SponsorFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [SponsorFilterInput!] - """ - Used in conjunction with the `after` argument to forward-paginate through the `widgets`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widgets`, if no `after` cursor is provided). + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SponsorFilterInput!] - """ - Used in conjunction with the `before` argument to backward-paginate through the `widgets`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widgets`, if no `before` cursor is provided). + """ + Used to filter on the `id` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + When `null` or an empty object is passed, matches all documents. + """ + id: IDFilterInput - """ - Used to specify how the returned `widgets` should be sorted. - """ - order_by: [WidgetSortOrderInput!] - ): WidgetConnection + """ + Used to filter on the `name` field. + When `null` or an empty object is passed, matches all documents. """ - Fetches `WidgetOrAddress`s based on the provided arguments. + name: StringFilterInput + """ - widgets_or_addresses( - """ - Used to forward-paginate through the `widgets_or_addresses`. When provided, the next page after the - provided cursor will be returned. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + When `null` or an empty object is passed, matches no documents. + """ + not: SponsorFilterInput +} - """ - Used to backward-paginate through the `widgets_or_addresses`. When provided, the previous page before the - provided cursor will be returned. +""" +Type used to specify the `Sponsor` fields to group by for aggregations. +""" +type SponsorGroupedBy { + """ + The `name` field value for this group. + """ + name: String +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor +""" +Type used to request desired `Sponsor` search highlight fields. +""" +type SponsorHighlights { + """ + Search highlights for the `id`, providing snippets of the matching text. + """ + id: [String!]! - """ - Used to filter the returned `widgets_or_addresses` based on the provided criteria. - """ - filter: WidgetOrAddressFilterInput + """ + Search highlights for the `name`, providing snippets of the matching text. + """ + name: [String!]! +} - """ - Used in conjunction with the `after` argument to forward-paginate through the `widgets_or_addresses`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widgets_or_addresses`, if no `after` cursor is provided). +""" +Enumerates the ways `Sponsor`s can be sorted. +""" +enum SponsorSortOrderInput { + """ + Sorts ascending by the `id` field. + """ + id_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Sorts descending by the `id` field. + """ + id_DESC - """ - Used in conjunction with the `before` argument to backward-paginate through the `widgets_or_addresses`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widgets_or_addresses`, if no `before` cursor is provided). + """ + Sorts ascending by the `name` field. + """ + name_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Sorts descending by the `name` field. + """ + name_DESC +} - """ - Used to specify how the returned `widgets_or_addresses` should be sorted. - """ - order_by: [WidgetOrAddressSortOrderInput!] - ): WidgetOrAddressConnection +type Sponsorship { + annual_total: Money! + sponsor_id: ID! } """ -Provides information about why a document matched a search via highlighted snippets. +Type used to perform aggregation computations on `Sponsorship` fields. """ -type SearchHighlight { +type SponsorshipAggregatedValues { """ - Path to a leaf field containing one or more search highlight snippets. The returned list will contain a path segment for - each object layer of the schema, from the document root. + Computed aggregate values for the `annual_total` field. """ - path: [String!]! + annual_total: MoneyAggregatedValues """ - List of snippets containing search highlights from field values at this `path`. + Computed aggregate values for the `sponsor_id` field. """ - snippets: [String!]! -} - -enum Size { - LARGE - MEDIUM - SMALL + sponsor_id: NonNumericAggregatedValues } """ -Input type used to specify filters on `Size` fields. +Input type used to specify filters on a `Sponsorship` object referenced directly +or transitively from a list field that has been configured to index each leaf field as +its own flattened list of values. Will match all documents if passed as an empty object (or as `null`). """ -input SizeFilterInput { +input SponsorshipFieldsListFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SizeFilterInput` input because of collisions between - key names. For example, if you want to AND multiple + be provided on a single `SponsorshipFieldsListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [SizeFilterInput!] + all_of: [SponsorshipFieldsListFilterInput!] + + """ + Used to filter on the `annual_total` field. + + When `null` or an empty object is passed, matches all documents. + """ + annual_total: MoneyFieldsListFilterInput """ Matches records where any of the provided sub-filters evaluate to true. @@ -10844,17 +12566,14 @@ input SizeFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [SizeFilterInput!] + any_of: [SponsorshipFieldsListFilterInput!] """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. + Used to filter on the number of non-null elements in this list field. - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + When `null` or an empty object is passed, matches all documents. """ - equal_to_any_of: [SizeInput] + count: IntFilterInput """ Matches records where the provided sub-filter evaluates to false. @@ -10862,70 +12581,113 @@ input SizeFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: SizeFilterInput -} + not: SponsorshipFieldsListFilterInput -enum SizeInput { - LARGE - MEDIUM - SMALL + """ + Used to filter on the `sponsor_id` field. + + When `null` or an empty object is passed, matches all documents. + """ + sponsor_id: IDListFilterInput } """ -Input type used to specify filters on elements of a `[Size]` field. +Input type used to specify filters on `Sponsorship` fields. Will match all documents if passed as an empty object (or as `null`). """ -input SizeListElementFilterInput { +input SponsorshipFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SizeListElementFilterInput` input because of - collisions between key names. For example, if you want to AND multiple + be provided on a single `SponsorshipFilterInput` input because of collisions + between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [SizeListElementFilterInput!] + all_of: [SponsorshipFilterInput!] + + """ + Used to filter on the `annual_total` field. + + When `null` or an empty object is passed, matches all documents. + """ + annual_total: MoneyFilterInput + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SponsorshipFilterInput!] + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: SponsorshipFilterInput + + """ + Used to filter on the `sponsor_id` field. + + When `null` or an empty object is passed, matches all documents. + """ + sponsor_id: IDFilterInput +} + +""" +Type used to specify the `Sponsorship` fields to group by for aggregations. +""" +type SponsorshipGroupedBy { + """ + The `annual_total` field value for this group. + """ + annual_total: MoneyGroupedBy + + """ + The `sponsor_id` field value for this group. + """ + sponsor_id: ID +} +""" +Type used to request desired `Sponsorship` search highlight fields. +""" +type SponsorshipHighlights { """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Search highlights for the `annual_total`, providing snippets of the matching text. """ - any_of: [SizeListElementFilterInput!] + annual_total: MoneyHighlights """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. - - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + Search highlights for the `sponsor_id`, providing snippets of the matching text. """ - equal_to_any_of: [SizeInput!] + sponsor_id: [String!]! } """ -Input type used to specify filters on `[Size]` fields. +Input type used to specify filters on `[Sponsorship]` fields. Will match all documents if passed as an empty object (or as `null`). """ -input SizeListFilterInput { +input SponsorshipListFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SizeListFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `SponsorshipListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [SizeListFilterInput!] + all_of: [SponsorshipListFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -10934,14 +12696,14 @@ input SizeListFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [SizeListFilterInput!] + any_of: [SponsorshipListFilterInput!] """ Matches records where any of the list elements match the provided sub-filter. When `null` or an empty object is passed, matches all documents. """ - any_satisfy: SizeListElementFilterInput + any_satisfy: SponsorshipFilterInput """ Used to filter on the number of non-null elements in this list field. @@ -10956,264 +12718,107 @@ input SizeListFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: SizeListFilterInput + not: SponsorshipListFilterInput } -type Sponsor { +interface Store implements DistributionChannel & Retail { + active: Boolean + customer_facing: Boolean + established_on: Date + id: ID! +} + +""" +Type used to perform aggregation computations on `Store` fields. +""" +type StoreAggregatedValues { """ - Aggregations over the `affiliated_teams_from_nested` data. + Computed aggregate values for the `active` field. """ - affiliated_team_from_nested_aggregations( - """ - Used to forward-paginate through the `affiliated_team_from_nested_aggregations`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the - `affiliated_team_from_nested_aggregations`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the `Team` documents that get aggregated over based on the provided criteria. - """ - filter: TeamFilterInput - - """ - Used in conjunction with the `after` argument to forward-paginate through - the `affiliated_team_from_nested_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `affiliated_team_from_nested_aggregations`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through - the `affiliated_team_from_nested_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `affiliated_team_from_nested_aggregations`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): TeamAggregationConnection + active: NonNumericAggregatedValues """ - Aggregations over the `affiliated_teams_from_object` data. + Computed aggregate values for the `address` field. """ - affiliated_team_from_object_aggregations( - """ - Used to forward-paginate through the `affiliated_team_from_object_aggregations`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the - `affiliated_team_from_object_aggregations`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the `Team` documents that get aggregated over based on the provided criteria. - """ - filter: TeamFilterInput - - """ - Used in conjunction with the `after` argument to forward-paginate through - the `affiliated_team_from_object_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `affiliated_team_from_object_aggregations`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through - the `affiliated_team_from_object_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `affiliated_team_from_object_aggregations`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): TeamAggregationConnection - affiliated_teams_from_nested( - """ - Used to forward-paginate through the `affiliated_teams_from_nested`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the `affiliated_teams_from_nested`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the returned `affiliated_teams_from_nested` based on the provided criteria. - """ - filter: TeamFilterInput - - """ - Used in conjunction with the `after` argument to forward-paginate through the `affiliated_teams_from_nested`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `affiliated_teams_from_nested`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through the `affiliated_teams_from_nested`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `affiliated_teams_from_nested`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - - """ - Used to specify how the returned `affiliated_teams_from_nested` should be sorted. - """ - order_by: [TeamSortOrderInput!] - ): TeamConnection - affiliated_teams_from_object( - """ - Used to forward-paginate through the `affiliated_teams_from_object`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the `affiliated_teams_from_object`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + address: NonNumericAggregatedValues - """ - Used to filter the returned `affiliated_teams_from_object` based on the provided criteria. - """ - filter: TeamFilterInput + """ + Computed aggregate values for the `current_location` field. + """ + current_location: NonNumericAggregatedValues - """ - Used in conjunction with the `after` argument to forward-paginate through the `affiliated_teams_from_object`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `affiliated_teams_from_object`, if no `after` cursor is provided). + """ + Computed aggregate values for the `customer_facing` field. + """ + customer_facing: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Computed aggregate values for the `established_on` field. + """ + established_on: DateAggregatedValues - """ - Used in conjunction with the `before` argument to backward-paginate through the `affiliated_teams_from_object`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `affiliated_teams_from_object`, if no `before` cursor is provided). + """ + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Computed aggregate values for the `platform` field. + """ + platform: NonNumericAggregatedValues - """ - Used to specify how the returned `affiliated_teams_from_object` should be sorted. - """ - order_by: [TeamSortOrderInput!] - ): TeamConnection - id: ID! - name: String -} + """ + Computed aggregate values for the `square_footage` field. + """ + square_footage: IntAggregatedValues -""" -Type used to perform aggregation computations on `Sponsor` fields. -""" -type SponsorAggregatedValues { """ - Computed aggregate values for the `id` field. + Computed aggregate values for the `url` field. """ - id: NonNumericAggregatedValues + url: NonNumericAggregatedValues """ - Computed aggregate values for the `name` field. + Computed aggregate values for the `vehicle_type` field. """ - name: NonNumericAggregatedValues + vehicle_type: NonNumericAggregatedValues } """ -Return type representing a bucket of `Sponsor` documents for an aggregations query. +Return type representing a bucket of `Store` documents for an aggregations query. """ -type SponsorAggregation { +type StoreAggregation { """ - Provides computed aggregated values over all `Sponsor` documents in an aggregation bucket. + Provides computed aggregated values over all `Store` documents in an aggregation bucket. """ - aggregated_values: SponsorAggregatedValues + aggregated_values: StoreAggregatedValues """ - The count of `Sponsor` documents in an aggregation bucket. + The count of `Store` documents in an aggregation bucket. """ count: JsonSafeLong! """ - Used to specify the `Sponsor` fields to group by. The returned values identify each aggregation bucket. + Used to specify the `Store` fields to group by. The returned values identify each aggregation bucket. """ - grouped_by: SponsorGroupedBy + grouped_by: StoreGroupedBy } """ -Represents a paginated collection of `SponsorAggregation` results. +Represents a paginated collection of `StoreAggregation` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type SponsorAggregationConnection { +type StoreAggregationConnection { """ - Wraps a specific `SponsorAggregation` to pair it with its pagination cursor. + Wraps a specific `StoreAggregation` to pair it with its pagination cursor. """ - edges: [SponsorAggregationEdge!]! + edges: [StoreAggregationEdge!]! """ - The list of `SponsorAggregation` results. + The list of `StoreAggregation` results. """ - nodes: [SponsorAggregation!]! + nodes: [StoreAggregation!]! """ Provides pagination-related information. @@ -11222,41 +12827,41 @@ type SponsorAggregationConnection { } """ -Represents a specific `SponsorAggregation` in the context of a `SponsorAggregationConnection`, -providing access to both the `SponsorAggregation` and query-specific information such as the pagination `Cursor`. +Represents a specific `StoreAggregation` in the context of a `StoreAggregationConnection`, +providing access to both the `StoreAggregation` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type SponsorAggregationEdge { +type StoreAggregationEdge { """ - The `Cursor` of this `SponsorAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `SponsorAggregation`. + The `Cursor` of this `StoreAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `StoreAggregation`. """ cursor: Cursor """ - The `SponsorAggregation` of this edge. + The `StoreAggregation` of this edge. """ - node: SponsorAggregation + node: StoreAggregation } """ -Represents a paginated collection of `Sponsor` results. +Represents a paginated collection of `Store` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type SponsorConnection { +type StoreConnection { """ - Wraps a specific `Sponsor` to pair it with its pagination cursor. + Wraps a specific `Store` to pair it with its pagination cursor. """ - edges: [SponsorEdge!]! + edges: [StoreEdge!]! """ - The list of `Sponsor` results. + The list of `Store` results. """ - nodes: [Sponsor!]! + nodes: [Store!]! """ Provides pagination-related information. @@ -11270,52 +12875,66 @@ type SponsorConnection { } """ -Represents a specific `Sponsor` in the context of a `SponsorConnection`, -providing access to both the `Sponsor` and query-specific information such as the pagination `Cursor`. +Represents a specific `Store` in the context of a `StoreConnection`, +providing access to both the `Store` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type SponsorEdge { +type StoreEdge { """ - All search highlights for this `Sponsor`, indicating where in the indexed document the query matched. + All search highlights for this `Store`, indicating where in the indexed document the query matched. """ all_highlights: [SearchHighlight!]! """ - The `Cursor` of this `Sponsor`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Sponsor`. + The `Cursor` of this `Store`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Store`. """ cursor: Cursor """ - Specific search highlights for this `Sponsor`, providing matching snippets for the requested fields. + Specific search highlights for this `Store`, providing matching snippets for the requested fields. """ - highlights: SponsorHighlights + highlights: StoreHighlights """ - The `Sponsor` of this edge. + The `Store` of this edge. """ - node: Sponsor + node: Store } """ -Input type used to specify filters on `Sponsor` fields. +Input type used to specify filters on `Store` fields. Will match all documents if passed as an empty object (or as `null`). """ -input SponsorFilterInput { +input StoreFilterInput { + """ + Used to filter on the `active` field. + + When `null` or an empty object is passed, matches all documents. + """ + active: BooleanFilterInput + + """ + Used to filter on the `address` field. + + When `null` or an empty object is passed, matches all documents. + """ + address: StringFilterInput + """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SponsorFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `StoreFilterInput` input because of collisions between + key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [SponsorFilterInput!] + all_of: [StoreFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -11324,288 +12943,241 @@ input SponsorFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [SponsorFilterInput!] + any_of: [StoreFilterInput!] """ - Used to filter on the `id` field. + Used to filter on the `current_location` field. When `null` or an empty object is passed, matches all documents. """ - id: IDFilterInput + current_location: StringFilterInput """ - Used to filter on the `name` field. + Used to filter on the `customer_facing` field. When `null` or an empty object is passed, matches all documents. """ - name: StringFilterInput + customer_facing: BooleanFilterInput """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Used to filter on the `established_on` field. - When `null` or an empty object is passed, matches no documents. + When `null` or an empty object is passed, matches all documents. """ - not: SponsorFilterInput -} + established_on: DateFilterInput -""" -Type used to specify the `Sponsor` fields to group by for aggregations. -""" -type SponsorGroupedBy { - """ - The `name` field value for this group. """ - name: String -} + Used to filter on the `id` field. -""" -Type used to request desired `Sponsor` search highlight fields. -""" -type SponsorHighlights { - """ - Search highlights for the `id`, providing snippets of the matching text. + When `null` or an empty object is passed, matches all documents. """ - id: [String!]! + id: IDFilterInput """ - Search highlights for the `name`, providing snippets of the matching text. - """ - name: [String!]! -} + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. -""" -Enumerates the ways `Sponsor`s can be sorted. -""" -enum SponsorSortOrderInput { + When `null` or an empty object is passed, matches no documents. """ - Sorts ascending by the `id` field. + not: StoreFilterInput + """ - id_ASC + Used to filter on the `platform` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `id` field. + platform: StringFilterInput + """ - id_DESC + Used to filter on the `square_footage` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `name` field. + square_footage: IntFilterInput + """ - name_ASC + Used to filter on the `url` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `name` field. + url: StringFilterInput + """ - name_DESC -} + Used to filter on the `vehicle_type` field. -type Sponsorship { - annual_total: Money! - sponsor_id: ID! + When `null` or an empty object is passed, matches all documents. + """ + vehicle_type: StringFilterInput } """ -Type used to perform aggregation computations on `Sponsorship` fields. +Type used to specify the `Store` fields to group by for aggregations. """ -type SponsorshipAggregatedValues { +type StoreGroupedBy { """ - Computed aggregate values for the `annual_total` field. + The `active` field value for this group. """ - annual_total: MoneyAggregatedValues + active: Boolean """ - Computed aggregate values for the `sponsor_id` field. + The `address` field value for this group. """ - sponsor_id: NonNumericAggregatedValues -} - -""" -Input type used to specify filters on a `Sponsorship` object referenced directly -or transitively from a list field that has been configured to index each leaf field as -its own flattened list of values. + address: String -Will match all documents if passed as an empty object (or as `null`). -""" -input SponsorshipFieldsListFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SponsorshipFieldsListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + The `current_location` field value for this group. """ - all_of: [SponsorshipFieldsListFilterInput!] + current_location: String """ - Used to filter on the `annual_total` field. - - When `null` or an empty object is passed, matches all documents. + The `customer_facing` field value for this group. """ - annual_total: MoneyFieldsListFilterInput + customer_facing: Boolean """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Offers the different grouping options for the `established_on` value within this group. """ - any_of: [SponsorshipFieldsListFilterInput!] + established_on: DateGroupedBy """ - Used to filter on the number of non-null elements in this list field. - - When `null` or an empty object is passed, matches all documents. + The `platform` field value for this group. """ - count: IntFilterInput + platform: String """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + The `square_footage` field value for this group. """ - not: SponsorshipFieldsListFilterInput + square_footage: Int """ - Used to filter on the `sponsor_id` field. + The `url` field value for this group. + """ + url: String - When `null` or an empty object is passed, matches all documents. """ - sponsor_id: IDListFilterInput + The `vehicle_type` field value for this group. + """ + vehicle_type: String } """ -Input type used to specify filters on `Sponsorship` fields. - -Will match all documents if passed as an empty object (or as `null`). +Type used to request desired `Store` search highlight fields. """ -input SponsorshipFilterInput { +type StoreHighlights { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SponsorshipFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Search highlights for the `address`, providing snippets of the matching text. """ - all_of: [SponsorshipFilterInput!] + address: [String!]! """ - Used to filter on the `annual_total` field. - - When `null` or an empty object is passed, matches all documents. + Search highlights for the `current_location`, providing snippets of the matching text. """ - annual_total: MoneyFilterInput + current_location: [String!]! """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Search highlights for the `id`, providing snippets of the matching text. """ - any_of: [SponsorshipFilterInput!] + id: [String!]! """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Search highlights for the `platform`, providing snippets of the matching text. """ - not: SponsorshipFilterInput + platform: [String!]! """ - Used to filter on the `sponsor_id` field. + Search highlights for the `url`, providing snippets of the matching text. + """ + url: [String!]! - When `null` or an empty object is passed, matches all documents. """ - sponsor_id: IDFilterInput + Search highlights for the `vehicle_type`, providing snippets of the matching text. + """ + vehicle_type: [String!]! } """ -Type used to specify the `Sponsorship` fields to group by for aggregations. +Enumerates the ways `Store`s can be sorted. """ -type SponsorshipGroupedBy { +enum StoreSortOrderInput { """ - The `annual_total` field value for this group. + Sorts ascending by the `address` field. """ - annual_total: MoneyGroupedBy + address_ASC """ - The `sponsor_id` field value for this group. + Sorts descending by the `address` field. """ - sponsor_id: ID -} + address_DESC -""" -Type used to request desired `Sponsorship` search highlight fields. -""" -type SponsorshipHighlights { """ - Search highlights for the `annual_total`, providing snippets of the matching text. + Sorts ascending by the `current_location` field. """ - annual_total: MoneyHighlights + current_location_ASC """ - Search highlights for the `sponsor_id`, providing snippets of the matching text. + Sorts descending by the `current_location` field. """ - sponsor_id: [String!]! -} + current_location_DESC -""" -Input type used to specify filters on `[Sponsorship]` fields. + """ + Sorts ascending by the `established_on` field. + """ + established_on_ASC -Will match all documents if passed as an empty object (or as `null`). -""" -input SponsorshipListFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + Sorts descending by the `established_on` field. + """ + established_on_DESC - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SponsorshipListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + """ + Sorts ascending by the `id` field. + """ + id_ASC - When `null` or an empty list is passed, matches all documents. """ - all_of: [SponsorshipListFilterInput!] + Sorts descending by the `id` field. + """ + id_DESC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + Sorts ascending by the `platform` field. + """ + platform_ASC - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. """ - any_of: [SponsorshipListFilterInput!] + Sorts descending by the `platform` field. + """ + platform_DESC """ - Matches records where any of the list elements match the provided sub-filter. + Sorts ascending by the `square_footage` field. + """ + square_footage_ASC - When `null` or an empty object is passed, matches all documents. """ - any_satisfy: SponsorshipFilterInput + Sorts descending by the `square_footage` field. + """ + square_footage_DESC """ - Used to filter on the number of non-null elements in this list field. + Sorts ascending by the `url` field. + """ + url_ASC - When `null` or an empty object is passed, matches all documents. """ - count: IntFilterInput + Sorts descending by the `url` field. + """ + url_DESC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Sorts ascending by the `vehicle_type` field. + """ + vehicle_type_ASC - When `null` or an empty object is passed, matches no documents. """ - not: SponsorshipListFilterInput + Sorts descending by the `vehicle_type` field. + """ + vehicle_type_DESC } """ @@ -14160,6 +15732,13 @@ input TextFilterInput { not: TextFilterInput } +type ThirdPartyWholesale implements DistributionChannel { + active: Boolean + contract_terms: String + id: ID! + partner_name: String +} + """ An [IANA time zone identifier](https://www.iana.org/time-zones), such as `America/Los_Angeles` or `UTC`. diff --git a/config/schema/artifacts_with_apollo/data_warehouse.yaml b/config/schema/artifacts_with_apollo/data_warehouse.yaml index 3388a7164..057e7ea6a 100644 --- a/config/schema/artifacts_with_apollo/data_warehouse.yaml +++ b/config/schema/artifacts_with_apollo/data_warehouse.yaml @@ -14,13 +14,6 @@ tables: shapes ARRAY>>, manufacturer_id STRING ) - companies: - table_schema: |- - CREATE TABLE IF NOT EXISTS companies ( - id STRING, - name STRING, - stock_ticker STRING - ) components: table_schema: |- CREATE TABLE IF NOT EXISTS components ( @@ -38,6 +31,23 @@ tables: owner_ids ARRAY, owner_id STRING ) + distribution_channels: + table_schema: |- + CREATE TABLE IF NOT EXISTS distribution_channels ( + id STRING, + url STRING, + platform STRING, + established_on DATE, + active BOOLEAN, + customer_facing BOOLEAN, + __typename STRING, + address STRING, + square_footage INT, + vehicle_type STRING, + current_location STRING, + partner_name STRING, + contract_terms STRING + ) electrical_parts: table_schema: |- CREATE TABLE IF NOT EXISTS electrical_parts ( @@ -53,7 +63,7 @@ tables: id STRING, name STRING, created_at TIMESTAMP, - ceo STRUCT + ceo STRUCT ) mechanical_parts: table_schema: |- @@ -64,12 +74,24 @@ tables: material STRING, manufacturer_id STRING ) - people: + named_inventors: table_schema: |- - CREATE TABLE IF NOT EXISTS people ( + CREATE TABLE IF NOT EXISTS named_inventors ( id STRING, name STRING, - nationality STRING + nationality STRING, + __typename STRING, + stock_ticker STRING + ) + physical_stores: + table_schema: |- + CREATE TABLE IF NOT EXISTS physical_stores ( + id STRING, + address STRING, + square_footage INT, + established_on DATE, + active BOOLEAN, + customer_facing BOOLEAN ) sponsors: table_schema: |- @@ -142,8 +164,8 @@ tables: internal_details STRUCT, internal_highlightable_details STRUCT, the_opts STRUCT, - inventor STRUCT, - named_inventor STRUCT, + inventor STRUCT, + named_inventor STRUCT, weight_in_ng_str BIGINT, weight_in_ng BIGINT, tags ARRAY, diff --git a/config/schema/artifacts_with_apollo/datastore_config.yaml b/config/schema/artifacts_with_apollo/datastore_config.yaml index 7976cf8a8..02d7206a2 100644 --- a/config/schema/artifacts_with_apollo/datastore_config.yaml +++ b/config/schema/artifacts_with_apollo/datastore_config.yaml @@ -1531,30 +1531,6 @@ indices: index.number_of_replicas: 1 index.number_of_shards: 1 index.max_result_window: 10000 - companies: - aliases: {} - mappings: - dynamic: strict - properties: - id: - type: keyword - name: - type: keyword - stock_ticker: - type: keyword - __sources: - type: keyword - __versions: - type: object - dynamic: 'false' - _size: - enabled: true - settings: - index.mapping.ignore_malformed: false - index.mapping.coerce: false - index.number_of_replicas: 1 - index.number_of_shards: 1 - index.max_result_window: 10000 components: aliases: {} mappings: @@ -1618,6 +1594,51 @@ indices: index.number_of_replicas: 1 index.number_of_shards: 1 index.max_result_window: 10000 + distribution_channels: + aliases: {} + mappings: + dynamic: strict + properties: + id: + type: keyword + url: + type: keyword + platform: + type: keyword + established_on: + type: date + format: strict_date + active: + type: boolean + customer_facing: + type: boolean + address: + type: keyword + square_footage: + type: integer + vehicle_type: + type: keyword + current_location: + type: keyword + partner_name: + type: keyword + contract_terms: + type: keyword + __typename: + type: keyword + __sources: + type: keyword + __versions: + type: object + dynamic: 'false' + _size: + enabled: true + settings: + index.mapping.ignore_malformed: false + index.mapping.coerce: false + index.number_of_replicas: 1 + index.number_of_shards: 1 + index.max_result_window: 10000 electrical_parts: aliases: {} mappings: @@ -1709,7 +1730,7 @@ indices: index.number_of_replicas: 1 index.number_of_shards: 1 index.max_result_window: 10000 - people: + named_inventors: aliases: {} mappings: dynamic: strict @@ -1720,6 +1741,41 @@ indices: type: keyword nationality: type: keyword + stock_ticker: + type: keyword + __typename: + type: keyword + __sources: + type: keyword + __versions: + type: object + dynamic: 'false' + _size: + enabled: true + settings: + index.mapping.ignore_malformed: false + index.mapping.coerce: false + index.number_of_replicas: 1 + index.number_of_shards: 1 + index.max_result_window: 10000 + physical_stores: + aliases: {} + mappings: + dynamic: strict + properties: + id: + type: keyword + address: + type: keyword + square_footage: + type: integer + established_on: + type: date + format: strict_date + active: + type: boolean + customer_facing: + type: boolean __sources: type: keyword __versions: diff --git a/config/schema/artifacts_with_apollo/json_schemas.yaml b/config/schema/artifacts_with_apollo/json_schemas.yaml index f46e562cd..af47f2cd5 100644 --- a/config/schema/artifacts_with_apollo/json_schemas.yaml +++ b/config/schema/artifacts_with_apollo/json_schemas.yaml @@ -28,9 +28,13 @@ json_schema_version: 1 - ElectricalPart - Manufacturer - MechanicalPart + - MobileStore + - OnlineStore - Person + - PhysicalStore - Sponsor - Team + - ThirdPartyWholesale - Widget - WidgetWorkspace id: @@ -421,6 +425,46 @@ json_schema_version: 1 - created_at - material - manufacturer_id + MobileStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + vehicle_type: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + current_location: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + __typename: + type: string + const: MobileStore + default: MobileStore + required: + - id + - vehicle_type + - current_location + - established_on + - active + - customer_facing Money: type: object properties: @@ -445,6 +489,46 @@ json_schema_version: 1 oneOf: - "$ref": "#/$defs/Person" - "$ref": "#/$defs/Company" + OnlineStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + url: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + platform: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + __typename: + type: string + const: OnlineStore + default: OnlineStore + required: + - id + - url + - platform + - established_on + - active + - customer_facing Person: type: object properties: @@ -472,6 +556,44 @@ json_schema_version: 1 - id - name - nationality + PhysicalStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + address: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + square_footage: + anyOf: + - "$ref": "#/$defs/Int" + - type: 'null' + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + __typename: + type: string + const: PhysicalStore + default: PhysicalStore + required: + - id + - address + - square_footage + - established_on + - active + - customer_facing Player: type: object properties: @@ -819,6 +941,38 @@ json_schema_version: 1 - was_shortened - players_nested - players_object + ThirdPartyWholesale: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + partner_name: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + contract_terms: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + __typename: + type: string + const: ThirdPartyWholesale + default: ThirdPartyWholesale + required: + - id + - active + - partner_name + - contract_terms Untyped: type: - array diff --git a/config/schema/artifacts_with_apollo/json_schemas_by_version/v1.yaml b/config/schema/artifacts_with_apollo/json_schemas_by_version/v1.yaml index d657699e7..3ba2591d9 100644 --- a/config/schema/artifacts_with_apollo/json_schemas_by_version/v1.yaml +++ b/config/schema/artifacts_with_apollo/json_schemas_by_version/v1.yaml @@ -28,9 +28,13 @@ json_schema_version: 1 - ElectricalPart - Manufacturer - MechanicalPart + - MobileStore + - OnlineStore - Person + - PhysicalStore - Sponsor - Team + - ThirdPartyWholesale - Widget - WidgetWorkspace id: @@ -535,6 +539,64 @@ json_schema_version: 1 - created_at - material - manufacturer_id + MobileStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + ElasticGraph: + type: ID! + nameInIndex: id + vehicle_type: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + ElasticGraph: + type: String! + nameInIndex: vehicle_type + current_location: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + ElasticGraph: + type: String + nameInIndex: current_location + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + ElasticGraph: + type: Date + nameInIndex: established_on + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: active + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: customer_facing + __typename: + type: string + const: MobileStore + default: MobileStore + required: + - id + - vehicle_type + - current_location + - established_on + - active + - customer_facing Money: type: object properties: @@ -565,6 +627,64 @@ json_schema_version: 1 oneOf: - "$ref": "#/$defs/Person" - "$ref": "#/$defs/Company" + OnlineStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + ElasticGraph: + type: ID! + nameInIndex: id + url: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + ElasticGraph: + type: String! + nameInIndex: url + platform: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + ElasticGraph: + type: String + nameInIndex: platform + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + ElasticGraph: + type: Date + nameInIndex: established_on + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: active + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: customer_facing + __typename: + type: string + const: OnlineStore + default: OnlineStore + required: + - id + - url + - platform + - established_on + - active + - customer_facing Person: type: object properties: @@ -601,6 +721,62 @@ json_schema_version: 1 - id - name - nationality + PhysicalStore: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + ElasticGraph: + type: ID! + nameInIndex: id + address: + allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + ElasticGraph: + type: String! + nameInIndex: address + square_footage: + anyOf: + - "$ref": "#/$defs/Int" + - type: 'null' + ElasticGraph: + type: Int + nameInIndex: square_footage + established_on: + anyOf: + - "$ref": "#/$defs/Date" + - type: 'null' + ElasticGraph: + type: Date + nameInIndex: established_on + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: active + customer_facing: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: customer_facing + __typename: + type: string + const: PhysicalStore + default: PhysicalStore + required: + - id + - address + - square_footage + - established_on + - active + - customer_facing Player: type: object properties: @@ -1098,6 +1274,50 @@ json_schema_version: 1 - was_shortened - players_nested - players_object + ThirdPartyWholesale: + type: object + properties: + id: + allOf: + - "$ref": "#/$defs/ID" + - maxLength: 8191 + ElasticGraph: + type: ID! + nameInIndex: id + active: + anyOf: + - "$ref": "#/$defs/Boolean" + - type: 'null' + ElasticGraph: + type: Boolean + nameInIndex: active + partner_name: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + ElasticGraph: + type: String + nameInIndex: partner_name + contract_terms: + anyOf: + - allOf: + - "$ref": "#/$defs/String" + - maxLength: 8191 + - type: 'null' + ElasticGraph: + type: String + nameInIndex: contract_terms + __typename: + type: string + const: ThirdPartyWholesale + default: ThirdPartyWholesale + required: + - id + - active + - partner_name + - contract_terms Untyped: type: - array diff --git a/config/schema/artifacts_with_apollo/runtime_metadata.yaml b/config/schema/artifacts_with_apollo/runtime_metadata.yaml index 905f02919..6b85eb20a 100644 --- a/config/schema/artifacts_with_apollo/runtime_metadata.yaml +++ b/config/schema/artifacts_with_apollo/runtime_metadata.yaml @@ -21,32 +21,6 @@ enum_types_by_name: sort_field: direction: desc field_path: timestamps.created_at - CompanySortOrderInput: - values_by_name: - id_ASC: - sort_field: - direction: asc - field_path: id - id_DESC: - sort_field: - direction: desc - field_path: id - name_ASC: - sort_field: - direction: asc - field_path: name - name_DESC: - sort_field: - direction: desc - field_path: name - stock_ticker_ASC: - sort_field: - direction: asc - field_path: stock_ticker - stock_ticker_DESC: - sort_field: - direction: desc - field_path: stock_ticker ComponentSortOrderInput: values_by_name: created_at_ASC: @@ -201,6 +175,88 @@ enum_types_by_name: datastore_abbreviation: nmi YARD: datastore_abbreviation: yd + DistributionChannelSortOrderInput: + values_by_name: + address_ASC: + sort_field: + direction: asc + field_path: address + address_DESC: + sort_field: + direction: desc + field_path: address + contract_terms_ASC: + sort_field: + direction: asc + field_path: contract_terms + contract_terms_DESC: + sort_field: + direction: desc + field_path: contract_terms + current_location_ASC: + sort_field: + direction: asc + field_path: current_location + current_location_DESC: + sort_field: + direction: desc + field_path: current_location + established_on_ASC: + sort_field: + direction: asc + field_path: established_on + established_on_DESC: + sort_field: + direction: desc + field_path: established_on + id_ASC: + sort_field: + direction: asc + field_path: id + id_DESC: + sort_field: + direction: desc + field_path: id + partner_name_ASC: + sort_field: + direction: asc + field_path: partner_name + partner_name_DESC: + sort_field: + direction: desc + field_path: partner_name + platform_ASC: + sort_field: + direction: asc + field_path: platform + platform_DESC: + sort_field: + direction: desc + field_path: platform + square_footage_ASC: + sort_field: + direction: asc + field_path: square_footage + square_footage_DESC: + sort_field: + direction: desc + field_path: square_footage + url_ASC: + sort_field: + direction: asc + field_path: url + url_DESC: + sort_field: + direction: desc + field_path: url + vehicle_type_ASC: + sort_field: + direction: asc + field_path: vehicle_type + vehicle_type_DESC: + sort_field: + direction: desc + field_path: vehicle_type ElectricalPartSortOrderInput: values_by_name: created_at_ASC: @@ -871,8 +927,24 @@ enum_types_by_name: sort_field: direction: desc field_path: voltage - PersonSortOrderInput: + PhysicalStoreSortOrderInput: values_by_name: + address_ASC: + sort_field: + direction: asc + field_path: address + address_DESC: + sort_field: + direction: desc + field_path: address + established_on_ASC: + sort_field: + direction: asc + field_path: established_on + established_on_DESC: + sort_field: + direction: desc + field_path: established_on id_ASC: sort_field: direction: asc @@ -881,22 +953,80 @@ enum_types_by_name: sort_field: direction: desc field_path: id - name_ASC: + square_footage_ASC: sort_field: direction: asc - field_path: name - name_DESC: + field_path: square_footage + square_footage_DESC: sort_field: direction: desc - field_path: name - nationality_ASC: + field_path: square_footage + RetailSortOrderInput: + values_by_name: + address_ASC: sort_field: direction: asc - field_path: nationality - nationality_DESC: + field_path: address + address_DESC: sort_field: direction: desc - field_path: nationality + field_path: address + current_location_ASC: + sort_field: + direction: asc + field_path: current_location + current_location_DESC: + sort_field: + direction: desc + field_path: current_location + established_on_ASC: + sort_field: + direction: asc + field_path: established_on + established_on_DESC: + sort_field: + direction: desc + field_path: established_on + id_ASC: + sort_field: + direction: asc + field_path: id + id_DESC: + sort_field: + direction: desc + field_path: id + platform_ASC: + sort_field: + direction: asc + field_path: platform + platform_DESC: + sort_field: + direction: desc + field_path: platform + square_footage_ASC: + sort_field: + direction: asc + field_path: square_footage + square_footage_DESC: + sort_field: + direction: desc + field_path: square_footage + url_ASC: + sort_field: + direction: asc + field_path: url + url_DESC: + sort_field: + direction: desc + field_path: url + vehicle_type_ASC: + sort_field: + direction: asc + field_path: vehicle_type + vehicle_type_DESC: + sort_field: + direction: desc + field_path: vehicle_type SponsorSortOrderInput: values_by_name: id_ASC: @@ -915,6 +1045,72 @@ enum_types_by_name: sort_field: direction: desc field_path: name + StoreSortOrderInput: + values_by_name: + address_ASC: + sort_field: + direction: asc + field_path: address + address_DESC: + sort_field: + direction: desc + field_path: address + current_location_ASC: + sort_field: + direction: asc + field_path: current_location + current_location_DESC: + sort_field: + direction: desc + field_path: current_location + established_on_ASC: + sort_field: + direction: asc + field_path: established_on + established_on_DESC: + sort_field: + direction: desc + field_path: established_on + id_ASC: + sort_field: + direction: asc + field_path: id + id_DESC: + sort_field: + direction: desc + field_path: id + platform_ASC: + sort_field: + direction: asc + field_path: platform + platform_DESC: + sort_field: + direction: desc + field_path: platform + square_footage_ASC: + sort_field: + direction: asc + field_path: square_footage + square_footage_DESC: + sort_field: + direction: desc + field_path: square_footage + url_ASC: + sort_field: + direction: asc + field_path: url + url_DESC: + sort_field: + direction: desc + field_path: url + vehicle_type_ASC: + sort_field: + direction: asc + field_path: vehicle_type + vehicle_type_DESC: + sort_field: + direction: desc + field_path: vehicle_type TeamSortOrderInput: values_by_name: country_code_ASC: @@ -1803,17 +1999,6 @@ index_definitions_by_name: timestamps.created_at: source: __self route_with: id - companies: - current_sources: - - __self - fields_by_path: - id: - source: __self - name: - source: __self - stock_ticker: - source: __self - route_with: id components: current_sources: - __self @@ -1862,6 +2047,35 @@ index_definitions_by_name: source: widget has_had_multiple_sources: true route_with: id + distribution_channels: + current_sources: + - __self + fields_by_path: + active: + source: __self + address: + source: __self + contract_terms: + source: __self + current_location: + source: __self + customer_facing: + source: __self + established_on: + source: __self + id: + source: __self + partner_name: + source: __self + platform: + source: __self + square_footage: + source: __self + url: + source: __self + vehicle_type: + source: __self + route_with: id electrical_parts: current_sources: - __self @@ -1918,7 +2132,7 @@ index_definitions_by_name: name: source: __self route_with: id - people: + named_inventors: current_sources: - __self fields_by_path: @@ -1928,6 +2142,25 @@ index_definitions_by_name: source: __self nationality: source: __self + stock_ticker: + source: __self + route_with: id + physical_stores: + current_sources: + - __self + fields_by_path: + active: + source: __self + address: + source: __self + customer_facing: + source: __self + established_on: + source: __self + id: + source: __self + square_footage: + source: __self route_with: id sponsors: current_sources: @@ -3221,9 +3454,11 @@ object_types_by_name: resolver: name: get_record_field_value index_definition_names: - - companies + - named_inventors update_targets: - data_params: + __typename: + cardinality: one name: cardinality: one stock_ticker: @@ -3244,147 +3479,53 @@ object_types_by_name: routing_value_source: id script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a type: Company - CompanyAggregatedValues: + Component: graphql_fields_by_name: + created_at: + resolver: + name: get_record_field_value + dollar_widget: + relation: + additional_filter: + cost: + amount_cents: + equal_to_any_of: + - 100 + direction: in + foreign_key: component_ids + resolver: + name: nested_relationships id: resolver: - name: object_with_lookahead + name: get_record_field_value name: resolver: - name: object_with_lookahead - stock_ticker: - resolver: - name: object_with_lookahead - CompanyAggregation: - elasticgraph_category: indexed_aggregation - graphql_fields_by_name: - aggregated_values: + name: get_record_field_value + owner: + name_in_index: owner_id resolver: - name: object_without_lookahead - count: + config: + source_id_field: owner_id + exposed_id_field: token + name: apollo_entity_ref + owners: + name_in_index: owner_ids resolver: - name: object_without_lookahead - grouped_by: + config: + source_ids_field: owner_ids + exposed_id_field: token + name: apollo_entity_ref_list + owners_paginated: + name_in_index: owner_ids resolver: - name: object_without_lookahead - source_type: Company - CompanyAggregationConnection: - elasticgraph_category: relay_connection - graphql_fields_by_name: - edges: - resolver: - name: object_without_lookahead - nodes: - resolver: - name: object_without_lookahead - page_info: - resolver: - name: object_without_lookahead - CompanyAggregationEdge: - elasticgraph_category: relay_edge - graphql_fields_by_name: - cursor: - resolver: - name: object_without_lookahead - node: - resolver: - name: object_without_lookahead - CompanyConnection: - elasticgraph_category: relay_connection - graphql_fields_by_name: - edges: - resolver: - name: object_without_lookahead - nodes: - resolver: - name: object_without_lookahead - page_info: - resolver: - name: object_without_lookahead - total_edge_count: - resolver: - name: object_without_lookahead - CompanyEdge: - elasticgraph_category: relay_edge - graphql_fields_by_name: - all_highlights: - resolver: - name: object_without_lookahead - cursor: - resolver: - name: object_without_lookahead - highlights: - resolver: - name: object_without_lookahead - node: - resolver: - name: object_without_lookahead - CompanyGroupedBy: - graphql_fields_by_name: - name: - resolver: - name: object_with_lookahead - stock_ticker: - resolver: - name: object_with_lookahead - CompanyHighlights: - graphql_fields_by_name: - id: - resolver: - name: get_record_field_value - name: - resolver: - name: get_record_field_value - stock_ticker: - resolver: - name: get_record_field_value - Component: - graphql_fields_by_name: - created_at: - resolver: - name: get_record_field_value - dollar_widget: - relation: - additional_filter: - cost: - amount_cents: - equal_to_any_of: - - 100 - direction: in - foreign_key: component_ids - resolver: - name: nested_relationships - id: - resolver: - name: get_record_field_value - name: - resolver: - name: get_record_field_value - owner: - name_in_index: owner_id - resolver: - config: - source_id_field: owner_id - exposed_id_field: token - name: apollo_entity_ref - owners: - name_in_index: owner_ids - resolver: - config: - source_ids_field: owner_ids - exposed_id_field: token - name: apollo_entity_ref_list - owners_paginated: - name_in_index: owner_ids - resolver: - config: - source_ids_field: owner_ids - exposed_id_field: token - name: apollo_entity_ref_paginated - part_aggregations: - relation: - direction: out - foreign_key: part_ids + config: + source_ids_field: owner_ids + exposed_id_field: token + name: apollo_entity_ref_paginated + part_aggregations: + relation: + direction: out + foreign_key: part_ids resolver: name: nested_relationships parts: @@ -3787,81 +3928,85 @@ object_types_by_name: graphql_fields_by_name: count: name_in_index: __counts - ElectricalPart: + DistributionChannel: graphql_fields_by_name: - component_aggregations: - relation: - direction: in - foreign_key: part_ids + active: resolver: - name: nested_relationships - components: - relation: - direction: in - foreign_key: part_ids + name: get_record_field_value + address: resolver: - name: nested_relationships - created_at: + name: get_record_field_value + contract_terms: + resolver: + name: get_record_field_value + current_location: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - manufacturer: - relation: - direction: out - foreign_key: manufacturer_id + partner_name: resolver: - name: nested_relationships - name: + name: get_record_field_value + platform: resolver: name: get_record_field_value - voltage: + square_footage: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: resolver: name: get_record_field_value index_definition_names: - - electrical_parts - update_targets: - - data_params: - created_at: - cardinality: one - manufacturer_id: - cardinality: one - name: - cardinality: one - voltage: - cardinality: one - id_source: id - metadata_params: - relationship: - value: __self - sourceId: - cardinality: one - source_path: id - sourceType: - cardinality: one - source_path: type - version: - cardinality: one - relationship: __self - routing_value_source: id - script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a - type: ElectricalPart - ElectricalPartAggregatedValues: + - distribution_channels + DistributionChannelAggregatedValues: graphql_fields_by_name: - created_at: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + contract_terms: + resolver: + name: object_with_lookahead + current_location: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - name: + partner_name: resolver: name: object_with_lookahead - voltage: + platform: resolver: name: object_with_lookahead - ElectricalPartAggregation: + square_footage: + resolver: + name: object_with_lookahead + url: + resolver: + name: object_with_lookahead + vehicle_type: + resolver: + name: object_with_lookahead + DistributionChannelAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: aggregated_values: @@ -3873,8 +4018,8 @@ object_types_by_name: grouped_by: resolver: name: object_without_lookahead - source_type: ElectricalPart - ElectricalPartAggregationConnection: + source_type: DistributionChannel + DistributionChannelAggregationConnection: elasticgraph_category: relay_connection graphql_fields_by_name: edges: @@ -3886,7 +4031,7 @@ object_types_by_name: page_info: resolver: name: object_without_lookahead - ElectricalPartAggregationEdge: + DistributionChannelAggregationEdge: elasticgraph_category: relay_edge graphql_fields_by_name: cursor: @@ -3895,7 +4040,7 @@ object_types_by_name: node: resolver: name: object_without_lookahead - ElectricalPartConnection: + DistributionChannelConnection: elasticgraph_category: relay_connection graphql_fields_by_name: edges: @@ -3910,7 +4055,7 @@ object_types_by_name: total_edge_count: resolver: name: object_without_lookahead - ElectricalPartEdge: + DistributionChannelEdge: elasticgraph_category: relay_edge graphql_fields_by_name: all_highlights: @@ -3925,90 +4070,289 @@ object_types_by_name: node: resolver: name: object_without_lookahead - ElectricalPartGroupedBy: + DistributionChannelGroupedBy: graphql_fields_by_name: - created_at: + active: resolver: name: object_with_lookahead - name: + address: resolver: name: object_with_lookahead - voltage: + contract_terms: resolver: name: object_with_lookahead - ElectricalPartHighlights: - graphql_fields_by_name: - id: + current_location: resolver: - name: get_record_field_value - name: + name: object_with_lookahead + customer_facing: resolver: - name: get_record_field_value - FloatAggregatedValues: - elasticgraph_category: scalar_aggregated_values - graphql_fields_by_name: - approximate_avg: - computation_detail: - function: avg + name: object_with_lookahead + established_on: resolver: name: object_with_lookahead - approximate_distinct_value_count: - computation_detail: - empty_bucket_value: 0 - function: cardinality + partner_name: resolver: name: object_with_lookahead - approximate_sum: - computation_detail: - empty_bucket_value: 0 - function: sum + platform: resolver: name: object_with_lookahead - exact_max: - computation_detail: - function: max + square_footage: resolver: name: object_with_lookahead - exact_min: - computation_detail: - function: min + url: resolver: name: object_with_lookahead - graphql_only_return_type: true - GeoLocation: + vehicle_type: + resolver: + name: object_with_lookahead + DistributionChannelHighlights: graphql_fields_by_name: - latitude: - name_in_index: lat + address: resolver: name: get_record_field_value - longitude: - name_in_index: lon + contract_terms: resolver: name: get_record_field_value - GeoShape: - graphql_fields_by_name: - coordinates: + current_location: resolver: name: get_record_field_value - type: + id: resolver: name: get_record_field_value - IDListFilterInput: - graphql_fields_by_name: - count: - name_in_index: __counts - IntAggregatedValues: - elasticgraph_category: scalar_aggregated_values - graphql_fields_by_name: - approximate_avg: - computation_detail: - function: avg + partner_name: resolver: - name: object_with_lookahead - approximate_distinct_value_count: - computation_detail: - empty_bucket_value: 0 - function: cardinality + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: + resolver: + name: get_record_field_value + ElectricalPart: + graphql_fields_by_name: + component_aggregations: + relation: + direction: in + foreign_key: part_ids + resolver: + name: nested_relationships + components: + relation: + direction: in + foreign_key: part_ids + resolver: + name: nested_relationships + created_at: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + manufacturer: + relation: + direction: out + foreign_key: manufacturer_id + resolver: + name: nested_relationships + name: + resolver: + name: get_record_field_value + voltage: + resolver: + name: get_record_field_value + index_definition_names: + - electrical_parts + update_targets: + - data_params: + created_at: + cardinality: one + manufacturer_id: + cardinality: one + name: + cardinality: one + voltage: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: ElectricalPart + ElectricalPartAggregatedValues: + graphql_fields_by_name: + created_at: + resolver: + name: object_with_lookahead + id: + resolver: + name: object_with_lookahead + name: + resolver: + name: object_with_lookahead + voltage: + resolver: + name: object_with_lookahead + ElectricalPartAggregation: + elasticgraph_category: indexed_aggregation + graphql_fields_by_name: + aggregated_values: + resolver: + name: object_without_lookahead + count: + resolver: + name: object_without_lookahead + grouped_by: + resolver: + name: object_without_lookahead + source_type: ElectricalPart + ElectricalPartAggregationConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + ElectricalPartAggregationEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + cursor: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + ElectricalPartConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + total_edge_count: + resolver: + name: object_without_lookahead + ElectricalPartEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + all_highlights: + resolver: + name: object_without_lookahead + cursor: + resolver: + name: object_without_lookahead + highlights: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + ElectricalPartGroupedBy: + graphql_fields_by_name: + created_at: + resolver: + name: object_with_lookahead + name: + resolver: + name: object_with_lookahead + voltage: + resolver: + name: object_with_lookahead + ElectricalPartHighlights: + graphql_fields_by_name: + id: + resolver: + name: get_record_field_value + name: + resolver: + name: get_record_field_value + FloatAggregatedValues: + elasticgraph_category: scalar_aggregated_values + graphql_fields_by_name: + approximate_avg: + computation_detail: + function: avg + resolver: + name: object_with_lookahead + approximate_distinct_value_count: + computation_detail: + empty_bucket_value: 0 + function: cardinality + resolver: + name: object_with_lookahead + approximate_sum: + computation_detail: + empty_bucket_value: 0 + function: sum + resolver: + name: object_with_lookahead + exact_max: + computation_detail: + function: max + resolver: + name: object_with_lookahead + exact_min: + computation_detail: + function: min + resolver: + name: object_with_lookahead + graphql_only_return_type: true + GeoLocation: + graphql_fields_by_name: + latitude: + name_in_index: lat + resolver: + name: get_record_field_value + longitude: + name_in_index: lon + resolver: + name: get_record_field_value + GeoShape: + graphql_fields_by_name: + coordinates: + resolver: + name: get_record_field_value + type: + resolver: + name: get_record_field_value + IDListFilterInput: + graphql_fields_by_name: + count: + name_in_index: __counts + IntAggregatedValues: + elasticgraph_category: scalar_aggregated_values + graphql_fields_by_name: + approximate_avg: + computation_detail: + function: avg + resolver: + name: object_with_lookahead + approximate_distinct_value_count: + computation_detail: + empty_bucket_value: 0 + function: cardinality resolver: name: object_with_lookahead approximate_sum: @@ -4586,40 +4930,92 @@ object_types_by_name: name: resolver: name: get_record_field_value - Money: + MobileStore: graphql_fields_by_name: - amount_cents: + active: resolver: name: get_record_field_value - currency: + current_location: resolver: name: get_record_field_value - MoneyAggregatedValues: - graphql_fields_by_name: - amount_cents: - resolver: - name: object_with_lookahead - currency: + customer_facing: resolver: - name: object_with_lookahead - MoneyFieldsListFilterInput: - graphql_fields_by_name: - count: - name_in_index: __counts - MoneyGroupedBy: - graphql_fields_by_name: - amount_cents: + name: get_record_field_value + established_on: resolver: - name: object_with_lookahead - currency: + name: get_record_field_value + id: resolver: - name: object_with_lookahead - MoneyHighlights: - graphql_fields_by_name: - currency: + name: get_record_field_value + vehicle_type: resolver: name: get_record_field_value - MoneyListFilterInput: + index_definition_names: + - distribution_channels + update_targets: + - data_params: + __typename: + cardinality: one + active: + cardinality: one + current_location: + cardinality: one + customer_facing: + cardinality: one + established_on: + cardinality: one + vehicle_type: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: MobileStore + Money: + graphql_fields_by_name: + amount_cents: + resolver: + name: get_record_field_value + currency: + resolver: + name: get_record_field_value + MoneyAggregatedValues: + graphql_fields_by_name: + amount_cents: + resolver: + name: object_with_lookahead + currency: + resolver: + name: object_with_lookahead + MoneyFieldsListFilterInput: + graphql_fields_by_name: + count: + name_in_index: __counts + MoneyGroupedBy: + graphql_fields_by_name: + amount_cents: + resolver: + name: object_with_lookahead + currency: + resolver: + name: object_with_lookahead + MoneyHighlights: + graphql_fields_by_name: + currency: + resolver: + name: get_record_field_value + MoneyListFilterInput: graphql_fields_by_name: count: name_in_index: __counts @@ -5311,6 +5707,8 @@ object_types_by_name: stock_ticker: resolver: name: get_record_field_value + index_definition_names: + - named_inventors NamedInventorAggregatedValues: graphql_fields_by_name: id: @@ -5424,6 +5822,58 @@ object_types_by_name: resolver: name: object_with_lookahead graphql_only_return_type: true + OnlineStore: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + index_definition_names: + - distribution_channels + update_targets: + - data_params: + __typename: + cardinality: one + active: + cardinality: one + customer_facing: + cardinality: one + established_on: + cardinality: one + platform: + cardinality: one + url: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: OnlineStore PageInfo: graphql_fields_by_name: end_cursor: @@ -5592,9 +6042,11 @@ object_types_by_name: resolver: name: get_record_field_value index_definition_names: - - people + - named_inventors update_targets: - data_params: + __typename: + cardinality: one name: cardinality: one nationality: @@ -5626,7 +6078,96 @@ object_types_by_name: nationality: resolver: name: object_with_lookahead - PersonAggregation: + PersonGroupedBy: + graphql_fields_by_name: + name: + resolver: + name: object_with_lookahead + nationality: + resolver: + name: object_with_lookahead + PersonHighlights: + graphql_fields_by_name: + id: + resolver: + name: get_record_field_value + name: + resolver: + name: get_record_field_value + nationality: + resolver: + name: get_record_field_value + PhysicalStore: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + address: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + square_footage: + resolver: + name: get_record_field_value + index_definition_names: + - physical_stores + update_targets: + - data_params: + active: + cardinality: one + address: + cardinality: one + customer_facing: + cardinality: one + established_on: + cardinality: one + square_footage: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: PhysicalStore + PhysicalStoreAggregatedValues: + graphql_fields_by_name: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + id: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + PhysicalStoreAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: aggregated_values: @@ -5638,8 +6179,8 @@ object_types_by_name: grouped_by: resolver: name: object_without_lookahead - source_type: Person - PersonAggregationConnection: + source_type: PhysicalStore + PhysicalStoreAggregationConnection: elasticgraph_category: relay_connection graphql_fields_by_name: edges: @@ -5651,7 +6192,7 @@ object_types_by_name: page_info: resolver: name: object_without_lookahead - PersonAggregationEdge: + PhysicalStoreAggregationEdge: elasticgraph_category: relay_edge graphql_fields_by_name: cursor: @@ -5660,7 +6201,7 @@ object_types_by_name: node: resolver: name: object_without_lookahead - PersonConnection: + PhysicalStoreConnection: elasticgraph_category: relay_connection graphql_fields_by_name: edges: @@ -5675,7 +6216,7 @@ object_types_by_name: total_edge_count: resolver: name: object_without_lookahead - PersonEdge: + PhysicalStoreEdge: elasticgraph_category: relay_edge graphql_fields_by_name: all_highlights: @@ -5690,23 +6231,29 @@ object_types_by_name: node: resolver: name: object_without_lookahead - PersonGroupedBy: + PhysicalStoreGroupedBy: graphql_fields_by_name: - name: + active: resolver: name: object_with_lookahead - nationality: + address: resolver: name: object_with_lookahead - PersonHighlights: - graphql_fields_by_name: - id: + customer_facing: resolver: - name: get_record_field_value - name: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + PhysicalStoreHighlights: + graphql_fields_by_name: + address: resolver: name: get_record_field_value - nationality: + id: resolver: name: get_record_field_value Player: @@ -5857,16 +6404,16 @@ object_types_by_name: addresses: resolver: name: list_records - companies: + component_aggregations: resolver: name: list_records - company_aggregations: + components: resolver: name: list_records - component_aggregations: + distribution_channel_aggregations: resolver: name: list_records - components: + distribution_channels: resolver: name: list_records electrical_part_aggregations: @@ -5886,73 +6433,264 @@ object_types_by_name: name: list_records manufacturers: resolver: - name: list_records - mechanical_part_aggregations: + name: list_records + mechanical_part_aggregations: + resolver: + name: list_records + mechanical_parts: + resolver: + name: list_records + named_entities: + resolver: + name: list_records + named_entity_aggregations: + resolver: + name: list_records + named_inventor_aggregations: + resolver: + name: list_records + named_inventors: + resolver: + name: list_records + part_aggregations: + resolver: + name: list_records + parts: + resolver: + name: list_records + physical_store_aggregations: + resolver: + name: list_records + physical_stores: + resolver: + name: list_records + retail_aggregations: + resolver: + name: list_records + retailers: + resolver: + name: list_records + sponsor_aggregations: + resolver: + name: list_records + sponsors: + resolver: + name: list_records + store_aggregations: + resolver: + name: list_records + stores: + resolver: + name: list_records + team_aggregations: + resolver: + name: list_records + teams: + resolver: + name: list_records + widget_aggregations: + resolver: + name: list_records + widget_currencies: + resolver: + name: list_records + widget_currency_aggregations: + resolver: + name: list_records + widget_or_address_aggregations: + resolver: + name: list_records + widget_workspace_aggregations: + resolver: + name: list_records + widget_workspaces: + resolver: + name: list_records + widgets: + resolver: + name: list_records + widgets_or_addresses: + resolver: + name: list_records + Retail: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + address: + resolver: + name: get_record_field_value + current_location: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + square_footage: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: + resolver: + name: get_record_field_value + index_definition_names: + - distribution_channels + RetailAggregatedValues: + graphql_fields_by_name: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + current_location: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + id: + resolver: + name: object_with_lookahead + platform: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + url: + resolver: + name: object_with_lookahead + vehicle_type: + resolver: + name: object_with_lookahead + RetailAggregation: + elasticgraph_category: indexed_aggregation + graphql_fields_by_name: + aggregated_values: + resolver: + name: object_without_lookahead + count: + resolver: + name: object_without_lookahead + grouped_by: + resolver: + name: object_without_lookahead + source_type: Retail + RetailAggregationConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + RetailAggregationEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + cursor: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + RetailConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: resolver: - name: list_records - mechanical_parts: + name: object_without_lookahead + page_info: resolver: - name: list_records - named_entities: + name: object_without_lookahead + total_edge_count: resolver: - name: list_records - named_entity_aggregations: + name: object_without_lookahead + RetailEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + all_highlights: resolver: - name: list_records - named_inventor_aggregations: + name: object_without_lookahead + cursor: resolver: - name: list_records - named_inventors: + name: object_without_lookahead + highlights: resolver: - name: list_records - part_aggregations: + name: object_without_lookahead + node: resolver: - name: list_records - parts: + name: object_without_lookahead + RetailGroupedBy: + graphql_fields_by_name: + active: resolver: - name: list_records - people: + name: object_with_lookahead + address: resolver: - name: list_records - person_aggregations: + name: object_with_lookahead + current_location: resolver: - name: list_records - sponsor_aggregations: + name: object_with_lookahead + customer_facing: resolver: - name: list_records - sponsors: + name: object_with_lookahead + established_on: resolver: - name: list_records - team_aggregations: + name: object_with_lookahead + platform: resolver: - name: list_records - teams: + name: object_with_lookahead + square_footage: resolver: - name: list_records - widget_aggregations: + name: object_with_lookahead + url: resolver: - name: list_records - widget_currencies: + name: object_with_lookahead + vehicle_type: resolver: - name: list_records - widget_currency_aggregations: + name: object_with_lookahead + RetailHighlights: + graphql_fields_by_name: + address: resolver: - name: list_records - widget_or_address_aggregations: + name: get_record_field_value + current_location: resolver: - name: list_records - widget_workspace_aggregations: + name: get_record_field_value + id: resolver: - name: list_records - widget_workspaces: + name: get_record_field_value + platform: resolver: - name: list_records - widgets: + name: get_record_field_value + url: resolver: - name: list_records - widgets_or_addresses: + name: get_record_field_value + vehicle_type: resolver: - name: list_records + name: get_record_field_value SearchHighlight: graphql_fields_by_name: path: @@ -6151,6 +6889,185 @@ object_types_by_name: graphql_fields_by_name: count: name_in_index: __counts + Store: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + address: + resolver: + name: get_record_field_value + current_location: + resolver: + name: get_record_field_value + customer_facing: + resolver: + name: get_record_field_value + established_on: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + square_footage: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: + resolver: + name: get_record_field_value + index_definition_names: + - distribution_channels + StoreAggregatedValues: + graphql_fields_by_name: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + current_location: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + id: + resolver: + name: object_with_lookahead + platform: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + url: + resolver: + name: object_with_lookahead + vehicle_type: + resolver: + name: object_with_lookahead + StoreAggregation: + elasticgraph_category: indexed_aggregation + graphql_fields_by_name: + aggregated_values: + resolver: + name: object_without_lookahead + count: + resolver: + name: object_without_lookahead + grouped_by: + resolver: + name: object_without_lookahead + source_type: Store + StoreAggregationConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + StoreAggregationEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + cursor: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + StoreConnection: + elasticgraph_category: relay_connection + graphql_fields_by_name: + edges: + resolver: + name: object_without_lookahead + nodes: + resolver: + name: object_without_lookahead + page_info: + resolver: + name: object_without_lookahead + total_edge_count: + resolver: + name: object_without_lookahead + StoreEdge: + elasticgraph_category: relay_edge + graphql_fields_by_name: + all_highlights: + resolver: + name: object_without_lookahead + cursor: + resolver: + name: object_without_lookahead + highlights: + resolver: + name: object_without_lookahead + node: + resolver: + name: object_without_lookahead + StoreGroupedBy: + graphql_fields_by_name: + active: + resolver: + name: object_with_lookahead + address: + resolver: + name: object_with_lookahead + current_location: + resolver: + name: object_with_lookahead + customer_facing: + resolver: + name: object_with_lookahead + established_on: + resolver: + name: object_with_lookahead + platform: + resolver: + name: object_with_lookahead + square_footage: + resolver: + name: object_with_lookahead + url: + resolver: + name: object_with_lookahead + vehicle_type: + resolver: + name: object_with_lookahead + StoreHighlights: + graphql_fields_by_name: + address: + resolver: + name: get_record_field_value + current_location: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + platform: + resolver: + name: get_record_field_value + url: + resolver: + name: get_record_field_value + vehicle_type: + resolver: + name: get_record_field_value StringConnection: elasticgraph_category: relay_connection graphql_fields_by_name: @@ -7084,6 +8001,48 @@ object_types_by_name: players_object: resolver: name: object_with_lookahead + ThirdPartyWholesale: + graphql_fields_by_name: + active: + resolver: + name: get_record_field_value + contract_terms: + resolver: + name: get_record_field_value + id: + resolver: + name: get_record_field_value + partner_name: + resolver: + name: get_record_field_value + index_definition_names: + - distribution_channels + update_targets: + - data_params: + __typename: + cardinality: one + active: + cardinality: one + contract_terms: + cardinality: one + partner_name: + cardinality: one + id_source: id + metadata_params: + relationship: + value: __self + sourceId: + cardinality: one + source_path: id + sourceType: + cardinality: one + source_path: type + version: + cardinality: one + relationship: __self + routing_value_source: id + script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a + type: ThirdPartyWholesale Widget: graphql_fields_by_name: amount_cents: diff --git a/config/schema/artifacts_with_apollo/schema.graphql b/config/schema/artifacts_with_apollo/schema.graphql index 41439d217..8f455456e 100644 --- a/config/schema/artifacts_with_apollo/schema.graphql +++ b/config/schema/artifacts_with_apollo/schema.graphql @@ -853,274 +853,6 @@ type Company implements NamedInventor @key(fields: "id") { stock_ticker: String } -""" -Type used to perform aggregation computations on `Company` fields. -""" -type CompanyAggregatedValues { - """ - Computed aggregate values for the `id` field. - """ - id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `name` field. - """ - name: NonNumericAggregatedValues - - """ - Computed aggregate values for the `stock_ticker` field. - """ - stock_ticker: NonNumericAggregatedValues -} - -""" -Return type representing a bucket of `Company` documents for an aggregations query. -""" -type CompanyAggregation { - """ - Provides computed aggregated values over all `Company` documents in an aggregation bucket. - """ - aggregated_values: CompanyAggregatedValues - - """ - The count of `Company` documents in an aggregation bucket. - """ - count: JsonSafeLong! - - """ - Used to specify the `Company` fields to group by. The returned values identify each aggregation bucket. - """ - grouped_by: CompanyGroupedBy -} - -""" -Represents a paginated collection of `CompanyAggregation` results. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type CompanyAggregationConnection { - """ - Wraps a specific `CompanyAggregation` to pair it with its pagination cursor. - """ - edges: [CompanyAggregationEdge!]! - - """ - The list of `CompanyAggregation` results. - """ - nodes: [CompanyAggregation!]! - - """ - Provides pagination-related information. - """ - page_info: PageInfo! -} - -""" -Represents a specific `CompanyAggregation` in the context of a `CompanyAggregationConnection`, -providing access to both the `CompanyAggregation` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type CompanyAggregationEdge { - """ - The `Cursor` of this `CompanyAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `CompanyAggregation`. - """ - cursor: Cursor - - """ - The `CompanyAggregation` of this edge. - """ - node: CompanyAggregation -} - -""" -Represents a paginated collection of `Company` results. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type CompanyConnection { - """ - Wraps a specific `Company` to pair it with its pagination cursor. - """ - edges: [CompanyEdge!]! - - """ - The list of `Company` results. - """ - nodes: [Company!]! - - """ - Provides pagination-related information. - """ - page_info: PageInfo! - - """ - The total number of edges available in this connection to paginate over. - """ - total_edge_count: JsonSafeLong! -} - -""" -Represents a specific `Company` in the context of a `CompanyConnection`, -providing access to both the `Company` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type CompanyEdge { - """ - All search highlights for this `Company`, indicating where in the indexed document the query matched. - """ - all_highlights: [SearchHighlight!]! - - """ - The `Cursor` of this `Company`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Company`. - """ - cursor: Cursor - - """ - Specific search highlights for this `Company`, providing matching snippets for the requested fields. - """ - highlights: CompanyHighlights - - """ - The `Company` of this edge. - """ - node: Company -} - -""" -Input type used to specify filters on `Company` fields. - -Will match all documents if passed as an empty object (or as `null`). -""" -input CompanyFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `CompanyFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. - """ - all_of: [CompanyFilterInput!] - - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. - """ - any_of: [CompanyFilterInput!] - - """ - Used to filter on the `id` field. - - When `null` or an empty object is passed, matches all documents. - """ - id: IDFilterInput - - """ - Used to filter on the `name` field. - - When `null` or an empty object is passed, matches all documents. - """ - name: StringFilterInput - - """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. - """ - not: CompanyFilterInput - - """ - Used to filter on the `stock_ticker` field. - - When `null` or an empty object is passed, matches all documents. - """ - stock_ticker: StringFilterInput -} - -""" -Type used to specify the `Company` fields to group by for aggregations. -""" -type CompanyGroupedBy { - """ - The `name` field value for this group. - """ - name: String - - """ - The `stock_ticker` field value for this group. - """ - stock_ticker: String -} - -""" -Type used to request desired `Company` search highlight fields. -""" -type CompanyHighlights { - """ - Search highlights for the `id`, providing snippets of the matching text. - """ - id: [String!]! - - """ - Search highlights for the `name`, providing snippets of the matching text. - """ - name: [String!]! - - """ - Search highlights for the `stock_ticker`, providing snippets of the matching text. - """ - stock_ticker: [String!]! -} - -""" -Enumerates the ways `Company`s can be sorted. -""" -enum CompanySortOrderInput { - """ - Sorts ascending by the `id` field. - """ - id_ASC - - """ - Sorts descending by the `id` field. - """ - id_DESC - - """ - Sorts ascending by the `name` field. - """ - name_ASC - - """ - Sorts descending by the `name` field. - """ - name_DESC - - """ - Sorts ascending by the `stock_ticker` field. - """ - stock_ticker_ASC - - """ - Sorts descending by the `stock_ticker` field. - """ - stock_ticker_DESC -} - type Component implements NamedEntity @key(fields: "id") { created_at: DateTime! dollar_widget: Widget @@ -3061,171 +2793,112 @@ enum DistanceUnitInput { YARD } -type ElectricalPart implements NamedEntity @key(fields: "id") { +interface DistributionChannel { + active: Boolean + id: ID! +} + +""" +Type used to perform aggregation computations on `DistributionChannel` fields. +""" +type DistributionChannelAggregatedValues { """ - Aggregations over the `components` data. + Computed aggregate values for the `active` field. """ - component_aggregations( - """ - Used to forward-paginate through the `component_aggregations`. When provided, the next page after the - provided cursor will be returned. + active: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Computed aggregate values for the `address` field. + """ + address: NonNumericAggregatedValues - """ - Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the - provided cursor will be returned. + """ + Computed aggregate values for the `contract_terms` field. + """ + contract_terms: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Computed aggregate values for the `current_location` field. + """ + current_location: NonNumericAggregatedValues - """ - Used to filter the `Component` documents that get aggregated over based on the provided criteria. - """ - filter: ComponentFilterInput + """ + Computed aggregate values for the `customer_facing` field. + """ + customer_facing: NonNumericAggregatedValues - """ - Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): ComponentAggregationConnection - components( - """ - Used to forward-paginate through the `components`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the `components`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the returned `components` based on the provided criteria. - """ - filter: ComponentFilterInput - - """ - Used in conjunction with the `after` argument to forward-paginate through the `components`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `components`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through the `components`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + """ + Computed aggregate values for the `established_on` field. + """ + established_on: DateAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues - """ - Used to specify how the returned `components` should be sorted. - """ - order_by: [ComponentSortOrderInput!] - ): ComponentConnection - created_at: DateTime! - id: ID! - manufacturer: Manufacturer - name: String - voltage: Int! -} + """ + Computed aggregate values for the `partner_name` field. + """ + partner_name: NonNumericAggregatedValues -""" -Type used to perform aggregation computations on `ElectricalPart` fields. -""" -type ElectricalPartAggregatedValues { """ - Computed aggregate values for the `created_at` field. + Computed aggregate values for the `platform` field. """ - created_at: DateTimeAggregatedValues + platform: NonNumericAggregatedValues """ - Computed aggregate values for the `id` field. + Computed aggregate values for the `square_footage` field. """ - id: NonNumericAggregatedValues + square_footage: IntAggregatedValues """ - Computed aggregate values for the `name` field. + Computed aggregate values for the `url` field. """ - name: NonNumericAggregatedValues + url: NonNumericAggregatedValues """ - Computed aggregate values for the `voltage` field. + Computed aggregate values for the `vehicle_type` field. """ - voltage: IntAggregatedValues + vehicle_type: NonNumericAggregatedValues } """ -Return type representing a bucket of `ElectricalPart` documents for an aggregations query. +Return type representing a bucket of `DistributionChannel` documents for an aggregations query. """ -type ElectricalPartAggregation { +type DistributionChannelAggregation { """ - Provides computed aggregated values over all `ElectricalPart` documents in an aggregation bucket. + Provides computed aggregated values over all `DistributionChannel` documents in an aggregation bucket. """ - aggregated_values: ElectricalPartAggregatedValues + aggregated_values: DistributionChannelAggregatedValues """ - The count of `ElectricalPart` documents in an aggregation bucket. + The count of `DistributionChannel` documents in an aggregation bucket. """ count: JsonSafeLong! """ - Used to specify the `ElectricalPart` fields to group by. The returned values identify each aggregation bucket. + Used to specify the `DistributionChannel` fields to group by. The returned values identify each aggregation bucket. """ - grouped_by: ElectricalPartGroupedBy + grouped_by: DistributionChannelGroupedBy } """ -Represents a paginated collection of `ElectricalPartAggregation` results. +Represents a paginated collection of `DistributionChannelAggregation` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type ElectricalPartAggregationConnection { +type DistributionChannelAggregationConnection { """ - Wraps a specific `ElectricalPartAggregation` to pair it with its pagination cursor. + Wraps a specific `DistributionChannelAggregation` to pair it with its pagination cursor. """ - edges: [ElectricalPartAggregationEdge!]! + edges: [DistributionChannelAggregationEdge!]! """ - The list of `ElectricalPartAggregation` results. + The list of `DistributionChannelAggregation` results. """ - nodes: [ElectricalPartAggregation!]! + nodes: [DistributionChannelAggregation!]! """ Provides pagination-related information. @@ -3234,41 +2907,42 @@ type ElectricalPartAggregationConnection { } """ -Represents a specific `ElectricalPartAggregation` in the context of a `ElectricalPartAggregationConnection`, -providing access to both the `ElectricalPartAggregation` and query-specific information such as the pagination `Cursor`. +Represents a specific `DistributionChannelAggregation` in the context of a `DistributionChannelAggregationConnection`, +providing access to both the `DistributionChannelAggregation` and query-specific +information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type ElectricalPartAggregationEdge { +type DistributionChannelAggregationEdge { """ - The `Cursor` of this `ElectricalPartAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `ElectricalPartAggregation`. + The `Cursor` of this `DistributionChannelAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `DistributionChannelAggregation`. """ cursor: Cursor """ - The `ElectricalPartAggregation` of this edge. + The `DistributionChannelAggregation` of this edge. """ - node: ElectricalPartAggregation + node: DistributionChannelAggregation } """ -Represents a paginated collection of `ElectricalPart` results. +Represents a paginated collection of `DistributionChannel` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type ElectricalPartConnection { +type DistributionChannelConnection { """ - Wraps a specific `ElectricalPart` to pair it with its pagination cursor. + Wraps a specific `DistributionChannel` to pair it with its pagination cursor. """ - edges: [ElectricalPartEdge!]! + edges: [DistributionChannelEdge!]! """ - The list of `ElectricalPart` results. + The list of `DistributionChannel` results. """ - nodes: [ElectricalPart!]! + nodes: [DistributionChannel!]! """ Provides pagination-related information. @@ -3282,52 +2956,66 @@ type ElectricalPartConnection { } """ -Represents a specific `ElectricalPart` in the context of a `ElectricalPartConnection`, -providing access to both the `ElectricalPart` and query-specific information such as the pagination `Cursor`. +Represents a specific `DistributionChannel` in the context of a `DistributionChannelConnection`, +providing access to both the `DistributionChannel` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type ElectricalPartEdge { +type DistributionChannelEdge { """ - All search highlights for this `ElectricalPart`, indicating where in the indexed document the query matched. + All search highlights for this `DistributionChannel`, indicating where in the indexed document the query matched. """ all_highlights: [SearchHighlight!]! """ - The `Cursor` of this `ElectricalPart`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `ElectricalPart`. + The `Cursor` of this `DistributionChannel`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `DistributionChannel`. """ cursor: Cursor """ - Specific search highlights for this `ElectricalPart`, providing matching snippets for the requested fields. + Specific search highlights for this `DistributionChannel`, providing matching snippets for the requested fields. """ - highlights: ElectricalPartHighlights + highlights: DistributionChannelHighlights """ - The `ElectricalPart` of this edge. + The `DistributionChannel` of this edge. """ - node: ElectricalPart + node: DistributionChannel } """ -Input type used to specify filters on `ElectricalPart` fields. +Input type used to specify filters on `DistributionChannel` fields. Will match all documents if passed as an empty object (or as `null`). """ -input ElectricalPartFilterInput { +input DistributionChannelFilterInput { + """ + Used to filter on the `active` field. + + When `null` or an empty object is passed, matches all documents. + """ + active: BooleanFilterInput + + """ + Used to filter on the `address` field. + + When `null` or an empty object is passed, matches all documents. + """ + address: StringFilterInput + """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `ElectricalPartFilterInput` input because of + be provided on a single `DistributionChannelFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [ElectricalPartFilterInput!] + all_of: [DistributionChannelFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -3336,28 +3024,42 @@ input ElectricalPartFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [ElectricalPartFilterInput!] + any_of: [DistributionChannelFilterInput!] """ - Used to filter on the `created_at` field. + Used to filter on the `contract_terms` field. When `null` or an empty object is passed, matches all documents. """ - created_at: DateTimeFilterInput + contract_terms: StringFilterInput """ - Used to filter on the `id` field. + Used to filter on the `current_location` field. When `null` or an empty object is passed, matches all documents. """ - id: IDFilterInput + current_location: StringFilterInput """ - Used to filter on the `name` field. + Used to filter on the `customer_facing` field. When `null` or an empty object is passed, matches all documents. """ - name: StringFilterInput + customer_facing: BooleanFilterInput + + """ + Used to filter on the `established_on` field. + + When `null` or an empty object is passed, matches all documents. + """ + established_on: DateFilterInput + + """ + Used to filter on the `id` field. + + When `null` or an empty object is passed, matches all documents. + """ + id: IDFilterInput """ Matches records where the provided sub-filter evaluates to false. @@ -3365,610 +3067,521 @@ input ElectricalPartFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: ElectricalPartFilterInput + not: DistributionChannelFilterInput """ - Used to filter on the `voltage` field. + Used to filter on the `partner_name` field. When `null` or an empty object is passed, matches all documents. """ - voltage: IntFilterInput -} + partner_name: StringFilterInput -""" -Type used to specify the `ElectricalPart` fields to group by for aggregations. -""" -type ElectricalPartGroupedBy { - """ - Offers the different grouping options for the `created_at` value within this group. """ - created_at: DateTimeGroupedBy + Used to filter on the `platform` field. + When `null` or an empty object is passed, matches all documents. """ - The `name` field value for this group. - """ - name: String + platform: StringFilterInput """ - The `voltage` field value for this group. + Used to filter on the `square_footage` field. + + When `null` or an empty object is passed, matches all documents. """ - voltage: Int -} + square_footage: IntFilterInput -""" -Type used to request desired `ElectricalPart` search highlight fields. -""" -type ElectricalPartHighlights { """ - Search highlights for the `id`, providing snippets of the matching text. + Used to filter on the `url` field. + + When `null` or an empty object is passed, matches all documents. """ - id: [String!]! + url: StringFilterInput """ - Search highlights for the `name`, providing snippets of the matching text. + Used to filter on the `vehicle_type` field. + + When `null` or an empty object is passed, matches all documents. """ - name: [String!]! + vehicle_type: StringFilterInput } """ -Enumerates the ways `ElectricalPart`s can be sorted. +Type used to specify the `DistributionChannel` fields to group by for aggregations. """ -enum ElectricalPartSortOrderInput { +type DistributionChannelGroupedBy { """ - Sorts ascending by the `created_at` field. + The `active` field value for this group. """ - created_at_ASC + active: Boolean """ - Sorts descending by the `created_at` field. + The `address` field value for this group. """ - created_at_DESC + address: String """ - Sorts ascending by the `id` field. + The `contract_terms` field value for this group. """ - id_ASC + contract_terms: String """ - Sorts descending by the `id` field. + The `current_location` field value for this group. """ - id_DESC + current_location: String """ - Sorts ascending by the `name` field. + The `customer_facing` field value for this group. """ - name_ASC + customer_facing: Boolean """ - Sorts descending by the `name` field. + Offers the different grouping options for the `established_on` value within this group. """ - name_DESC + established_on: DateGroupedBy """ - Sorts ascending by the `voltage` field. + The `partner_name` field value for this group. """ - voltage_ASC + partner_name: String """ - Sorts descending by the `voltage` field. + The `platform` field value for this group. """ - voltage_DESC -} + platform: String -""" -A custom scalar type required by the [Apollo Federation subgraph -spec](https://www.apollographql.com/docs/federation/subgraph-spec/#scalar-fieldset): + """ + The `square_footage` field value for this group. + """ + square_footage: Int -> This string-serialized scalar represents a set of fields that's passed to a federated directive, -> such as `@key`, `@requires`, or `@provides`. -> -> Grammatically, a `FieldSet` is a [selection set](http://spec.graphql.org/draft/#sec-Selection-Sets) -> minus the outermost curly braces. It can represent a single field (`"upc"`), multiple fields -> (`"id countryCode"`), and even nested selection sets (`"id organization { id }"`). + """ + The `url` field value for this group. + """ + url: String -Not intended for use by clients other than Apollo. -""" -scalar FieldSet + """ + The `vehicle_type` field value for this group. + """ + vehicle_type: String +} """ -A return type used from aggregations to provided aggregated values over `Float` fields. +Type used to request desired `DistributionChannel` search highlight fields. """ -type FloatAggregatedValues @shareable { +type DistributionChannelHighlights { """ - The average (mean) of the field values within this grouping. + Search highlights for the `address`, providing snippets of the matching text. + """ + address: [String!]! - The computation of this value may introduce additional imprecision (on top of the - natural imprecision of floats) when it deals with intermediary values that are - outside the `JsonSafeLong` range (-9,007,199,254,740,991 to 9,007,199,254,740,991). """ - approximate_avg: Float + Search highlights for the `contract_terms`, providing snippets of the matching text. + """ + contract_terms: [String!]! """ - An approximation of the number of unique values for this field within this grouping. + Search highlights for the `current_location`, providing snippets of the matching text. + """ + current_location: [String!]! - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. """ - approximate_distinct_value_count: JsonSafeLong + Search highlights for the `id`, providing snippets of the matching text. + """ + id: [String!]! """ - The sum of the field values within this grouping. + Search highlights for the `partner_name`, providing snippets of the matching text. + """ + partner_name: [String!]! - As with all double-precision `Float` values, operations are subject to floating-point loss - of precision, so the value may be approximate. """ - approximate_sum: Float! + Search highlights for the `platform`, providing snippets of the matching text. + """ + platform: [String!]! """ - The maximum of the field values within this grouping. - - The value will be "exact" in that the aggregation computation will return - the exact value of the largest float that has been indexed, without - introducing any new imprecision. However, floats by their nature are - naturally imprecise since they cannot precisely represent all real numbers. - """ - exact_max: Float + Search highlights for the `url`, providing snippets of the matching text. + """ + url: [String!]! """ - The minimum of the field values within this grouping. - - The value will be "exact" in that the aggregation computation will return - the exact value of the smallest float that has been indexed, without - introducing any new imprecision. However, floats by their nature are - naturally imprecise since they cannot precisely represent all real numbers. + Search highlights for the `vehicle_type`, providing snippets of the matching text. """ - exact_min: Float + vehicle_type: [String!]! } """ -Input type used to specify filters on `Float` fields. - -Will match all documents if passed as an empty object (or as `null`). +Enumerates the ways `DistributionChannel`s can be sorted. """ -input FloatFilterInput { +enum DistributionChannelSortOrderInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `FloatFilterInput` input because of collisions between - key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Sorts ascending by the `address` field. """ - all_of: [FloatFilterInput!] + address_ASC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Sorts descending by the `address` field. """ - any_of: [FloatFilterInput!] + address_DESC """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. - - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + Sorts ascending by the `contract_terms` field. """ - equal_to_any_of: [Float] + contract_terms_ASC """ - Matches records where the field value is greater than (>) the provided value. - - When `null` is passed, matches all documents. + Sorts descending by the `contract_terms` field. """ - gt: Float + contract_terms_DESC """ - Matches records where the field value is greater than or equal to (>=) the provided value. - - When `null` is passed, matches all documents. + Sorts ascending by the `current_location` field. """ - gte: Float + current_location_ASC """ - Matches records where the field value is less than (<) the provided value. - - When `null` is passed, matches all documents. + Sorts descending by the `current_location` field. """ - lt: Float + current_location_DESC """ - Matches records where the field value is less than or equal to (<=) the provided value. - - When `null` is passed, matches all documents. + Sorts ascending by the `established_on` field. """ - lte: Float + established_on_ASC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Sorts descending by the `established_on` field. """ - not: FloatFilterInput -} + established_on_DESC -""" -Geographic coordinates representing a location on the Earth's surface. -""" -type GeoLocation @shareable { """ - Angular distance north or south of the Earth's equator, measured in degrees from -90 to +90. + Sorts ascending by the `id` field. """ - latitude: Float + id_ASC """ - Angular distance east or west of the Prime Meridian at Greenwich, UK, measured in degrees from -180 to +180. + Sorts descending by the `id` field. """ - longitude: Float -} + id_DESC -""" -Input type used to specify distance filtering parameters on `GeoLocation` fields. -""" -input GeoLocationDistanceFilterInput { """ - Angular distance north or south of the Earth's equator, measured in degrees from -90 to +90. + Sorts ascending by the `partner_name` field. """ - latitude: Float! + partner_name_ASC """ - Angular distance east or west of the Prime Meridian at Greenwich, UK, measured in degrees from -180 to +180. + Sorts descending by the `partner_name` field. """ - longitude: Float! + partner_name_DESC """ - Maximum distance (of the provided `unit`) to consider "near" the location identified - by `latitude` and `longitude`. + Sorts ascending by the `platform` field. """ - max_distance: Float! + platform_ASC """ - Determines the unit of the specified `max_distance`. + Sorts descending by the `platform` field. """ - unit: DistanceUnitInput! -} + platform_DESC -""" -Input type used to specify filters on `GeoLocation` fields. - -Will match all documents if passed as an empty object (or as `null`). -""" -input GeoLocationFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `GeoLocationFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Sorts ascending by the `square_footage` field. """ - all_of: [GeoLocationFilterInput!] + square_footage_ASC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Sorts descending by the `square_footage` field. """ - any_of: [GeoLocationFilterInput!] + square_footage_DESC """ - Matches records where the field's geographic location is within a specified distance from the - location identified by `latitude` and `longitude`. - - When `null` or an empty object is passed, matches all documents. + Sorts ascending by the `url` field. """ - near: GeoLocationDistanceFilterInput + url_ASC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Sorts descending by the `url` field. """ - not: GeoLocationFilterInput -} - -type GeoShape { - coordinates: [Float!]! - type: String -} - -""" -Input type used to specify filters on `ID` fields. + url_DESC -Will match all documents if passed as an empty object (or as `null`). -""" -input IDFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IDFilterInput` input because of collisions between - key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Sorts ascending by the `vehicle_type` field. """ - all_of: [IDFilterInput!] + vehicle_type_ASC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Sorts descending by the `vehicle_type` field. """ - any_of: [IDFilterInput!] + vehicle_type_DESC +} +type ElectricalPart implements NamedEntity @key(fields: "id") { """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. - - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + Aggregations over the `components` data. """ - equal_to_any_of: [ID] + component_aggregations( + """ + Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + provided cursor will be returned. - """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor - When `null` or an empty object is passed, matches no documents. - """ - not: IDFilterInput -} + """ + Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + provided cursor will be returned. -""" -Input type used to specify filters on elements of a `[ID]` field. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor -Will match all documents if passed as an empty object (or as `null`). -""" -input IDListElementFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + """ + Used to filter the `Component` documents that get aggregated over based on the provided criteria. + """ + filter: ComponentFilterInput - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IDListElementFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + """ + Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). - When `null` or an empty list is passed, matches all documents. - """ - all_of: [IDListElementFilterInput!] + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + """ + Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. - """ - any_of: [IDListElementFilterInput!] + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ComponentAggregationConnection + components( + """ + Used to forward-paginate through the `components`. When provided, the next page after the + provided cursor will be returned. - """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. - """ - equal_to_any_of: [ID!] -} + """ + Used to backward-paginate through the `components`. When provided, the previous page before the + provided cursor will be returned. -""" -Input type used to specify filters on `[ID]` fields. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor -Will match all documents if passed as an empty object (or as `null`). -""" -input IDListFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + """ + Used to filter the returned `components` based on the provided criteria. + """ + filter: ComponentFilterInput - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IDListFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + """ + Used in conjunction with the `after` argument to forward-paginate through the `components`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `components`, if no `after` cursor is provided). - When `null` or an empty list is passed, matches all documents. - """ - all_of: [IDListFilterInput!] + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + """ + Used in conjunction with the `before` argument to backward-paginate through the `components`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `components`, if no `before` cursor is provided). - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. - """ - any_of: [IDListFilterInput!] + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int - """ - Matches records where any of the list elements match the provided sub-filter. + """ + Used to specify how the returned `components` should be sorted. + """ + order_by: [ComponentSortOrderInput!] + ): ComponentConnection + created_at: DateTime! + id: ID! + manufacturer: Manufacturer + name: String + voltage: Int! +} - When `null` or an empty object is passed, matches all documents. +""" +Type used to perform aggregation computations on `ElectricalPart` fields. +""" +type ElectricalPartAggregatedValues { """ - any_satisfy: IDListElementFilterInput - + Computed aggregate values for the `created_at` field. """ - Used to filter on the number of non-null elements in this list field. + created_at: DateTimeAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - count: IntFilterInput + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Computed aggregate values for the `name` field. + """ + name: NonNumericAggregatedValues - When `null` or an empty object is passed, matches no documents. """ - not: IDListFilterInput + Computed aggregate values for the `voltage` field. + """ + voltage: IntAggregatedValues } """ -A return type used from aggregations to provided aggregated values over `Int` fields. +Return type representing a bucket of `ElectricalPart` documents for an aggregations query. """ -type IntAggregatedValues @shareable { +type ElectricalPartAggregation { """ - The average (mean) of the field values within this grouping. - - Note that the returned value is approximate. Imprecision can be introduced by the computation if - any intermediary values fall outside the `JsonSafeLong` range (-9,007,199,254,740,991 - to 9,007,199,254,740,991). + Provides computed aggregated values over all `ElectricalPart` documents in an aggregation bucket. """ - approximate_avg: Float + aggregated_values: ElectricalPartAggregatedValues """ - An approximation of the number of unique values for this field within this grouping. - - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. + The count of `ElectricalPart` documents in an aggregation bucket. """ - approximate_distinct_value_count: JsonSafeLong + count: JsonSafeLong! """ - The (approximate) sum of the field values within this grouping. - - Sums of large `Int` values can result in overflow, where the exact sum cannot - fit in a `JsonSafeLong` return value. This field, as a double-precision `Float`, can - represent larger sums, but the value may only be approximate. + Used to specify the `ElectricalPart` fields to group by. The returned values identify each aggregation bucket. """ - approximate_sum: Float! + grouped_by: ElectricalPartGroupedBy +} - """ - The maximum of the field values within this grouping. +""" +Represents a paginated collection of `ElectricalPartAggregation` results. - So long as the grouping contains at least one non-null value for the - underlying indexed field, this will return an exact non-null value. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type ElectricalPartAggregationConnection { """ - exact_max: Int - + Wraps a specific `ElectricalPartAggregation` to pair it with its pagination cursor. """ - The minimum of the field values within this grouping. + edges: [ElectricalPartAggregationEdge!]! - So long as the grouping contains at least one non-null value for the - underlying indexed field, this will return an exact non-null value. """ - exact_min: Int - + The list of `ElectricalPartAggregation` results. """ - The exact sum of the field values within this grouping, if it fits in a `JsonSafeLong`. + nodes: [ElectricalPartAggregation!]! - Sums of large `Int` values can result in overflow, where the exact sum cannot - fit in a `JsonSafeLong`. In that case, `null` will be returned, and `approximate_sum` - can be used to get an approximate value. """ - exact_sum: JsonSafeLong + Provides pagination-related information. + """ + page_info: PageInfo! } """ -Input type used to specify filters on `Int` fields. +Represents a specific `ElectricalPartAggregation` in the context of a `ElectricalPartAggregationConnection`, +providing access to both the `ElectricalPartAggregation` and query-specific information such as the pagination `Cursor`. -Will match all documents if passed as an empty object (or as `null`). +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -input IntFilterInput { +type ElectricalPartAggregationEdge { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IntFilterInput` input because of collisions between - key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + The `Cursor` of this `ElectricalPartAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `ElectricalPartAggregation`. """ - all_of: [IntFilterInput!] + cursor: Cursor """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + The `ElectricalPartAggregation` of this edge. """ - any_of: [IntFilterInput!] + node: ElectricalPartAggregation +} - """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. +""" +Represents a paginated collection of `ElectricalPart` results. - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type ElectricalPartConnection { """ - equal_to_any_of: [Int] - + Wraps a specific `ElectricalPart` to pair it with its pagination cursor. """ - Matches records where the field value is greater than (>) the provided value. + edges: [ElectricalPartEdge!]! - When `null` is passed, matches all documents. """ - gt: Int - + The list of `ElectricalPart` results. """ - Matches records where the field value is greater than or equal to (>=) the provided value. + nodes: [ElectricalPart!]! - When `null` is passed, matches all documents. """ - gte: Int - + Provides pagination-related information. """ - Matches records where the field value is less than (<) the provided value. + page_info: PageInfo! - When `null` is passed, matches all documents. """ - lt: Int + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! +} + +""" +Represents a specific `ElectricalPart` in the context of a `ElectricalPartConnection`, +providing access to both the `ElectricalPart` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type ElectricalPartEdge { """ - Matches records where the field value is less than or equal to (<=) the provided value. + All search highlights for this `ElectricalPart`, indicating where in the indexed document the query matched. + """ + all_highlights: [SearchHighlight!]! - When `null` is passed, matches all documents. """ - lte: Int + The `Cursor` of this `ElectricalPart`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `ElectricalPart`. + """ + cursor: Cursor """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Specific search highlights for this `ElectricalPart`, providing matching snippets for the requested fields. + """ + highlights: ElectricalPartHighlights - When `null` or an empty object is passed, matches no documents. """ - not: IntFilterInput + The `ElectricalPart` of this edge. + """ + node: ElectricalPart } """ -Input type used to specify filters on elements of a `[Int]` field. +Input type used to specify filters on `ElectricalPart` fields. Will match all documents if passed as an empty object (or as `null`). """ -input IntListElementFilterInput { +input ElectricalPartFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IntListElementFilterInput` input because of + be provided on a single `ElectricalPartFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [IntListElementFilterInput!] + all_of: [ElectricalPartFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -3977,262 +3590,209 @@ input IntListElementFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [IntListElementFilterInput!] + any_of: [ElectricalPartFilterInput!] """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. + Used to filter on the `created_at` field. - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + When `null` or an empty object is passed, matches all documents. """ - equal_to_any_of: [Int!] + created_at: DateTimeFilterInput """ - Matches records where the field value is greater than (>) the provided value. + Used to filter on the `id` field. - When `null` is passed, matches all documents. + When `null` or an empty object is passed, matches all documents. """ - gt: Int + id: IDFilterInput """ - Matches records where the field value is greater than or equal to (>=) the provided value. + Used to filter on the `name` field. - When `null` is passed, matches all documents. + When `null` or an empty object is passed, matches all documents. """ - gte: Int + name: StringFilterInput """ - Matches records where the field value is less than (<) the provided value. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - When `null` is passed, matches all documents. + When `null` or an empty object is passed, matches no documents. """ - lt: Int + not: ElectricalPartFilterInput """ - Matches records where the field value is less than or equal to (<=) the provided value. + Used to filter on the `voltage` field. - When `null` is passed, matches all documents. + When `null` or an empty object is passed, matches all documents. """ - lte: Int + voltage: IntFilterInput } """ -Input type used to specify filters on `[Int]` fields. - -Will match all documents if passed as an empty object (or as `null`). +Type used to specify the `ElectricalPart` fields to group by for aggregations. """ -input IntListFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `IntListFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. - """ - all_of: [IntListFilterInput!] - - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. - """ - any_of: [IntListFilterInput!] - +type ElectricalPartGroupedBy { """ - Matches records where any of the list elements match the provided sub-filter. - - When `null` or an empty object is passed, matches all documents. + Offers the different grouping options for the `created_at` value within this group. """ - any_satisfy: IntListElementFilterInput + created_at: DateTimeGroupedBy """ - Used to filter on the number of non-null elements in this list field. - - When `null` or an empty object is passed, matches all documents. + The `name` field value for this group. """ - count: IntFilterInput + name: String """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + The `voltage` field value for this group. """ - not: IntListFilterInput + voltage: Int } -union Inventor = Company | Person - """ -Type used to perform aggregation computations on `Inventor` fields. +Type used to request desired `ElectricalPart` search highlight fields. """ -type InventorAggregatedValues { - """ - Computed aggregate values for the `id` field. - """ - id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `name` field. - """ - name: NonNumericAggregatedValues - +type ElectricalPartHighlights { """ - Computed aggregate values for the `nationality` field. + Search highlights for the `id`, providing snippets of the matching text. """ - nationality: NonNumericAggregatedValues + id: [String!]! """ - Computed aggregate values for the `stock_ticker` field. + Search highlights for the `name`, providing snippets of the matching text. """ - stock_ticker: NonNumericAggregatedValues + name: [String!]! } """ -Return type representing a bucket of `Inventor` documents for an aggregations query. +Enumerates the ways `ElectricalPart`s can be sorted. """ -type InventorAggregation { +enum ElectricalPartSortOrderInput { """ - Provides computed aggregated values over all `Inventor` documents in an aggregation bucket. + Sorts ascending by the `created_at` field. """ - aggregated_values: InventorAggregatedValues + created_at_ASC """ - The count of `Inventor` documents in an aggregation bucket. + Sorts descending by the `created_at` field. """ - count: JsonSafeLong! + created_at_DESC """ - Used to specify the `Inventor` fields to group by. The returned values identify each aggregation bucket. + Sorts ascending by the `id` field. """ - grouped_by: InventorGroupedBy -} - -""" -Represents a paginated collection of `InventorAggregation` results. + id_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type InventorAggregationConnection { """ - Wraps a specific `InventorAggregation` to pair it with its pagination cursor. + Sorts descending by the `id` field. """ - edges: [InventorAggregationEdge!]! + id_DESC """ - The list of `InventorAggregation` results. + Sorts ascending by the `name` field. """ - nodes: [InventorAggregation!]! + name_ASC """ - Provides pagination-related information. + Sorts descending by the `name` field. """ - page_info: PageInfo! -} - -""" -Represents a specific `InventorAggregation` in the context of a `InventorAggregationConnection`, -providing access to both the `InventorAggregation` and query-specific information such as the pagination `Cursor`. + name_DESC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type InventorAggregationEdge { """ - The `Cursor` of this `InventorAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `InventorAggregation`. + Sorts ascending by the `voltage` field. """ - cursor: Cursor + voltage_ASC """ - The `InventorAggregation` of this edge. + Sorts descending by the `voltage` field. """ - node: InventorAggregation + voltage_DESC } """ -Represents a paginated collection of `Inventor` results. +A custom scalar type required by the [Apollo Federation subgraph +spec](https://www.apollographql.com/docs/federation/subgraph-spec/#scalar-fieldset): -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +> This string-serialized scalar represents a set of fields that's passed to a federated directive, +> such as `@key`, `@requires`, or `@provides`. +> +> Grammatically, a `FieldSet` is a [selection set](http://spec.graphql.org/draft/#sec-Selection-Sets) +> minus the outermost curly braces. It can represent a single field (`"upc"`), multiple fields +> (`"id countryCode"`), and even nested selection sets (`"id organization { id }"`). + +Not intended for use by clients other than Apollo. """ -type InventorConnection { - """ - Wraps a specific `Inventor` to pair it with its pagination cursor. - """ - edges: [InventorEdge!]! +scalar FieldSet +""" +A return type used from aggregations to provided aggregated values over `Float` fields. +""" +type FloatAggregatedValues @shareable { """ - The list of `Inventor` results. - """ - nodes: [Inventor!]! + The average (mean) of the field values within this grouping. + The computation of this value may introduce additional imprecision (on top of the + natural imprecision of floats) when it deals with intermediary values that are + outside the `JsonSafeLong` range (-9,007,199,254,740,991 to 9,007,199,254,740,991). """ - Provides pagination-related information. - """ - page_info: PageInfo! + approximate_avg: Float """ - The total number of edges available in this connection to paginate over. - """ - total_edge_count: JsonSafeLong! -} - -""" -Represents a specific `Inventor` in the context of a `InventorConnection`, -providing access to both the `Inventor` and query-specific information such as the pagination `Cursor`. + An approximation of the number of unique values for this field within this grouping. -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type InventorEdge { - """ - All search highlights for this `Inventor`, indicating where in the indexed document the query matched. + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. """ - all_highlights: [SearchHighlight!]! + approximate_distinct_value_count: JsonSafeLong """ - The `Cursor` of this `Inventor`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Inventor`. + The sum of the field values within this grouping. + + As with all double-precision `Float` values, operations are subject to floating-point loss + of precision, so the value may be approximate. """ - cursor: Cursor + approximate_sum: Float! """ - Specific search highlights for this `Inventor`, providing matching snippets for the requested fields. + The maximum of the field values within this grouping. + + The value will be "exact" in that the aggregation computation will return + the exact value of the largest float that has been indexed, without + introducing any new imprecision. However, floats by their nature are + naturally imprecise since they cannot precisely represent all real numbers. """ - highlights: InventorHighlights + exact_max: Float """ - The `Inventor` of this edge. + The minimum of the field values within this grouping. + + The value will be "exact" in that the aggregation computation will return + the exact value of the smallest float that has been indexed, without + introducing any new imprecision. However, floats by their nature are + naturally imprecise since they cannot precisely represent all real numbers. """ - node: Inventor + exact_min: Float } """ -Input type used to specify filters on `Inventor` fields. +Input type used to specify filters on `Float` fields. Will match all documents if passed as an empty object (or as `null`). """ -input InventorFilterInput { +input FloatFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `InventorFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `FloatFilterInput` input because of collisions between + key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [InventorFilterInput!] + all_of: [FloatFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4241,166 +3801,283 @@ input InventorFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [InventorFilterInput!] + any_of: [FloatFilterInput!] """ - Used to filter on the `id` field. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - id: IDFilterInput + equal_to_any_of: [Float] """ - Used to filter on the `name` field. + Matches records where the field value is greater than (>) the provided value. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. """ - name: StringFilterInput + gt: Float """ - Used to filter on the `nationality` field. + Matches records where the field value is greater than or equal to (>=) the provided value. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. """ - nationality: StringFilterInput + gte: Float """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Matches records where the field value is less than (<) the provided value. - When `null` or an empty object is passed, matches no documents. + When `null` is passed, matches all documents. """ - not: InventorFilterInput + lt: Float """ - Used to filter on the `stock_ticker` field. + Matches records where the field value is less than or equal to (<=) the provided value. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. """ - stock_ticker: StringFilterInput -} + lte: Float -""" -Type used to specify the `Inventor` fields to group by for aggregations. -""" -type InventorGroupedBy { """ - The `name` field value for this group. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. """ - name: String + not: FloatFilterInput +} +""" +Geographic coordinates representing a location on the Earth's surface. +""" +type GeoLocation @shareable { """ - The `nationality` field value for this group. + Angular distance north or south of the Earth's equator, measured in degrees from -90 to +90. """ - nationality: String + latitude: Float """ - The `stock_ticker` field value for this group. + Angular distance east or west of the Prime Meridian at Greenwich, UK, measured in degrees from -180 to +180. """ - stock_ticker: String + longitude: Float } """ -Type used to request desired `Inventor` search highlight fields. +Input type used to specify distance filtering parameters on `GeoLocation` fields. """ -type InventorHighlights { +input GeoLocationDistanceFilterInput { """ - Search highlights for the `id`, providing snippets of the matching text. + Angular distance north or south of the Earth's equator, measured in degrees from -90 to +90. """ - id: [String!]! + latitude: Float! """ - Search highlights for the `name`, providing snippets of the matching text. + Angular distance east or west of the Prime Meridian at Greenwich, UK, measured in degrees from -180 to +180. """ - name: [String!]! + longitude: Float! """ - Search highlights for the `nationality`, providing snippets of the matching text. + Maximum distance (of the provided `unit`) to consider "near" the location identified + by `latitude` and `longitude`. """ - nationality: [String!]! + max_distance: Float! """ - Search highlights for the `stock_ticker`, providing snippets of the matching text. + Determines the unit of the specified `max_distance`. """ - stock_ticker: [String!]! + unit: DistanceUnitInput! } """ -Enumerates the ways `Inventor`s can be sorted. +Input type used to specify filters on `GeoLocation` fields. + +Will match all documents if passed as an empty object (or as `null`). """ -enum InventorSortOrderInput { +input GeoLocationFilterInput { """ - Sorts ascending by the `id` field. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `GeoLocationFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - id_ASC + all_of: [GeoLocationFilterInput!] """ - Sorts descending by the `id` field. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - id_DESC + any_of: [GeoLocationFilterInput!] """ - Sorts ascending by the `name` field. + Matches records where the field's geographic location is within a specified distance from the + location identified by `latitude` and `longitude`. + + When `null` or an empty object is passed, matches all documents. """ - name_ASC + near: GeoLocationDistanceFilterInput """ - Sorts descending by the `name` field. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. """ - name_DESC + not: GeoLocationFilterInput +} + +type GeoShape { + coordinates: [Float!]! + type: String +} +""" +Input type used to specify filters on `ID` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input IDFilterInput { """ - Sorts ascending by the `nationality` field. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `IDFilterInput` input because of collisions between + key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - nationality_ASC + all_of: [IDFilterInput!] """ - Sorts descending by the `nationality` field. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - nationality_DESC + any_of: [IDFilterInput!] """ - Sorts ascending by the `stock_ticker` field. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. + + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - stock_ticker_ASC + equal_to_any_of: [ID] """ - Sorts descending by the `stock_ticker` field. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. """ - stock_ticker_DESC + not: IDFilterInput } """ -A numeric type for large integer values that can serialize safely as JSON. +Input type used to specify filters on elements of a `[ID]` field. -While JSON itself has no hard limit on the size of integers, the RFC-7159 spec -mentions that values outside of the range -9,007,199,254,740,991 (-(2^53) + 1) -to 9,007,199,254,740,991 (2^53 - 1) may not be interopable with all JSON -implementations. As it turns out, the number implementation used by JavaScript -has this issue. When you parse a JSON string that contains a numeric value like -`4693522397653681111`, the parsed result will contain a rounded value like -`4693522397653681000`. +Will match all documents if passed as an empty object (or as `null`). +""" +input IDListElementFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. -While this is entirely a client-side problem, we want to preserve maximum compatibility -with common client languages. Given the ubiquity of GraphiQL as a GraphQL client, -we want to avoid this problem. + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `IDListElementFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. -Our solution is to support two separate types: + When `null` or an empty list is passed, matches all documents. + """ + all_of: [IDListElementFilterInput!] -- This type (`JsonSafeLong`) is serialized as a number, but limits values to the safely - serializable range. -- The `LongString` type supports long values that use all 64 bits, but serializes as a - string rather than a number, avoiding the JavaScript compatibility problems. + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [IDListElementFilterInput!] + + """ + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. + + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. + """ + equal_to_any_of: [ID!] +} -For more background, see the [JavaScript `Number.MAX_SAFE_INTEGER` -docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER). """ -scalar JsonSafeLong +Input type used to specify filters on `[ID]` fields. +Will match all documents if passed as an empty object (or as `null`). """ -A return type used from aggregations to provided aggregated values over `JsonSafeLong` fields. +input IDListFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `IDListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [IDListFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [IDListFilterInput!] + + """ + Matches records where any of the list elements match the provided sub-filter. + + When `null` or an empty object is passed, matches all documents. + """ + any_satisfy: IDListElementFilterInput + + """ + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: IDListFilterInput +} + """ -type JsonSafeLongAggregatedValues @shareable { +A return type used from aggregations to provided aggregated values over `Int` fields. +""" +type IntAggregatedValues @shareable { """ The average (mean) of the field values within this grouping. @@ -4423,7 +4100,7 @@ type JsonSafeLongAggregatedValues @shareable { """ The (approximate) sum of the field values within this grouping. - Sums of large `JsonSafeLong` values can result in overflow, where the exact sum cannot + Sums of large `Int` values can result in overflow, where the exact sum cannot fit in a `JsonSafeLong` return value. This field, as a double-precision `Float`, can represent larger sums, but the value may only be approximate. """ @@ -4435,7 +4112,7 @@ type JsonSafeLongAggregatedValues @shareable { So long as the grouping contains at least one non-null value for the underlying indexed field, this will return an exact non-null value. """ - exact_max: JsonSafeLong + exact_max: Int """ The minimum of the field values within this grouping. @@ -4443,12 +4120,12 @@ type JsonSafeLongAggregatedValues @shareable { So long as the grouping contains at least one non-null value for the underlying indexed field, this will return an exact non-null value. """ - exact_min: JsonSafeLong + exact_min: Int """ The exact sum of the field values within this grouping, if it fits in a `JsonSafeLong`. - Sums of large `JsonSafeLong` values can result in overflow, where the exact sum cannot + Sums of large `Int` values can result in overflow, where the exact sum cannot fit in a `JsonSafeLong`. In that case, `null` will be returned, and `approximate_sum` can be used to get an approximate value. """ @@ -4456,22 +4133,22 @@ type JsonSafeLongAggregatedValues @shareable { } """ -Input type used to specify filters on `JsonSafeLong` fields. +Input type used to specify filters on `Int` fields. Will match all documents if passed as an empty object (or as `null`). """ -input JsonSafeLongFilterInput { +input IntFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `JsonSafeLongFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `IntFilterInput` input because of collisions between + key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [JsonSafeLongFilterInput!] + all_of: [IntFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4480,7 +4157,7 @@ input JsonSafeLongFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [JsonSafeLongFilterInput!] + any_of: [IntFilterInput!] """ Matches records where the field value is equal to any of the provided values. @@ -4490,35 +4167,35 @@ input JsonSafeLongFilterInput { this part of the filter matches no documents. When `null` is passed in the list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [JsonSafeLong] + equal_to_any_of: [Int] """ Matches records where the field value is greater than (>) the provided value. When `null` is passed, matches all documents. """ - gt: JsonSafeLong + gt: Int """ Matches records where the field value is greater than or equal to (>=) the provided value. When `null` is passed, matches all documents. """ - gte: JsonSafeLong + gte: Int """ Matches records where the field value is less than (<) the provided value. When `null` is passed, matches all documents. """ - lt: JsonSafeLong + lt: Int """ Matches records where the field value is less than or equal to (<=) the provided value. When `null` is passed, matches all documents. """ - lte: JsonSafeLong + lte: Int """ Matches records where the provided sub-filter evaluates to false. @@ -4526,26 +4203,26 @@ input JsonSafeLongFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: JsonSafeLongFilterInput + not: IntFilterInput } """ -Input type used to specify filters on elements of a `[JsonSafeLong]` field. +Input type used to specify filters on elements of a `[Int]` field. Will match all documents if passed as an empty object (or as `null`). """ -input JsonSafeLongListElementFilterInput { +input IntListElementFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `JsonSafeLongListElementFilterInput` input because of + be provided on a single `IntListElementFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [JsonSafeLongListElementFilterInput!] + all_of: [IntListElementFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4554,7 +4231,7 @@ input JsonSafeLongListElementFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [JsonSafeLongListElementFilterInput!] + any_of: [IntListElementFilterInput!] """ Matches records where the field value is equal to any of the provided values. @@ -4564,54 +4241,54 @@ input JsonSafeLongListElementFilterInput { this part of the filter matches no documents. When `null` is passed in the list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [JsonSafeLong!] + equal_to_any_of: [Int!] """ Matches records where the field value is greater than (>) the provided value. When `null` is passed, matches all documents. """ - gt: JsonSafeLong + gt: Int """ Matches records where the field value is greater than or equal to (>=) the provided value. When `null` is passed, matches all documents. """ - gte: JsonSafeLong + gte: Int """ Matches records where the field value is less than (<) the provided value. When `null` is passed, matches all documents. """ - lt: JsonSafeLong + lt: Int """ Matches records where the field value is less than or equal to (<=) the provided value. When `null` is passed, matches all documents. """ - lte: JsonSafeLong + lte: Int } """ -Input type used to specify filters on `[JsonSafeLong]` fields. +Input type used to specify filters on `[Int]` fields. Will match all documents if passed as an empty object (or as `null`). """ -input JsonSafeLongListFilterInput { +input IntListFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `JsonSafeLongListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple + be provided on a single `IntListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [JsonSafeLongListFilterInput!] + all_of: [IntListFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4620,14 +4297,14 @@ input JsonSafeLongListFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [JsonSafeLongListFilterInput!] + any_of: [IntListFilterInput!] """ Matches records where any of the list elements match the provided sub-filter. When `null` or an empty object is passed, matches all documents. """ - any_satisfy: JsonSafeLongListElementFilterInput + any_satisfy: IntListElementFilterInput """ Used to filter on the number of non-null elements in this list field. @@ -4642,250 +4319,366 @@ input JsonSafeLongListFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: JsonSafeLongListFilterInput + not: IntListFilterInput } -""" -A local time such as `"23:59:33"` or `"07:20:47.454"` without a time zone or offset, formatted based on the -[partial-time portion of RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6). -""" -scalar LocalTime +union Inventor = Company | Person """ -A return type used from aggregations to provided aggregated values over `LocalTime` fields. +Type used to perform aggregation computations on `Inventor` fields. """ -type LocalTimeAggregatedValues @shareable { +type InventorAggregatedValues { """ - The average (mean) of the field values within this grouping. - The returned value will be rounded to the nearest `LocalTime` value. + Computed aggregate values for the `id` field. """ - approximate_avg: LocalTime + id: NonNumericAggregatedValues """ - An approximation of the number of unique values for this field within this grouping. - - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. + Computed aggregate values for the `name` field. """ - approximate_distinct_value_count: JsonSafeLong + name: NonNumericAggregatedValues """ - The maximum of the field values within this grouping. - - So long as the grouping contains at least one non-null value for the - underlying indexed field, this will return an exact non-null value. + Computed aggregate values for the `nationality` field. """ - exact_max: LocalTime + nationality: NonNumericAggregatedValues """ - The minimum of the field values within this grouping. - - So long as the grouping contains at least one non-null value for the - underlying indexed field, this will return an exact non-null value. + Computed aggregate values for the `stock_ticker` field. """ - exact_min: LocalTime + stock_ticker: NonNumericAggregatedValues } """ -Input type used to specify filters on `LocalTime` fields. - -Will match all documents if passed as an empty object (or as `null`). +Return type representing a bucket of `Inventor` documents for an aggregations query. """ -input LocalTimeFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `LocalTimeFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. - """ - all_of: [LocalTimeFilterInput!] - - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. +type InventorAggregation { """ - any_of: [LocalTimeFilterInput!] - + Provides computed aggregated values over all `Inventor` documents in an aggregation bucket. """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. + aggregated_values: InventorAggregatedValues - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [LocalTime] - + The count of `Inventor` documents in an aggregation bucket. """ - Matches records where the field value is greater than (>) the provided value. + count: JsonSafeLong! - When `null` is passed, matches all documents. """ - gt: LocalTime - + Used to specify the `Inventor` fields to group by. The returned values identify each aggregation bucket. """ - Matches records where the field value is greater than or equal to (>=) the provided value. + grouped_by: InventorGroupedBy +} - When `null` is passed, matches all documents. - """ - gte: LocalTime +""" +Represents a paginated collection of `InventorAggregation` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type InventorAggregationConnection { """ - Matches records where the field value is less than (<) the provided value. - - When `null` is passed, matches all documents. + Wraps a specific `InventorAggregation` to pair it with its pagination cursor. """ - lt: LocalTime + edges: [InventorAggregationEdge!]! """ - Matches records where the field value is less than or equal to (<=) the provided value. - - When `null` is passed, matches all documents. + The list of `InventorAggregation` results. """ - lte: LocalTime + nodes: [InventorAggregation!]! """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Provides pagination-related information. """ - not: LocalTimeFilterInput + page_info: PageInfo! } """ -Input type offered when grouping on `LocalTime` fields, representing the amount of offset -(positive or negative) to shift the `LocalTime` boundaries of each grouping bucket. +Represents a specific `InventorAggregation` in the context of a `InventorAggregationConnection`, +providing access to both the `InventorAggregation` and query-specific information such as the pagination `Cursor`. -For example, when grouping by `HOUR`, you can shift by 30 minutes to change -what minute-of-hour hours are considered to start on. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -input LocalTimeGroupingOffsetInput { +type InventorAggregationEdge { """ - Number (positive or negative) of the given `unit` to offset the boundaries of the `LocalTime` groupings. + The `Cursor` of this `InventorAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `InventorAggregation`. """ - amount: Int! + cursor: Cursor """ - Unit of offsetting to apply to the boundaries of the `LocalTime` groupings. + The `InventorAggregation` of this edge. """ - unit: LocalTimeUnitInput! + node: InventorAggregation } """ -Enumerates the supported truncation units of a `LocalTime`. +Represents a paginated collection of `Inventor` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -enum LocalTimeGroupingTruncationUnitInput { +type InventorConnection { """ - The hour a `LocalTime` falls in. + Wraps a specific `Inventor` to pair it with its pagination cursor. """ - HOUR + edges: [InventorEdge!]! """ - The minute a `LocalTime` falls in. + The list of `Inventor` results. """ - MINUTE + nodes: [Inventor!]! """ - The second a `LocalTime` falls in. + Provides pagination-related information. """ - SECOND + page_info: PageInfo! + + """ + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! } """ -Enumeration of `LocalTime` units. +Represents a specific `Inventor` in the context of a `InventorConnection`, +providing access to both the `Inventor` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -enum LocalTimeUnitInput { +type InventorEdge { """ - 1/24th of a day. + All search highlights for this `Inventor`, indicating where in the indexed document the query matched. """ - HOUR + all_highlights: [SearchHighlight!]! """ - 1/1000th of a second. + The `Cursor` of this `Inventor`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Inventor`. """ - MILLISECOND + cursor: Cursor """ - 1/60th of an hour. + Specific search highlights for this `Inventor`, providing matching snippets for the requested fields. """ - MINUTE + highlights: InventorHighlights """ - 1/60th of a minute. + The `Inventor` of this edge. """ - SECOND + node: Inventor } """ -A numeric type for large integer values in the inclusive range -2^63 -(-9,223,372,036,854,775,808) to (2^63 - 1) (9,223,372,036,854,775,807). - -Note that `LongString` values are serialized as strings within JSON, to avoid -interopability problems with JavaScript. If you want a large integer type that -serializes within JSON as a number, use `JsonSafeLong`. -""" -scalar LongString +Input type used to specify filters on `Inventor` fields. +Will match all documents if passed as an empty object (or as `null`). """ -A return type used from aggregations to provided aggregated values over `LongString` fields. -""" -type LongStringAggregatedValues @shareable { +input InventorFilterInput { """ - The average (mean) of the field values within this grouping. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - Note that the returned value is approximate. Imprecision can be introduced by the computation if - any intermediary values fall outside the `JsonSafeLong` range (-9,007,199,254,740,991 - to 9,007,199,254,740,991). - """ - approximate_avg: Float + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `InventorFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + When `null` or an empty list is passed, matches all documents. """ - An approximation of the number of unique values for this field within this grouping. + all_of: [InventorFilterInput!] - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. """ - approximate_distinct_value_count: JsonSafeLong + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - The maximum of the field values within this grouping. + any_of: [InventorFilterInput!] - The aggregation computation performed to identify the largest value is not able - to maintain exact precision when dealing with values that are outside the `JsonSafeLong` - range (-9,007,199,254,740,991 to 9,007,199,254,740,991). - In that case, the `exact_max` field will return `null`, but this field will provide - a value which may be approximate. """ - approximate_max: LongString + Used to filter on the `id` field. + When `null` or an empty object is passed, matches all documents. """ - The minimum of the field values within this grouping. + id: IDFilterInput - The aggregation computation performed to identify the smallest value is not able - to maintain exact precision when dealing with values that are outside the `JsonSafeLong` - range (-9,007,199,254,740,991 to 9,007,199,254,740,991). - In that case, the `exact_min` field will return `null`, but this field will provide - a value which may be approximate. """ - approximate_min: LongString + Used to filter on the `name` field. + + When `null` or an empty object is passed, matches all documents. + """ + name: StringFilterInput + + """ + Used to filter on the `nationality` field. + + When `null` or an empty object is passed, matches all documents. + """ + nationality: StringFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: InventorFilterInput + + """ + Used to filter on the `stock_ticker` field. + + When `null` or an empty object is passed, matches all documents. + """ + stock_ticker: StringFilterInput +} + +""" +Type used to specify the `Inventor` fields to group by for aggregations. +""" +type InventorGroupedBy { + """ + The `name` field value for this group. + """ + name: String + + """ + The `nationality` field value for this group. + """ + nationality: String + + """ + The `stock_ticker` field value for this group. + """ + stock_ticker: String +} + +""" +Type used to request desired `Inventor` search highlight fields. +""" +type InventorHighlights { + """ + Search highlights for the `id`, providing snippets of the matching text. + """ + id: [String!]! + + """ + Search highlights for the `name`, providing snippets of the matching text. + """ + name: [String!]! + + """ + Search highlights for the `nationality`, providing snippets of the matching text. + """ + nationality: [String!]! + + """ + Search highlights for the `stock_ticker`, providing snippets of the matching text. + """ + stock_ticker: [String!]! +} + +""" +Enumerates the ways `Inventor`s can be sorted. +""" +enum InventorSortOrderInput { + """ + Sorts ascending by the `id` field. + """ + id_ASC + + """ + Sorts descending by the `id` field. + """ + id_DESC + + """ + Sorts ascending by the `name` field. + """ + name_ASC + + """ + Sorts descending by the `name` field. + """ + name_DESC + + """ + Sorts ascending by the `nationality` field. + """ + nationality_ASC + + """ + Sorts descending by the `nationality` field. + """ + nationality_DESC + + """ + Sorts ascending by the `stock_ticker` field. + """ + stock_ticker_ASC + + """ + Sorts descending by the `stock_ticker` field. + """ + stock_ticker_DESC +} + +""" +A numeric type for large integer values that can serialize safely as JSON. + +While JSON itself has no hard limit on the size of integers, the RFC-7159 spec +mentions that values outside of the range -9,007,199,254,740,991 (-(2^53) + 1) +to 9,007,199,254,740,991 (2^53 - 1) may not be interopable with all JSON +implementations. As it turns out, the number implementation used by JavaScript +has this issue. When you parse a JSON string that contains a numeric value like +`4693522397653681111`, the parsed result will contain a rounded value like +`4693522397653681000`. + +While this is entirely a client-side problem, we want to preserve maximum compatibility +with common client languages. Given the ubiquity of GraphiQL as a GraphQL client, +we want to avoid this problem. + +Our solution is to support two separate types: + +- This type (`JsonSafeLong`) is serialized as a number, but limits values to the safely + serializable range. +- The `LongString` type supports long values that use all 64 bits, but serializes as a + string rather than a number, avoiding the JavaScript compatibility problems. + +For more background, see the [JavaScript `Number.MAX_SAFE_INTEGER` +docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER). +""" +scalar JsonSafeLong + +""" +A return type used from aggregations to provided aggregated values over `JsonSafeLong` fields. +""" +type JsonSafeLongAggregatedValues @shareable { + """ + The average (mean) of the field values within this grouping. + + Note that the returned value is approximate. Imprecision can be introduced by the computation if + any intermediary values fall outside the `JsonSafeLong` range (-9,007,199,254,740,991 + to 9,007,199,254,740,991). + """ + approximate_avg: Float + + """ + An approximation of the number of unique values for this field within this grouping. + + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. + """ + approximate_distinct_value_count: JsonSafeLong """ The (approximate) sum of the field values within this grouping. - Sums of large `LongString` values can result in overflow, where the exact sum cannot - fit in a `LongString` return value. This field, as a double-precision `Float`, can + Sums of large `JsonSafeLong` values can result in overflow, where the exact sum cannot + fit in a `JsonSafeLong` return value. This field, as a double-precision `Float`, can represent larger sums, but the value may only be approximate. """ approximate_sum: Float! @@ -4893,31 +4686,23 @@ type LongStringAggregatedValues @shareable { """ The maximum of the field values within this grouping. - So long as the grouping contains at least one non-null value, and no values exceed the - `JsonSafeLong` range in the underlying indexed field, this will return an exact non-null value. - - If no non-null values are available, or if the maximum value is outside the `JsonSafeLong` - range, `null` will be returned. `approximate_max` can be used to differentiate between these - cases and to get an approximate value. + So long as the grouping contains at least one non-null value for the + underlying indexed field, this will return an exact non-null value. """ exact_max: JsonSafeLong """ The minimum of the field values within this grouping. - So long as the grouping contains at least one non-null value, and no values exceed the - `JsonSafeLong` range in the underlying indexed field, this will return an exact non-null value. - - If no non-null values are available, or if the minimum value is outside the `JsonSafeLong` - range, `null` will be returned. `approximate_min` can be used to differentiate between these - cases and to get an approximate value. + So long as the grouping contains at least one non-null value for the + underlying indexed field, this will return an exact non-null value. """ exact_min: JsonSafeLong """ The exact sum of the field values within this grouping, if it fits in a `JsonSafeLong`. - Sums of large `LongString` values can result in overflow, where the exact sum cannot + Sums of large `JsonSafeLong` values can result in overflow, where the exact sum cannot fit in a `JsonSafeLong`. In that case, `null` will be returned, and `approximate_sum` can be used to get an approximate value. """ @@ -4925,22 +4710,22 @@ type LongStringAggregatedValues @shareable { } """ -Input type used to specify filters on `LongString` fields. +Input type used to specify filters on `JsonSafeLong` fields. Will match all documents if passed as an empty object (or as `null`). """ -input LongStringFilterInput { +input JsonSafeLongFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `LongStringFilterInput` input because of collisions + be provided on a single `JsonSafeLongFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [LongStringFilterInput!] + all_of: [JsonSafeLongFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -4949,7 +4734,7 @@ input LongStringFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [LongStringFilterInput!] + any_of: [JsonSafeLongFilterInput!] """ Matches records where the field value is equal to any of the provided values. @@ -4959,35 +4744,35 @@ input LongStringFilterInput { this part of the filter matches no documents. When `null` is passed in the list, this part of the filter matches records where the field value is `null`. """ - equal_to_any_of: [LongString] + equal_to_any_of: [JsonSafeLong] """ Matches records where the field value is greater than (>) the provided value. When `null` is passed, matches all documents. """ - gt: LongString + gt: JsonSafeLong """ Matches records where the field value is greater than or equal to (>=) the provided value. When `null` is passed, matches all documents. """ - gte: LongString + gte: JsonSafeLong """ Matches records where the field value is less than (<) the provided value. When `null` is passed, matches all documents. """ - lt: LongString + lt: JsonSafeLong """ Matches records where the field value is less than or equal to (<=) the provided value. When `null` is passed, matches all documents. """ - lte: LongString + lte: JsonSafeLong """ Matches records where the provided sub-filter evaluates to false. @@ -4995,314 +4780,232 @@ input LongStringFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: LongStringFilterInput + not: JsonSafeLongFilterInput } -type Manufacturer implements NamedEntity @key(fields: "id") { - address: Address - ceo: Person - created_at: DateTime! - id: ID! +""" +Input type used to specify filters on elements of a `[JsonSafeLong]` field. +Will match all documents if passed as an empty object (or as `null`). +""" +input JsonSafeLongListElementFilterInput { """ - Aggregations over the `manufactured_parts` data. - """ - manufactured_part_aggregations( - """ - Used to forward-paginate through the `manufactured_part_aggregations`. When provided, the next page after the - provided cursor will be returned. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the `manufactured_part_aggregations`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the `Part` documents that get aggregated over based on the provided criteria. - """ - filter: PartFilterInput + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `JsonSafeLongListElementFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - """ - Used in conjunction with the `after` argument to forward-paginate through the `manufactured_part_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `manufactured_part_aggregations`, if no `after` cursor is provided). + When `null` or an empty list is passed, matches all documents. + """ + all_of: [JsonSafeLongListElementFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - """ - Used in conjunction with the `before` argument to backward-paginate through the `manufactured_part_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `manufactured_part_aggregations`, if no `before` cursor is provided). + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [JsonSafeLongListElementFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): PartAggregationConnection - manufactured_parts( - """ - Used to forward-paginate through the `manufactured_parts`. When provided, the next page after the - provided cursor will be returned. + """ + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. + """ + equal_to_any_of: [JsonSafeLong!] - """ - Used to backward-paginate through the `manufactured_parts`. When provided, the previous page before the - provided cursor will be returned. + """ + Matches records where the field value is greater than (>) the provided value. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + When `null` is passed, matches all documents. + """ + gt: JsonSafeLong - """ - Used to filter the returned `manufactured_parts` based on the provided criteria. - """ - filter: PartFilterInput + """ + Matches records where the field value is greater than or equal to (>=) the provided value. - """ - Used in conjunction with the `after` argument to forward-paginate through the `manufactured_parts`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `manufactured_parts`, if no `after` cursor is provided). + When `null` is passed, matches all documents. + """ + gte: JsonSafeLong - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Matches records where the field value is less than (<) the provided value. - """ - Used in conjunction with the `before` argument to backward-paginate through the `manufactured_parts`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `manufactured_parts`, if no `before` cursor is provided). + When `null` is passed, matches all documents. + """ + lt: JsonSafeLong - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Matches records where the field value is less than or equal to (<=) the provided value. - """ - Used to specify how the returned `manufactured_parts` should be sorted. - """ - order_by: [PartSortOrderInput!] - ): PartConnection - name: String + When `null` is passed, matches all documents. + """ + lte: JsonSafeLong } """ -Type used to perform aggregation computations on `Manufacturer` fields. +Input type used to specify filters on `[JsonSafeLong]` fields. + +Will match all documents if passed as an empty object (or as `null`). """ -type ManufacturerAggregatedValues { - """ - Computed aggregate values for the `ceo` field. +input JsonSafeLongListFilterInput { """ - ceo: PersonAggregatedValues + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - """ - Computed aggregate values for the `created_at` field. - """ - created_at: DateTimeAggregatedValues + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `JsonSafeLongListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + When `null` or an empty list is passed, matches all documents. """ - Computed aggregate values for the `id` field. - """ - id: NonNumericAggregatedValues + all_of: [JsonSafeLongListFilterInput!] """ - Computed aggregate values for the `name` field. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - name: NonNumericAggregatedValues -} + any_of: [JsonSafeLongListFilterInput!] -""" -Return type representing a bucket of `Manufacturer` documents for an aggregations query. -""" -type ManufacturerAggregation { """ - Provides computed aggregated values over all `Manufacturer` documents in an aggregation bucket. + Matches records where any of the list elements match the provided sub-filter. + + When `null` or an empty object is passed, matches all documents. """ - aggregated_values: ManufacturerAggregatedValues + any_satisfy: JsonSafeLongListElementFilterInput """ - The count of `Manufacturer` documents in an aggregation bucket. + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. """ - count: JsonSafeLong! + count: IntFilterInput """ - Used to specify the `Manufacturer` fields to group by. The returned values identify each aggregation bucket. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. """ - grouped_by: ManufacturerGroupedBy + not: JsonSafeLongListFilterInput } """ -Represents a paginated collection of `ManufacturerAggregation` results. +A local time such as `"23:59:33"` or `"07:20:47.454"` without a time zone or offset, formatted based on the +[partial-time portion of RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6). +""" +scalar LocalTime -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type ManufacturerAggregationConnection { +A return type used from aggregations to provided aggregated values over `LocalTime` fields. +""" +type LocalTimeAggregatedValues @shareable { """ - Wraps a specific `ManufacturerAggregation` to pair it with its pagination cursor. + The average (mean) of the field values within this grouping. + The returned value will be rounded to the nearest `LocalTime` value. """ - edges: [ManufacturerAggregationEdge!]! + approximate_avg: LocalTime """ - The list of `ManufacturerAggregation` results. - """ - nodes: [ManufacturerAggregation!]! + An approximation of the number of unique values for this field within this grouping. + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. """ - Provides pagination-related information. - """ - page_info: PageInfo! -} - -""" -Represents a specific `ManufacturerAggregation` in the context of a `ManufacturerAggregationConnection`, -providing access to both the `ManufacturerAggregation` and query-specific information such as the pagination `Cursor`. + approximate_distinct_value_count: JsonSafeLong -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type ManufacturerAggregationEdge { """ - The `Cursor` of this `ManufacturerAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `ManufacturerAggregation`. + The maximum of the field values within this grouping. + + So long as the grouping contains at least one non-null value for the + underlying indexed field, this will return an exact non-null value. """ - cursor: Cursor + exact_max: LocalTime """ - The `ManufacturerAggregation` of this edge. + The minimum of the field values within this grouping. + + So long as the grouping contains at least one non-null value for the + underlying indexed field, this will return an exact non-null value. """ - node: ManufacturerAggregation + exact_min: LocalTime } """ -Represents a paginated collection of `Manufacturer` results. +Input type used to specify filters on `LocalTime` fields. -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +Will match all documents if passed as an empty object (or as `null`). """ -type ManufacturerConnection { - """ - Wraps a specific `Manufacturer` to pair it with its pagination cursor. +input LocalTimeFilterInput { """ - edges: [ManufacturerEdge!]! + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - """ - The list of `Manufacturer` results. - """ - nodes: [Manufacturer!]! + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `LocalTimeFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + When `null` or an empty list is passed, matches all documents. """ - Provides pagination-related information. + all_of: [LocalTimeFilterInput!] + """ - page_info: PageInfo! + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - The total number of edges available in this connection to paginate over. + any_of: [LocalTimeFilterInput!] + """ - total_edge_count: JsonSafeLong! -} - -""" -Represents a specific `Manufacturer` in the context of a `ManufacturerConnection`, -providing access to both the `Manufacturer` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type ManufacturerEdge { - """ - All search highlights for this `Manufacturer`, indicating where in the indexed document the query matched. - """ - all_highlights: [SearchHighlight!]! - - """ - The `Cursor` of this `Manufacturer`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Manufacturer`. - """ - cursor: Cursor - - """ - Specific search highlights for this `Manufacturer`, providing matching snippets for the requested fields. - """ - highlights: ManufacturerHighlights - - """ - The `Manufacturer` of this edge. - """ - node: Manufacturer -} - -""" -Input type used to specify filters on `Manufacturer` fields. - -Will match all documents if passed as an empty object (or as `null`). -""" -input ManufacturerFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `ManufacturerFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. - When `null` or an empty list is passed, matches all documents. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - all_of: [ManufacturerFilterInput!] + equal_to_any_of: [LocalTime] """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + Matches records where the field value is greater than (>) the provided value. When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. - """ - any_of: [ManufacturerFilterInput!] - - """ - Used to filter on the `ceo` field. - - When `null` or an empty object is passed, matches all documents. """ - ceo: PersonFilterInput + gt: LocalTime """ - Used to filter on the `created_at` field. + Matches records where the field value is greater than or equal to (>=) the provided value. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. """ - created_at: DateTimeFilterInput + gte: LocalTime """ - Used to filter on the `id` field. + Matches records where the field value is less than (<) the provided value. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. """ - id: IDFilterInput + lt: LocalTime """ - Used to filter on the `name` field. + Matches records where the field value is less than or equal to (<=) the provided value. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. """ - name: StringFilterInput + lte: LocalTime """ Matches records where the provided sub-filter evaluates to false. @@ -5310,240 +5013,235 @@ input ManufacturerFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: ManufacturerFilterInput + not: LocalTimeFilterInput } """ -Type used to specify the `Manufacturer` fields to group by for aggregations. -""" -type ManufacturerGroupedBy { - """ - The `ceo` field value for this group. - """ - ceo: PersonGroupedBy +Input type offered when grouping on `LocalTime` fields, representing the amount of offset +(positive or negative) to shift the `LocalTime` boundaries of each grouping bucket. +For example, when grouping by `HOUR`, you can shift by 30 minutes to change +what minute-of-hour hours are considered to start on. +""" +input LocalTimeGroupingOffsetInput { """ - Offers the different grouping options for the `created_at` value within this group. + Number (positive or negative) of the given `unit` to offset the boundaries of the `LocalTime` groupings. """ - created_at: DateTimeGroupedBy + amount: Int! """ - The `name` field value for this group. + Unit of offsetting to apply to the boundaries of the `LocalTime` groupings. """ - name: String + unit: LocalTimeUnitInput! } """ -Type used to request desired `Manufacturer` search highlight fields. +Enumerates the supported truncation units of a `LocalTime`. """ -type ManufacturerHighlights { +enum LocalTimeGroupingTruncationUnitInput { """ - Search highlights for the `ceo`, providing snippets of the matching text. + The hour a `LocalTime` falls in. """ - ceo: PersonHighlights + HOUR """ - Search highlights for the `id`, providing snippets of the matching text. + The minute a `LocalTime` falls in. """ - id: [String!]! + MINUTE """ - Search highlights for the `name`, providing snippets of the matching text. + The second a `LocalTime` falls in. """ - name: [String!]! + SECOND } """ -Enumerates the ways `Manufacturer`s can be sorted. +Enumeration of `LocalTime` units. """ -enum ManufacturerSortOrderInput { +enum LocalTimeUnitInput { """ - Sorts ascending by the `ceo.id` field. + 1/24th of a day. """ - ceo_id_ASC + HOUR """ - Sorts descending by the `ceo.id` field. + 1/1000th of a second. """ - ceo_id_DESC + MILLISECOND """ - Sorts ascending by the `ceo.name` field. + 1/60th of an hour. """ - ceo_name_ASC + MINUTE """ - Sorts descending by the `ceo.name` field. + 1/60th of a minute. """ - ceo_name_DESC + SECOND +} +""" +A numeric type for large integer values in the inclusive range -2^63 +(-9,223,372,036,854,775,808) to (2^63 - 1) (9,223,372,036,854,775,807). + +Note that `LongString` values are serialized as strings within JSON, to avoid +interopability problems with JavaScript. If you want a large integer type that +serializes within JSON as a number, use `JsonSafeLong`. +""" +scalar LongString + +""" +A return type used from aggregations to provided aggregated values over `LongString` fields. +""" +type LongStringAggregatedValues @shareable { """ - Sorts ascending by the `ceo.nationality` field. + The average (mean) of the field values within this grouping. + + Note that the returned value is approximate. Imprecision can be introduced by the computation if + any intermediary values fall outside the `JsonSafeLong` range (-9,007,199,254,740,991 + to 9,007,199,254,740,991). """ - ceo_nationality_ASC + approximate_avg: Float """ - Sorts descending by the `ceo.nationality` field. + An approximation of the number of unique values for this field within this grouping. + + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. """ - ceo_nationality_DESC + approximate_distinct_value_count: JsonSafeLong """ - Sorts ascending by the `created_at` field. + The maximum of the field values within this grouping. + + The aggregation computation performed to identify the largest value is not able + to maintain exact precision when dealing with values that are outside the `JsonSafeLong` + range (-9,007,199,254,740,991 to 9,007,199,254,740,991). + In that case, the `exact_max` field will return `null`, but this field will provide + a value which may be approximate. """ - created_at_ASC + approximate_max: LongString """ - Sorts descending by the `created_at` field. + The minimum of the field values within this grouping. + + The aggregation computation performed to identify the smallest value is not able + to maintain exact precision when dealing with values that are outside the `JsonSafeLong` + range (-9,007,199,254,740,991 to 9,007,199,254,740,991). + In that case, the `exact_min` field will return `null`, but this field will provide + a value which may be approximate. """ - created_at_DESC + approximate_min: LongString """ - Sorts ascending by the `id` field. + The (approximate) sum of the field values within this grouping. + + Sums of large `LongString` values can result in overflow, where the exact sum cannot + fit in a `LongString` return value. This field, as a double-precision `Float`, can + represent larger sums, but the value may only be approximate. """ - id_ASC + approximate_sum: Float! """ - Sorts descending by the `id` field. + The maximum of the field values within this grouping. + + So long as the grouping contains at least one non-null value, and no values exceed the + `JsonSafeLong` range in the underlying indexed field, this will return an exact non-null value. + + If no non-null values are available, or if the maximum value is outside the `JsonSafeLong` + range, `null` will be returned. `approximate_max` can be used to differentiate between these + cases and to get an approximate value. """ - id_DESC + exact_max: JsonSafeLong """ - Sorts ascending by the `name` field. + The minimum of the field values within this grouping. + + So long as the grouping contains at least one non-null value, and no values exceed the + `JsonSafeLong` range in the underlying indexed field, this will return an exact non-null value. + + If no non-null values are available, or if the minimum value is outside the `JsonSafeLong` + range, `null` will be returned. `approximate_min` can be used to differentiate between these + cases and to get an approximate value. """ - name_ASC + exact_min: JsonSafeLong """ - Sorts descending by the `name` field. + The exact sum of the field values within this grouping, if it fits in a `JsonSafeLong`. + + Sums of large `LongString` values can result in overflow, where the exact sum cannot + fit in a `JsonSafeLong`. In that case, `null` will be returned, and `approximate_sum` + can be used to get an approximate value. """ - name_DESC + exact_sum: JsonSafeLong } """ -Input type used to specify parameters for the `matches_phrase` filtering operator. +Input type used to specify filters on `LongString` fields. -When `null` is passed, matches all documents. +Will match all documents if passed as an empty object (or as `null`). """ -input MatchesPhraseFilterInput { +input LongStringFilterInput { """ - The input phrase to search for. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `LongStringFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - phrase: String! -} + all_of: [LongStringFilterInput!] -""" -Enumeration of allowed values for the `matches_query: {allowed_edits_per_term: ...}` filter option. -""" -enum MatchesQueryAllowedEditsPerTermInput { """ - Allowed edits per term is dynamically chosen based on the length of the term. - """ - DYNAMIC - - """ - No allowed edits per term. - """ - NONE - - """ - One allowed edit per term. - """ - ONE - - """ - Two allowed edits per term. - """ - TWO -} - -""" -Input type used to specify parameters for the `matches_query` filtering operator. - -When `null` is passed, matches all documents. -""" -input MatchesQueryFilterInput { - """ - Number of allowed modifications per term to arrive at a match. For example, if set to 'ONE', the input - term 'glue' would match 'blue' but not 'clued', since the latter requires two modifications. - """ - allowed_edits_per_term: MatchesQueryAllowedEditsPerTermInput! = DYNAMIC + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - The input query to search for. - """ - query: String! + any_of: [LongStringFilterInput!] """ - Set to `true` to match only if all terms in `query` are found, or - `false` to only require one term to be found. - """ - require_all_terms: Boolean! = false -} - -""" -Input type used to specify parameters for the `matches_query_with_prefix` filtering operator. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. -When `null` is passed, matches all documents. -""" -input MatchesQueryWithPrefixFilterInput { - """ - Number of allowed modifications per term to arrive at a match. For example, if set to 'ONE', the input - term 'glue' would match 'blue' but not 'clued', since the latter requires two modifications. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - allowed_edits_per_term: MatchesQueryAllowedEditsPerTermInput! = DYNAMIC + equal_to_any_of: [LongString] """ - The input query to search for, with the last term treated as a prefix. - """ - query_with_prefix: String! + Matches records where the field value is greater than (>) the provided value. + When `null` is passed, matches all documents. """ - Set to `true` to match only if all terms in `query_with_prefix` are found, or - `false` to only require one term to be found. - """ - require_all_terms: Boolean! = false -} - -enum Material { - ALLOY - CARBON_FIBER -} - -""" -Input type used to specify filters on `Material` fields. + gt: LongString -Will match all documents if passed as an empty object (or as `null`). -""" -input MaterialFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MaterialFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + Matches records where the field value is greater than or equal to (>=) the provided value. - When `null` or an empty list is passed, matches all documents. + When `null` is passed, matches all documents. """ - all_of: [MaterialFilterInput!] + gte: LongString """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + Matches records where the field value is less than (<) the provided value. When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. """ - any_of: [MaterialFilterInput!] + lt: LongString """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. + Matches records where the field value is less than or equal to (<=) the provided value. - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + When `null` is passed, matches all documents. """ - equal_to_any_of: [MaterialInput] + lte: LongString """ Matches records where the provided sub-filter evaluates to false. @@ -5551,21 +5249,21 @@ input MaterialFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: MaterialFilterInput + not: LongStringFilterInput } -enum MaterialInput { - ALLOY - CARBON_FIBER -} +type Manufacturer implements NamedEntity @key(fields: "id") { + address: Address + ceo: Person + created_at: DateTime! + id: ID! -type MechanicalPart implements NamedEntity @key(fields: "id") { """ - Aggregations over the `components` data. + Aggregations over the `manufactured_parts` data. """ - component_aggregations( + manufactured_part_aggregations( """ - Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + Used to forward-paginate through the `manufactured_part_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -5574,7 +5272,7 @@ type MechanicalPart implements NamedEntity @key(fields: "id") { after: Cursor """ - Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `manufactured_part_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -5583,14 +5281,14 @@ type MechanicalPart implements NamedEntity @key(fields: "id") { before: Cursor """ - Used to filter the `Component` documents that get aggregated over based on the provided criteria. + Used to filter the `Part` documents that get aggregated over based on the provided criteria. """ - filter: ComponentFilterInput + filter: PartFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `manufactured_part_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `manufactured_part_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -5598,18 +5296,18 @@ type MechanicalPart implements NamedEntity @key(fields: "id") { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `manufactured_part_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `manufactured_part_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): ComponentAggregationConnection - components( + ): PartAggregationConnection + manufactured_parts( """ - Used to forward-paginate through the `components`. When provided, the next page after the + Used to forward-paginate through the `manufactured_parts`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -5618,7 +5316,7 @@ type MechanicalPart implements NamedEntity @key(fields: "id") { after: Cursor """ - Used to backward-paginate through the `components`. When provided, the previous page before the + Used to backward-paginate through the `manufactured_parts`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -5627,14 +5325,14 @@ type MechanicalPart implements NamedEntity @key(fields: "id") { before: Cursor """ - Used to filter the returned `components` based on the provided criteria. + Used to filter the returned `manufactured_parts` based on the provided criteria. """ - filter: ComponentFilterInput + filter: PartFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `components`. + Used in conjunction with the `after` argument to forward-paginate through the `manufactured_parts`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `components`, if no `after` cursor is provided). + `after` cursor (or from the start of the `manufactured_parts`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -5642,9 +5340,9 @@ type MechanicalPart implements NamedEntity @key(fields: "id") { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `components`. + Used in conjunction with the `before` argument to backward-paginate through the `manufactured_parts`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + `before` cursor (or from the end of the `manufactured_parts`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -5652,21 +5350,22 @@ type MechanicalPart implements NamedEntity @key(fields: "id") { last: Int """ - Used to specify how the returned `components` should be sorted. + Used to specify how the returned `manufactured_parts` should be sorted. """ - order_by: [ComponentSortOrderInput!] - ): ComponentConnection - created_at: DateTime! - id: ID! - manufacturer: Manufacturer - material: Material + order_by: [PartSortOrderInput!] + ): PartConnection name: String } """ -Type used to perform aggregation computations on `MechanicalPart` fields. +Type used to perform aggregation computations on `Manufacturer` fields. """ -type MechanicalPartAggregatedValues { +type ManufacturerAggregatedValues { + """ + Computed aggregate values for the `ceo` field. + """ + ceo: PersonAggregatedValues + """ Computed aggregate values for the `created_at` field. """ @@ -5677,11 +5376,6 @@ type MechanicalPartAggregatedValues { """ id: NonNumericAggregatedValues - """ - Computed aggregate values for the `material` field. - """ - material: NonNumericAggregatedValues - """ Computed aggregate values for the `name` field. """ @@ -5689,41 +5383,41 @@ type MechanicalPartAggregatedValues { } """ -Return type representing a bucket of `MechanicalPart` documents for an aggregations query. +Return type representing a bucket of `Manufacturer` documents for an aggregations query. """ -type MechanicalPartAggregation { +type ManufacturerAggregation { """ - Provides computed aggregated values over all `MechanicalPart` documents in an aggregation bucket. + Provides computed aggregated values over all `Manufacturer` documents in an aggregation bucket. """ - aggregated_values: MechanicalPartAggregatedValues + aggregated_values: ManufacturerAggregatedValues """ - The count of `MechanicalPart` documents in an aggregation bucket. + The count of `Manufacturer` documents in an aggregation bucket. """ count: JsonSafeLong! """ - Used to specify the `MechanicalPart` fields to group by. The returned values identify each aggregation bucket. + Used to specify the `Manufacturer` fields to group by. The returned values identify each aggregation bucket. """ - grouped_by: MechanicalPartGroupedBy + grouped_by: ManufacturerGroupedBy } """ -Represents a paginated collection of `MechanicalPartAggregation` results. +Represents a paginated collection of `ManufacturerAggregation` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type MechanicalPartAggregationConnection { +type ManufacturerAggregationConnection { """ - Wraps a specific `MechanicalPartAggregation` to pair it with its pagination cursor. + Wraps a specific `ManufacturerAggregation` to pair it with its pagination cursor. """ - edges: [MechanicalPartAggregationEdge!]! + edges: [ManufacturerAggregationEdge!]! """ - The list of `MechanicalPartAggregation` results. + The list of `ManufacturerAggregation` results. """ - nodes: [MechanicalPartAggregation!]! + nodes: [ManufacturerAggregation!]! """ Provides pagination-related information. @@ -5732,41 +5426,41 @@ type MechanicalPartAggregationConnection { } """ -Represents a specific `MechanicalPartAggregation` in the context of a `MechanicalPartAggregationConnection`, -providing access to both the `MechanicalPartAggregation` and query-specific information such as the pagination `Cursor`. +Represents a specific `ManufacturerAggregation` in the context of a `ManufacturerAggregationConnection`, +providing access to both the `ManufacturerAggregation` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type MechanicalPartAggregationEdge { +type ManufacturerAggregationEdge { """ - The `Cursor` of this `MechanicalPartAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `MechanicalPartAggregation`. + The `Cursor` of this `ManufacturerAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `ManufacturerAggregation`. """ cursor: Cursor """ - The `MechanicalPartAggregation` of this edge. + The `ManufacturerAggregation` of this edge. """ - node: MechanicalPartAggregation + node: ManufacturerAggregation } """ -Represents a paginated collection of `MechanicalPart` results. +Represents a paginated collection of `Manufacturer` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type MechanicalPartConnection { +type ManufacturerConnection { """ - Wraps a specific `MechanicalPart` to pair it with its pagination cursor. + Wraps a specific `Manufacturer` to pair it with its pagination cursor. """ - edges: [MechanicalPartEdge!]! + edges: [ManufacturerEdge!]! """ - The list of `MechanicalPart` results. + The list of `Manufacturer` results. """ - nodes: [MechanicalPart!]! + nodes: [Manufacturer!]! """ Provides pagination-related information. @@ -5780,52 +5474,52 @@ type MechanicalPartConnection { } """ -Represents a specific `MechanicalPart` in the context of a `MechanicalPartConnection`, -providing access to both the `MechanicalPart` and query-specific information such as the pagination `Cursor`. +Represents a specific `Manufacturer` in the context of a `ManufacturerConnection`, +providing access to both the `Manufacturer` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type MechanicalPartEdge { +type ManufacturerEdge { """ - All search highlights for this `MechanicalPart`, indicating where in the indexed document the query matched. + All search highlights for this `Manufacturer`, indicating where in the indexed document the query matched. """ all_highlights: [SearchHighlight!]! """ - The `Cursor` of this `MechanicalPart`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `MechanicalPart`. + The `Cursor` of this `Manufacturer`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Manufacturer`. """ cursor: Cursor """ - Specific search highlights for this `MechanicalPart`, providing matching snippets for the requested fields. + Specific search highlights for this `Manufacturer`, providing matching snippets for the requested fields. """ - highlights: MechanicalPartHighlights + highlights: ManufacturerHighlights """ - The `MechanicalPart` of this edge. + The `Manufacturer` of this edge. """ - node: MechanicalPart + node: Manufacturer } """ -Input type used to specify filters on `MechanicalPart` fields. +Input type used to specify filters on `Manufacturer` fields. Will match all documents if passed as an empty object (or as `null`). """ -input MechanicalPartFilterInput { +input ManufacturerFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MechanicalPartFilterInput` input because of - collisions between key names. For example, if you want to AND multiple + be provided on a single `ManufacturerFilterInput` input because of collisions + between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [MechanicalPartFilterInput!] + all_of: [ManufacturerFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -5834,28 +5528,28 @@ input MechanicalPartFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [MechanicalPartFilterInput!] + any_of: [ManufacturerFilterInput!] """ - Used to filter on the `created_at` field. + Used to filter on the `ceo` field. When `null` or an empty object is passed, matches all documents. """ - created_at: DateTimeFilterInput + ceo: PersonFilterInput """ - Used to filter on the `id` field. + Used to filter on the `created_at` field. When `null` or an empty object is passed, matches all documents. """ - id: IDFilterInput + created_at: DateTimeFilterInput """ - Used to filter on the `material` field. + Used to filter on the `id` field. When `null` or an empty object is passed, matches all documents. """ - material: MaterialFilterInput + id: IDFilterInput """ Used to filter on the `name` field. @@ -5870,22 +5564,22 @@ input MechanicalPartFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: MechanicalPartFilterInput + not: ManufacturerFilterInput } """ -Type used to specify the `MechanicalPart` fields to group by for aggregations. +Type used to specify the `Manufacturer` fields to group by for aggregations. """ -type MechanicalPartGroupedBy { +type ManufacturerGroupedBy { """ - Offers the different grouping options for the `created_at` value within this group. + The `ceo` field value for this group. """ - created_at: DateTimeGroupedBy + ceo: PersonGroupedBy """ - The `material` field value for this group. + Offers the different grouping options for the `created_at` value within this group. """ - material: Material + created_at: DateTimeGroupedBy """ The `name` field value for this group. @@ -5894,18 +5588,18 @@ type MechanicalPartGroupedBy { } """ -Type used to request desired `MechanicalPart` search highlight fields. +Type used to request desired `Manufacturer` search highlight fields. """ -type MechanicalPartHighlights { +type ManufacturerHighlights { """ - Search highlights for the `id`, providing snippets of the matching text. + Search highlights for the `ceo`, providing snippets of the matching text. """ - id: [String!]! + ceo: PersonHighlights """ - Search highlights for the `material`, providing snippets of the matching text. + Search highlights for the `id`, providing snippets of the matching text. """ - material: [String!]! + id: [String!]! """ Search highlights for the `name`, providing snippets of the matching text. @@ -5914,9 +5608,39 @@ type MechanicalPartHighlights { } """ -Enumerates the ways `MechanicalPart`s can be sorted. +Enumerates the ways `Manufacturer`s can be sorted. """ -enum MechanicalPartSortOrderInput { +enum ManufacturerSortOrderInput { + """ + Sorts ascending by the `ceo.id` field. + """ + ceo_id_ASC + + """ + Sorts descending by the `ceo.id` field. + """ + ceo_id_DESC + + """ + Sorts ascending by the `ceo.name` field. + """ + ceo_name_ASC + + """ + Sorts descending by the `ceo.name` field. + """ + ceo_name_DESC + + """ + Sorts ascending by the `ceo.nationality` field. + """ + ceo_nationality_ASC + + """ + Sorts descending by the `ceo.nationality` field. + """ + ceo_nationality_DESC + """ Sorts ascending by the `created_at` field. """ @@ -5937,16 +5661,6 @@ enum MechanicalPartSortOrderInput { """ id_DESC - """ - Sorts ascending by the `material` field. - """ - material_ASC - - """ - Sorts descending by the `material` field. - """ - material_DESC - """ Sorts ascending by the `name` field. """ @@ -5958,109 +5672,113 @@ enum MechanicalPartSortOrderInput { name_DESC } -type Money { - amount_cents: Int - currency: String! +""" +Input type used to specify parameters for the `matches_phrase` filtering operator. + +When `null` is passed, matches all documents. +""" +input MatchesPhraseFilterInput { + """ + The input phrase to search for. + """ + phrase: String! } """ -Type used to perform aggregation computations on `Money` fields. +Enumeration of allowed values for the `matches_query: {allowed_edits_per_term: ...}` filter option. """ -type MoneyAggregatedValues { +enum MatchesQueryAllowedEditsPerTermInput { """ - Computed aggregate values for the `amount_cents` field. + Allowed edits per term is dynamically chosen based on the length of the term. """ - amount_cents: IntAggregatedValues + DYNAMIC """ - Computed aggregate values for the `currency` field. + No allowed edits per term. """ - currency: NonNumericAggregatedValues + NONE + + """ + One allowed edit per term. + """ + ONE + + """ + Two allowed edits per term. + """ + TWO } """ -Input type used to specify filters on a `Money` object referenced directly -or transitively from a list field that has been configured to index each leaf field as -its own flattened list of values. +Input type used to specify parameters for the `matches_query` filtering operator. -Will match all documents if passed as an empty object (or as `null`). +When `null` is passed, matches all documents. """ -input MoneyFieldsListFilterInput { +input MatchesQueryFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MoneyFieldsListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Number of allowed modifications per term to arrive at a match. For example, if set to 'ONE', the input + term 'glue' would match 'blue' but not 'clued', since the latter requires two modifications. """ - all_of: [MoneyFieldsListFilterInput!] + allowed_edits_per_term: MatchesQueryAllowedEditsPerTermInput! = DYNAMIC """ - Used to filter on the `amount_cents` field. - - When `null` or an empty object is passed, matches all documents. + The input query to search for. """ - amount_cents: IntListFilterInput + query: String! """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Set to `true` to match only if all terms in `query` are found, or + `false` to only require one term to be found. """ - any_of: [MoneyFieldsListFilterInput!] + require_all_terms: Boolean! = false +} - """ - Used to filter on the number of non-null elements in this list field. +""" +Input type used to specify parameters for the `matches_query_with_prefix` filtering operator. - When `null` or an empty object is passed, matches all documents. +When `null` is passed, matches all documents. +""" +input MatchesQueryWithPrefixFilterInput { """ - count: IntFilterInput - + Number of allowed modifications per term to arrive at a match. For example, if set to 'ONE', the input + term 'glue' would match 'blue' but not 'clued', since the latter requires two modifications. """ - Used to filter on the `currency` field. + allowed_edits_per_term: MatchesQueryAllowedEditsPerTermInput! = DYNAMIC - When `null` or an empty object is passed, matches all documents. """ - currency: StringListFilterInput - + The input query to search for, with the last term treated as a prefix. """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + query_with_prefix: String! - When `null` or an empty object is passed, matches no documents. """ - not: MoneyFieldsListFilterInput + Set to `true` to match only if all terms in `query_with_prefix` are found, or + `false` to only require one term to be found. + """ + require_all_terms: Boolean! = false +} + +enum Material { + ALLOY + CARBON_FIBER } """ -Input type used to specify filters on `Money` fields. +Input type used to specify filters on `Material` fields. Will match all documents if passed as an empty object (or as `null`). """ -input MoneyFilterInput { +input MaterialFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MoneyFilterInput` input because of collisions between - key names. For example, if you want to AND multiple + be provided on a single `MaterialFilterInput` input because of collisions + between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [MoneyFilterInput!] - - """ - Used to filter on the `amount_cents` field. - - When `null` or an empty object is passed, matches all documents. - """ - amount_cents: IntFilterInput + all_of: [MaterialFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -6069,14 +5787,17 @@ input MoneyFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [MoneyFilterInput!] + any_of: [MaterialFilterInput!] """ - Used to filter on the `currency` field. + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - currency: StringFilterInput + equal_to_any_of: [MaterialInput] """ Matches records where the provided sub-filter evaluates to false. @@ -6084,463 +5805,468 @@ input MoneyFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: MoneyFilterInput + not: MaterialFilterInput } -""" -Type used to specify the `Money` fields to group by for aggregations. -""" -type MoneyGroupedBy { - """ - The `amount_cents` field value for this group. - """ - amount_cents: Int - - """ - The `currency` field value for this group. - """ - currency: String +enum MaterialInput { + ALLOY + CARBON_FIBER } -""" -Type used to request desired `Money` search highlight fields. -""" -type MoneyHighlights { +type MechanicalPart implements NamedEntity @key(fields: "id") { """ - Search highlights for the `currency`, providing snippets of the matching text. + Aggregations over the `components` data. """ - currency: [String!]! -} + component_aggregations( + """ + Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + provided cursor will be returned. -""" -Input type used to specify filters on `[Money]` fields. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor -Will match all documents if passed as an empty object (or as `null`). -""" -input MoneyListFilterInput { - """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + """ + Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + provided cursor will be returned. - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `MoneyListFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor - When `null` or an empty list is passed, matches all documents. - """ - all_of: [MoneyListFilterInput!] + """ + Used to filter the `Component` documents that get aggregated over based on the provided criteria. + """ + filter: ComponentFilterInput - """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + """ + Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. - """ - any_of: [MoneyListFilterInput!] + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int - """ - Matches records where any of the list elements match the provided sub-filter. + """ + Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). - When `null` or an empty object is passed, matches all documents. - """ - any_satisfy: MoneyFilterInput + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ComponentAggregationConnection + components( + """ + Used to forward-paginate through the `components`. When provided, the next page after the + provided cursor will be returned. - """ - Used to filter on the number of non-null elements in this list field. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor - When `null` or an empty object is passed, matches all documents. - """ - count: IntFilterInput + """ + Used to backward-paginate through the `components`. When provided, the previous page before the + provided cursor will be returned. - """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor - When `null` or an empty object is passed, matches no documents. - """ - not: MoneyListFilterInput -} + """ + Used to filter the returned `components` based on the provided criteria. + """ + filter: ComponentFilterInput -interface NamedEntity { + """ + Used in conjunction with the `after` argument to forward-paginate through the `components`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `components`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `components`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `components` should be sorted. + """ + order_by: [ComponentSortOrderInput!] + ): ComponentConnection + created_at: DateTime! id: ID! + manufacturer: Manufacturer + material: Material name: String } """ -Type used to perform aggregation computations on `NamedEntity` fields. +Type used to perform aggregation computations on `MechanicalPart` fields. """ -type NamedEntityAggregatedValues { +type MechanicalPartAggregatedValues { """ - Computed aggregate values for the `amount_cents` field. + Computed aggregate values for the `created_at` field. """ - amount_cents: IntAggregatedValues + created_at: DateTimeAggregatedValues """ - Computed aggregate values for the `amount_cents2` field. + Computed aggregate values for the `id` field. """ - amount_cents2: IntAggregatedValues + id: NonNumericAggregatedValues """ - Computed aggregate values for the `amounts` field. + Computed aggregate values for the `material` field. """ - amounts: IntAggregatedValues + material: NonNumericAggregatedValues """ - Computed aggregate values for the `ceo` field. + Computed aggregate values for the `name` field. """ - ceo: PersonAggregatedValues + name: NonNumericAggregatedValues +} +""" +Return type representing a bucket of `MechanicalPart` documents for an aggregations query. +""" +type MechanicalPartAggregation { """ - Computed aggregate values for the `cost` field. + Provides computed aggregated values over all `MechanicalPart` documents in an aggregation bucket. """ - cost: MoneyAggregatedValues + aggregated_values: MechanicalPartAggregatedValues """ - Computed aggregate values for the `cost_currency_introduced_on` field. + The count of `MechanicalPart` documents in an aggregation bucket. """ - cost_currency_introduced_on: DateAggregatedValues + count: JsonSafeLong! """ - Computed aggregate values for the `cost_currency_name` field. + Used to specify the `MechanicalPart` fields to group by. The returned values identify each aggregation bucket. """ - cost_currency_name: NonNumericAggregatedValues + grouped_by: MechanicalPartGroupedBy +} - """ - Computed aggregate values for the `cost_currency_primary_continent` field. - """ - cost_currency_primary_continent: NonNumericAggregatedValues +""" +Represents a paginated collection of `MechanicalPartAggregation` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type MechanicalPartAggregationConnection { """ - Computed aggregate values for the `cost_currency_symbol` field. + Wraps a specific `MechanicalPartAggregation` to pair it with its pagination cursor. """ - cost_currency_symbol: NonNumericAggregatedValues + edges: [MechanicalPartAggregationEdge!]! """ - Computed aggregate values for the `cost_currency_unit` field. + The list of `MechanicalPartAggregation` results. """ - cost_currency_unit: NonNumericAggregatedValues + nodes: [MechanicalPartAggregation!]! """ - Computed aggregate values for the `created_at` field. + Provides pagination-related information. """ - created_at: DateTimeAggregatedValues + page_info: PageInfo! +} - """ - Computed aggregate values for the `created_at2` field. - """ - created_at2: DateTimeAggregatedValues +""" +Represents a specific `MechanicalPartAggregation` in the context of a `MechanicalPartAggregationConnection`, +providing access to both the `MechanicalPartAggregation` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type MechanicalPartAggregationEdge { """ - Computed aggregate values for the `created_at_time_of_day` field. + The `Cursor` of this `MechanicalPartAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `MechanicalPartAggregation`. """ - created_at_time_of_day: LocalTimeAggregatedValues + cursor: Cursor """ - Computed aggregate values for the `created_on` field. + The `MechanicalPartAggregation` of this edge. """ - created_on: DateAggregatedValues + node: MechanicalPartAggregation +} - """ - Computed aggregate values for the `fees` field. - """ - fees: MoneyAggregatedValues +""" +Represents a paginated collection of `MechanicalPart` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type MechanicalPartConnection { """ - Computed aggregate values for the `id` field. + Wraps a specific `MechanicalPart` to pair it with its pagination cursor. """ - id: NonNumericAggregatedValues + edges: [MechanicalPartEdge!]! """ - Computed aggregate values for the `internal_details` field. + The list of `MechanicalPart` results. """ - internal_details: WidgetInternalDetailsAggregatedValues + nodes: [MechanicalPart!]! """ - Computed aggregate values for the `internal_highlightable_details` field. + Provides pagination-related information. """ - internal_highlightable_details: WidgetInternalDetailsAggregatedValues + page_info: PageInfo! """ - Computed aggregate values for the `internal_highlightable_name` field. + The total number of edges available in this connection to paginate over. """ - internal_highlightable_name: NonNumericAggregatedValues + total_edge_count: JsonSafeLong! +} - """ - Computed aggregate values for the `internal_name` field. - """ - internal_name: NonNumericAggregatedValues +""" +Represents a specific `MechanicalPart` in the context of a `MechanicalPartConnection`, +providing access to both the `MechanicalPart` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type MechanicalPartEdge { """ - Computed aggregate values for the `inventor` field. + All search highlights for this `MechanicalPart`, indicating where in the indexed document the query matched. """ - inventor: InventorAggregatedValues + all_highlights: [SearchHighlight!]! """ - Computed aggregate values for the `material` field. + The `Cursor` of this `MechanicalPart`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `MechanicalPart`. """ - material: NonNumericAggregatedValues + cursor: Cursor """ - Computed aggregate values for the `metadata` field. + Specific search highlights for this `MechanicalPart`, providing matching snippets for the requested fields. """ - metadata: NonNumericAggregatedValues + highlights: MechanicalPartHighlights """ - Computed aggregate values for the `name` field. + The `MechanicalPart` of this edge. """ - name: NonNumericAggregatedValues + node: MechanicalPart +} - """ - Computed aggregate values for the `named_inventor` field. - """ - named_inventor: NamedInventorAggregatedValues - - """ - Computed aggregate values for the `options` field. - """ - options: WidgetOptionsAggregatedValues - - """ - Computed aggregate values for the `position` field. - """ - position: PositionAggregatedValues +""" +Input type used to specify filters on `MechanicalPart` fields. +Will match all documents if passed as an empty object (or as `null`). +""" +input MechanicalPartFilterInput { """ - Computed aggregate values for the `release_dates` field. - """ - release_dates: DateAggregatedValues + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - """ - Computed aggregate values for the `release_timestamps` field. - """ - release_timestamps: DateTimeAggregatedValues + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `MechanicalPartFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + When `null` or an empty list is passed, matches all documents. """ - Computed aggregate values for the `size` field. - """ - size: NonNumericAggregatedValues + all_of: [MechanicalPartFilterInput!] """ - Computed aggregate values for the `tags` field. - """ - tags: NonNumericAggregatedValues + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - Computed aggregate values for the `the_options` field. - """ - the_options: WidgetOptionsAggregatedValues + any_of: [MechanicalPartFilterInput!] """ - Computed aggregate values for the `voltage` field. - """ - voltage: IntAggregatedValues + Used to filter on the `created_at` field. + When `null` or an empty object is passed, matches all documents. """ - Computed aggregate values for the `weight_in_ng` field. - """ - weight_in_ng: JsonSafeLongAggregatedValues + created_at: DateTimeFilterInput """ - Computed aggregate values for the `weight_in_ng_str` field. - """ - weight_in_ng_str: LongStringAggregatedValues + Used to filter on the `id` field. + When `null` or an empty object is passed, matches all documents. """ - Computed aggregate values for the `widget_cost` field. - """ - widget_cost: MoneyAggregatedValues + id: IDFilterInput """ - Computed aggregate values for the `widget_name` field. - """ - widget_name: NonNumericAggregatedValues + Used to filter on the `material` field. + When `null` or an empty object is passed, matches all documents. """ - Computed aggregate values for the `widget_size` field. - """ - widget_size: NonNumericAggregatedValues + material: MaterialFilterInput """ - Computed aggregate values for the `widget_tags` field. - """ - widget_tags: NonNumericAggregatedValues + Used to filter on the `name` field. + When `null` or an empty object is passed, matches all documents. """ - Computed aggregate values for the `widget_workspace_id` field. - """ - widget_workspace_id: NonNumericAggregatedValues + name: StringFilterInput """ - Computed aggregate values for the `workspace_id` field. - """ - workspace_id: NonNumericAggregatedValues + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + When `null` or an empty object is passed, matches no documents. """ - Computed aggregate values for the `workspace_name` field. - """ - workspace_name: NonNumericAggregatedValues + not: MechanicalPartFilterInput } """ -Return type representing a bucket of `NamedEntity` documents for an aggregations query. +Type used to specify the `MechanicalPart` fields to group by for aggregations. """ -type NamedEntityAggregation { +type MechanicalPartGroupedBy { """ - Provides computed aggregated values over all `NamedEntity` documents in an aggregation bucket. + Offers the different grouping options for the `created_at` value within this group. """ - aggregated_values: NamedEntityAggregatedValues + created_at: DateTimeGroupedBy """ - The count of `NamedEntity` documents in an aggregation bucket. + The `material` field value for this group. """ - count: JsonSafeLong! + material: Material """ - Used to specify the `NamedEntity` fields to group by. The returned values identify each aggregation bucket. + The `name` field value for this group. """ - grouped_by: NamedEntityGroupedBy + name: String } """ -Represents a paginated collection of `NamedEntityAggregation` results. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +Type used to request desired `MechanicalPart` search highlight fields. """ -type NamedEntityAggregationConnection { +type MechanicalPartHighlights { """ - Wraps a specific `NamedEntityAggregation` to pair it with its pagination cursor. + Search highlights for the `id`, providing snippets of the matching text. """ - edges: [NamedEntityAggregationEdge!]! + id: [String!]! """ - The list of `NamedEntityAggregation` results. + Search highlights for the `material`, providing snippets of the matching text. """ - nodes: [NamedEntityAggregation!]! + material: [String!]! """ - Provides pagination-related information. + Search highlights for the `name`, providing snippets of the matching text. """ - page_info: PageInfo! + name: [String!]! } """ -Represents a specific `NamedEntityAggregation` in the context of a `NamedEntityAggregationConnection`, -providing access to both the `NamedEntityAggregation` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +Enumerates the ways `MechanicalPart`s can be sorted. """ -type NamedEntityAggregationEdge { +enum MechanicalPartSortOrderInput { """ - The `Cursor` of this `NamedEntityAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `NamedEntityAggregation`. + Sorts ascending by the `created_at` field. """ - cursor: Cursor + created_at_ASC """ - The `NamedEntityAggregation` of this edge. + Sorts descending by the `created_at` field. """ - node: NamedEntityAggregation -} - -""" -Represents a paginated collection of `NamedEntity` results. + created_at_DESC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type NamedEntityConnection { """ - Wraps a specific `NamedEntity` to pair it with its pagination cursor. + Sorts ascending by the `id` field. """ - edges: [NamedEntityEdge!]! + id_ASC """ - The list of `NamedEntity` results. + Sorts descending by the `id` field. """ - nodes: [NamedEntity!]! + id_DESC """ - Provides pagination-related information. + Sorts ascending by the `material` field. """ - page_info: PageInfo! + material_ASC """ - The total number of edges available in this connection to paginate over. + Sorts descending by the `material` field. """ - total_edge_count: JsonSafeLong! -} - -""" -Represents a specific `NamedEntity` in the context of a `NamedEntityConnection`, -providing access to both the `NamedEntity` and query-specific information such as the pagination `Cursor`. + material_DESC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type NamedEntityEdge { """ - All search highlights for this `NamedEntity`, indicating where in the indexed document the query matched. + Sorts ascending by the `name` field. """ - all_highlights: [SearchHighlight!]! + name_ASC """ - The `Cursor` of this `NamedEntity`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `NamedEntity`. + Sorts descending by the `name` field. """ - cursor: Cursor + name_DESC +} + +type MobileStore implements DistributionChannel & Retail & Store @key(fields: "id") { + active: Boolean + current_location: String + customer_facing: Boolean + established_on: Date + id: ID! + vehicle_type: String! +} + +type Money { + amount_cents: Int + currency: String! +} +""" +Type used to perform aggregation computations on `Money` fields. +""" +type MoneyAggregatedValues { """ - Specific search highlights for this `NamedEntity`, providing matching snippets for the requested fields. + Computed aggregate values for the `amount_cents` field. """ - highlights: NamedEntityHighlights + amount_cents: IntAggregatedValues """ - The `NamedEntity` of this edge. + Computed aggregate values for the `currency` field. """ - node: NamedEntity + currency: NonNumericAggregatedValues } """ -Input type used to specify filters on `NamedEntity` fields. +Input type used to specify filters on a `Money` object referenced directly +or transitively from a list field that has been configured to index each leaf field as +its own flattened list of values. Will match all documents if passed as an empty object (or as `null`). """ -input NamedEntityFilterInput { +input MoneyFieldsListFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `NamedEntityFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `MoneyFieldsListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [NamedEntityFilterInput!] + all_of: [MoneyFieldsListFilterInput!] """ Used to filter on the `amount_cents` field. When `null` or an empty object is passed, matches all documents. """ - amount_cents: IntFilterInput - - """ - Used to filter on the `amount_cents2` field. - - When `null` or an empty object is passed, matches all documents. - """ - amount_cents2: IntFilterInput - - """ - Used to filter on the `amounts` field. - - When `null` or an empty object is passed, matches all documents. - """ - amounts: IntListFilterInput + amount_cents: IntListFilterInput """ Matches records where any of the provided sub-filters evaluate to true. @@ -6549,1463 +6275,1485 @@ input NamedEntityFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [NamedEntityFilterInput!] + any_of: [MoneyFieldsListFilterInput!] """ - Used to filter on the `ceo` field. + Used to filter on the number of non-null elements in this list field. When `null` or an empty object is passed, matches all documents. """ - ceo: PersonFilterInput + count: IntFilterInput """ - Used to filter on the `cost` field. + Used to filter on the `currency` field. When `null` or an empty object is passed, matches all documents. """ - cost: MoneyFilterInput - - """ - Used to filter on the `cost_currency_introduced_on` field. + currency: StringListFilterInput - When `null` or an empty object is passed, matches all documents. """ - cost_currency_introduced_on: DateFilterInput + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + When `null` or an empty object is passed, matches no documents. """ - Used to filter on the `cost_currency_name` field. + not: MoneyFieldsListFilterInput +} - When `null` or an empty object is passed, matches all documents. - """ - cost_currency_name: StringFilterInput +""" +Input type used to specify filters on `Money` fields. +Will match all documents if passed as an empty object (or as `null`). +""" +input MoneyFilterInput { """ - Used to filter on the `cost_currency_primary_continent` field. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - When `null` or an empty object is passed, matches all documents. + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `MoneyFilterInput` input because of collisions between + key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - cost_currency_primary_continent: StringFilterInput + all_of: [MoneyFilterInput!] """ - Used to filter on the `cost_currency_symbol` field. + Used to filter on the `amount_cents` field. When `null` or an empty object is passed, matches all documents. """ - cost_currency_symbol: StringFilterInput + amount_cents: IntFilterInput """ - Used to filter on the `cost_currency_unit` field. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - cost_currency_unit: StringFilterInput + any_of: [MoneyFilterInput!] """ - Used to filter on the `created_at` field. + Used to filter on the `currency` field. When `null` or an empty object is passed, matches all documents. """ - created_at: DateTimeFilterInput + currency: StringFilterInput """ - Used to filter on the `created_at2` field. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` or an empty object is passed, matches no documents. """ - created_at2: DateTimeFilterInput + not: MoneyFilterInput +} +""" +Type used to specify the `Money` fields to group by for aggregations. +""" +type MoneyGroupedBy { """ - Used to filter on the `created_at_time_of_day` field. - - When `null` or an empty object is passed, matches all documents. + The `amount_cents` field value for this group. """ - created_at_time_of_day: LocalTimeFilterInput + amount_cents: Int """ - Used to filter on the `created_on` field. - - When `null` or an empty object is passed, matches all documents. + The `currency` field value for this group. """ - created_on: DateFilterInput + currency: String +} +""" +Type used to request desired `Money` search highlight fields. +""" +type MoneyHighlights { """ - Used to filter on the `description` field. - - When `null` or an empty object is passed, matches all documents. + Search highlights for the `currency`, providing snippets of the matching text. """ - description: TextFilterInput + currency: [String!]! +} - """ - Used to filter on the `fees` field. +""" +Input type used to specify filters on `[Money]` fields. - When `null` or an empty object is passed, matches all documents. +Will match all documents if passed as an empty object (or as `null`). +""" +input MoneyListFilterInput { """ - fees: MoneyFieldsListFilterInput + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - """ - Used to filter on the `id` field. + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `MoneyListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - When `null` or an empty object is passed, matches all documents. + When `null` or an empty list is passed, matches all documents. """ - id: IDFilterInput + all_of: [MoneyListFilterInput!] """ - Used to filter on the `internal_details` field. + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - internal_details: WidgetInternalDetailsFilterInput + any_of: [MoneyListFilterInput!] """ - Used to filter on the `internal_highlightable_details` field. + Matches records where any of the list elements match the provided sub-filter. When `null` or an empty object is passed, matches all documents. """ - internal_highlightable_details: WidgetInternalDetailsFilterInput + any_satisfy: MoneyFilterInput """ - Used to filter on the `internal_highlightable_name` field. + Used to filter on the number of non-null elements in this list field. When `null` or an empty object is passed, matches all documents. """ - internal_highlightable_name: StringFilterInput + count: IntFilterInput """ - Used to filter on the `internal_name` field. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - When `null` or an empty object is passed, matches all documents. + When `null` or an empty object is passed, matches no documents. """ - internal_name: StringFilterInput + not: MoneyListFilterInput +} - """ - Used to filter on the `inventor` field. +interface NamedEntity { + id: ID! + name: String +} - When `null` or an empty object is passed, matches all documents. +""" +Type used to perform aggregation computations on `NamedEntity` fields. +""" +type NamedEntityAggregatedValues { """ - inventor: InventorFilterInput - + Computed aggregate values for the `amount_cents` field. """ - Used to filter on the `material` field. + amount_cents: IntAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - material: MaterialFilterInput - + Computed aggregate values for the `amount_cents2` field. """ - Used to filter on the `metadata` field. + amount_cents2: IntAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - metadata: UntypedFilterInput - + Computed aggregate values for the `amounts` field. """ - Used to filter on the `name` field. + amounts: IntAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - name: StringFilterInput - + Computed aggregate values for the `ceo` field. """ - Used to filter on the `name_text` field. + ceo: PersonAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - name_text: TextFilterInput - + Computed aggregate values for the `cost` field. """ - Used to filter on the `named_inventor` field. + cost: MoneyAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - named_inventor: NamedInventorFilterInput - + Computed aggregate values for the `cost_currency_introduced_on` field. """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + cost_currency_introduced_on: DateAggregatedValues - When `null` or an empty object is passed, matches no documents. """ - not: NamedEntityFilterInput - + Computed aggregate values for the `cost_currency_name` field. """ - Used to filter on the `options` field. + cost_currency_name: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - options: WidgetOptionsFilterInput - + Computed aggregate values for the `cost_currency_primary_continent` field. """ - Used to filter on the `position` field. + cost_currency_primary_continent: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - position: PositionFilterInput - + Computed aggregate values for the `cost_currency_symbol` field. """ - Used to filter on the `release_dates` field. + cost_currency_symbol: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - release_dates: DateListFilterInput - + Computed aggregate values for the `cost_currency_unit` field. """ - Used to filter on the `release_timestamps` field. + cost_currency_unit: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - release_timestamps: DateTimeListFilterInput - + Computed aggregate values for the `created_at` field. """ - Used to filter on the `size` field. + created_at: DateTimeAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - size: SizeFilterInput - + Computed aggregate values for the `created_at2` field. """ - Used to filter on the `tags` field. + created_at2: DateTimeAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - tags: StringListFilterInput - + Computed aggregate values for the `created_at_time_of_day` field. """ - Used to filter on the `the_options` field. + created_at_time_of_day: LocalTimeAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - the_options: WidgetOptionsFilterInput - + Computed aggregate values for the `created_on` field. """ - Used to filter on the `voltage` field. + created_on: DateAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - voltage: IntFilterInput - + Computed aggregate values for the `fees` field. """ - Used to filter on the `weight_in_ng` field. + fees: MoneyAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - weight_in_ng: JsonSafeLongFilterInput - + Computed aggregate values for the `id` field. """ - Used to filter on the `weight_in_ng_str` field. + id: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - weight_in_ng_str: LongStringFilterInput - + Computed aggregate values for the `internal_details` field. """ - Used to filter on the `widget_cost` field. + internal_details: WidgetInternalDetailsAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_cost: MoneyFilterInput - + Computed aggregate values for the `internal_highlightable_details` field. """ - Used to filter on the `widget_name` field. + internal_highlightable_details: WidgetInternalDetailsAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_name: StringFilterInput - + Computed aggregate values for the `internal_highlightable_name` field. """ - Used to filter on the `widget_size` field. + internal_highlightable_name: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_size: SizeFilterInput - + Computed aggregate values for the `internal_name` field. """ - Used to filter on the `widget_tags` field. + internal_name: NonNumericAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_tags: StringListFilterInput - + Computed aggregate values for the `inventor` field. """ - Used to filter on the `widget_workspace_id` field. + inventor: InventorAggregatedValues - When `null` or an empty object is passed, matches all documents. """ - widget_workspace_id: IDFilterInput - + Computed aggregate values for the `material` field. """ - Used to filter on the `workspace_id` field. - - When `null` or an empty object is passed, matches all documents. - """ - workspace_id: IDFilterInput + material: NonNumericAggregatedValues """ - Used to filter on the `workspace_name` field. - - When `null` or an empty object is passed, matches all documents. + Computed aggregate values for the `metadata` field. """ - workspace_name: StringFilterInput -} + metadata: NonNumericAggregatedValues -""" -Type used to specify the `NamedEntity` fields to group by for aggregations. -""" -type NamedEntityGroupedBy { """ - The `amount_cents` field value for this group. + Computed aggregate values for the `name` field. """ - amount_cents: Int + name: NonNumericAggregatedValues """ - The `amount_cents2` field value for this group. + Computed aggregate values for the `named_inventor` field. """ - amount_cents2: Int + named_inventor: NamedInventorAggregatedValues """ - The `ceo` field value for this group. + Computed aggregate values for the `options` field. """ - ceo: PersonGroupedBy + options: WidgetOptionsAggregatedValues """ - The `cost` field value for this group. + Computed aggregate values for the `position` field. """ - cost: MoneyGroupedBy + position: PositionAggregatedValues """ - Offers the different grouping options for the `cost_currency_introduced_on` value within this group. + Computed aggregate values for the `release_dates` field. """ - cost_currency_introduced_on: DateGroupedBy + release_dates: DateAggregatedValues """ - The `cost_currency_name` field value for this group. + Computed aggregate values for the `release_timestamps` field. """ - cost_currency_name: String + release_timestamps: DateTimeAggregatedValues """ - The `cost_currency_primary_continent` field value for this group. + Computed aggregate values for the `size` field. """ - cost_currency_primary_continent: String + size: NonNumericAggregatedValues """ - The `cost_currency_symbol` field value for this group. + Computed aggregate values for the `tags` field. """ - cost_currency_symbol: String + tags: NonNumericAggregatedValues """ - The `cost_currency_unit` field value for this group. + Computed aggregate values for the `the_options` field. """ - cost_currency_unit: String + the_options: WidgetOptionsAggregatedValues """ - Offers the different grouping options for the `created_at` value within this group. + Computed aggregate values for the `voltage` field. """ - created_at: DateTimeGroupedBy + voltage: IntAggregatedValues """ - Offers the different grouping options for the `created_at2` value within this group. + Computed aggregate values for the `weight_in_ng` field. """ - created_at2: DateTimeGroupedBy + weight_in_ng: JsonSafeLongAggregatedValues """ - The `created_at_time_of_day` field value for this group. + Computed aggregate values for the `weight_in_ng_str` field. """ - created_at_time_of_day: LocalTime + weight_in_ng_str: LongStringAggregatedValues """ - Offers the different grouping options for the `created_on` value within this group. + Computed aggregate values for the `widget_cost` field. """ - created_on: DateGroupedBy + widget_cost: MoneyAggregatedValues """ - The `fees` field value for this group. - - Note: `fees` is a collection field, but selecting this field will group on - individual values of the selected subfields of `fees`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `fees` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `fees` multiple times for a single document, that document will only be included in the group - once. + Computed aggregate values for the `widget_name` field. """ - fees: MoneyGroupedBy + widget_name: NonNumericAggregatedValues """ - The `internal_details` field value for this group. + Computed aggregate values for the `widget_size` field. """ - internal_details: WidgetInternalDetailsGroupedBy + widget_size: NonNumericAggregatedValues """ - The `internal_highlightable_details` field value for this group. + Computed aggregate values for the `widget_tags` field. """ - internal_highlightable_details: WidgetInternalDetailsGroupedBy + widget_tags: NonNumericAggregatedValues """ - The `internal_highlightable_name` field value for this group. + Computed aggregate values for the `widget_workspace_id` field. """ - internal_highlightable_name: String + widget_workspace_id: NonNumericAggregatedValues """ - The `internal_name` field value for this group. + Computed aggregate values for the `workspace_id` field. """ - internal_name: String + workspace_id: NonNumericAggregatedValues """ - The `inventor` field value for this group. + Computed aggregate values for the `workspace_name` field. """ - inventor: InventorGroupedBy + workspace_name: NonNumericAggregatedValues +} +""" +Return type representing a bucket of `NamedEntity` documents for an aggregations query. +""" +type NamedEntityAggregation { """ - The `material` field value for this group. + Provides computed aggregated values over all `NamedEntity` documents in an aggregation bucket. """ - material: Material + aggregated_values: NamedEntityAggregatedValues """ - The `metadata` field value for this group. + The count of `NamedEntity` documents in an aggregation bucket. """ - metadata: Untyped + count: JsonSafeLong! """ - The `name` field value for this group. + Used to specify the `NamedEntity` fields to group by. The returned values identify each aggregation bucket. """ - name: String + grouped_by: NamedEntityGroupedBy +} - """ - The `named_inventor` field value for this group. - """ - named_inventor: NamedInventorGroupedBy +""" +Represents a paginated collection of `NamedEntityAggregation` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type NamedEntityAggregationConnection { """ - The `options` field value for this group. + Wraps a specific `NamedEntityAggregation` to pair it with its pagination cursor. """ - options: WidgetOptionsGroupedBy + edges: [NamedEntityAggregationEdge!]! """ - The `position` field value for this group. - """ - position: PositionGroupedBy - + The list of `NamedEntityAggregation` results. """ - The individual value from `release_dates` for this group. + nodes: [NamedEntityAggregation!]! - Note: `release_dates` is a collection field, but selecting this field will group on individual values of `release_dates`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `release_dates` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `release_dates` multiple times for a single document, that document will only be included in the group - once. """ - release_date: DateGroupedBy - + Provides pagination-related information. """ - The individual value from `release_timestamps` for this group. + page_info: PageInfo! +} - Note: `release_timestamps` is a collection field, but selecting this field - will group on individual values of `release_timestamps`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `release_timestamps` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `release_timestamps` multiple times for a single document, that document will only be included in the group - once. - """ - release_timestamp: DateTimeGroupedBy +""" +Represents a specific `NamedEntityAggregation` in the context of a `NamedEntityAggregationConnection`, +providing access to both the `NamedEntityAggregation` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type NamedEntityAggregationEdge { """ - The `size` field value for this group. + The `Cursor` of this `NamedEntityAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `NamedEntityAggregation`. """ - size: Size + cursor: Cursor """ - The individual value from `tags` for this group. - - Note: `tags` is a collection field, but selecting this field will group on individual values of `tags`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `tags` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `tags` multiple times for a single document, that document will only be included in the group - once. + The `NamedEntityAggregation` of this edge. """ - tag: String + node: NamedEntityAggregation +} - """ - The `the_options` field value for this group. - """ - the_options: WidgetOptionsGroupedBy +""" +Represents a paginated collection of `NamedEntity` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type NamedEntityConnection { """ - The `voltage` field value for this group. + Wraps a specific `NamedEntity` to pair it with its pagination cursor. """ - voltage: Int + edges: [NamedEntityEdge!]! """ - The `weight_in_ng` field value for this group. + The list of `NamedEntity` results. """ - weight_in_ng: JsonSafeLong + nodes: [NamedEntity!]! """ - The `weight_in_ng_str` field value for this group. + Provides pagination-related information. """ - weight_in_ng_str: LongString + page_info: PageInfo! """ - The `widget_cost` field value for this group. + The total number of edges available in this connection to paginate over. """ - widget_cost: MoneyGroupedBy + total_edge_count: JsonSafeLong! +} - """ - The `widget_name` field value for this group. - """ - widget_name: String +""" +Represents a specific `NamedEntity` in the context of a `NamedEntityConnection`, +providing access to both the `NamedEntity` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type NamedEntityEdge { """ - The `widget_size` field value for this group. + All search highlights for this `NamedEntity`, indicating where in the indexed document the query matched. """ - widget_size: Size + all_highlights: [SearchHighlight!]! """ - The `widget_workspace_id` field value for this group. + The `Cursor` of this `NamedEntity`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `NamedEntity`. """ - widget_workspace_id: ID + cursor: Cursor """ - The `workspace_id` field value for this group. + Specific search highlights for this `NamedEntity`, providing matching snippets for the requested fields. """ - workspace_id: ID + highlights: NamedEntityHighlights """ - The `workspace_name` field value for this group. + The `NamedEntity` of this edge. """ - workspace_name: String + node: NamedEntity } """ -Type used to request desired `NamedEntity` search highlight fields. +Input type used to specify filters on `NamedEntity` fields. + +Will match all documents if passed as an empty object (or as `null`). """ -type NamedEntityHighlights { - """ - Search highlights for the `ceo`, providing snippets of the matching text. +input NamedEntityFilterInput { """ - ceo: PersonHighlights + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `NamedEntityFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. """ - Search highlights for the `cost`, providing snippets of the matching text. - """ - cost: MoneyHighlights + all_of: [NamedEntityFilterInput!] """ - Search highlights for the `cost_currency_name`, providing snippets of the matching text. - """ - cost_currency_name: [String!]! + Used to filter on the `amount_cents` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `cost_currency_primary_continent`, providing snippets of the matching text. - """ - cost_currency_primary_continent: [String!]! + amount_cents: IntFilterInput """ - Search highlights for the `cost_currency_symbol`, providing snippets of the matching text. - """ - cost_currency_symbol: [String!]! + Used to filter on the `amount_cents2` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `cost_currency_unit`, providing snippets of the matching text. + amount_cents2: IntFilterInput + """ - cost_currency_unit: [String!]! + Used to filter on the `amounts` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `description`, providing snippets of the matching text. + amounts: IntListFilterInput + """ - description: [String!]! + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. """ - Search highlights for the `fees`, providing snippets of the matching text. + any_of: [NamedEntityFilterInput!] + """ - fees: MoneyHighlights + Used to filter on the `ceo` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `id`, providing snippets of the matching text. + ceo: PersonFilterInput + """ - id: [String!]! + Used to filter on the `cost` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `internal_highlightable_details`, providing snippets of the matching text. + cost: MoneyFilterInput + """ - internal_highlightable_details: WidgetInternalDetailsHighlights + Used to filter on the `cost_currency_introduced_on` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `internal_highlightable_name`, providing snippets of the matching text. + cost_currency_introduced_on: DateFilterInput + """ - internal_highlightable_name: [String!]! + Used to filter on the `cost_currency_name` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `inventor`, providing snippets of the matching text. + cost_currency_name: StringFilterInput + """ - inventor: InventorHighlights + Used to filter on the `cost_currency_primary_continent` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `material`, providing snippets of the matching text. + cost_currency_primary_continent: StringFilterInput + """ - material: [String!]! + Used to filter on the `cost_currency_symbol` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `metadata`, providing snippets of the matching text. + cost_currency_symbol: StringFilterInput + """ - metadata: [String!]! + Used to filter on the `cost_currency_unit` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `name`, providing snippets of the matching text. + cost_currency_unit: StringFilterInput + """ - name: [String!]! + Used to filter on the `created_at` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `name_text`, providing snippets of the matching text. + created_at: DateTimeFilterInput + """ - name_text: [String!]! + Used to filter on the `created_at2` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `named_inventor`, providing snippets of the matching text. + created_at2: DateTimeFilterInput + """ - named_inventor: NamedInventorHighlights + Used to filter on the `created_at_time_of_day` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `options`, providing snippets of the matching text. + created_at_time_of_day: LocalTimeFilterInput + """ - options: WidgetOptionsHighlights + Used to filter on the `created_on` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `size`, providing snippets of the matching text. + created_on: DateFilterInput + """ - size: [String!]! + Used to filter on the `description` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `tags`, providing snippets of the matching text. + description: TextFilterInput + """ - tags: [String!]! + Used to filter on the `fees` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `the_options`, providing snippets of the matching text. + fees: MoneyFieldsListFilterInput + """ - the_options: WidgetOptionsHighlights + Used to filter on the `id` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `widget_cost`, providing snippets of the matching text. + id: IDFilterInput + """ - widget_cost: MoneyHighlights + Used to filter on the `internal_details` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `widget_name`, providing snippets of the matching text. + internal_details: WidgetInternalDetailsFilterInput + """ - widget_name: [String!]! + Used to filter on the `internal_highlightable_details` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `widget_size`, providing snippets of the matching text. + internal_highlightable_details: WidgetInternalDetailsFilterInput + """ - widget_size: [String!]! + Used to filter on the `internal_highlightable_name` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `widget_tags`, providing snippets of the matching text. + internal_highlightable_name: StringFilterInput + """ - widget_tags: [String!]! + Used to filter on the `internal_name` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `widget_workspace_id`, providing snippets of the matching text. + internal_name: StringFilterInput + """ - widget_workspace_id: [String!]! + Used to filter on the `inventor` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `workspace_id`, providing snippets of the matching text. + inventor: InventorFilterInput + """ - workspace_id: [String!]! + Used to filter on the `material` field. + When `null` or an empty object is passed, matches all documents. """ - Search highlights for the `workspace_name`, providing snippets of the matching text. + material: MaterialFilterInput + """ - workspace_name: [String!]! -} + Used to filter on the `metadata` field. -""" -Enumerates the ways `NamedEntity`s can be sorted. -""" -enum NamedEntitySortOrderInput { + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `amount_cents2` field. + metadata: UntypedFilterInput + """ - amount_cents2_ASC + Used to filter on the `name` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `amount_cents2` field. + name: StringFilterInput + """ - amount_cents2_DESC + Used to filter on the `name_text` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `amount_cents` field. + name_text: TextFilterInput + """ - amount_cents_ASC + Used to filter on the `named_inventor` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `amount_cents` field. + named_inventor: NamedInventorFilterInput + """ - amount_cents_DESC + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + When `null` or an empty object is passed, matches no documents. """ - Sorts ascending by the `ceo.id` field. + not: NamedEntityFilterInput + """ - ceo_id_ASC + Used to filter on the `options` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `ceo.id` field. + options: WidgetOptionsFilterInput + """ - ceo_id_DESC + Used to filter on the `position` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `ceo.name` field. + position: PositionFilterInput + """ - ceo_name_ASC + Used to filter on the `release_dates` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `ceo.name` field. + release_dates: DateListFilterInput + """ - ceo_name_DESC + Used to filter on the `release_timestamps` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `ceo.nationality` field. + release_timestamps: DateTimeListFilterInput + """ - ceo_nationality_ASC + Used to filter on the `size` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `ceo.nationality` field. + size: SizeFilterInput + """ - ceo_nationality_DESC + Used to filter on the `tags` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `cost.amount_cents` field. + tags: StringListFilterInput + """ - cost_amount_cents_ASC + Used to filter on the `the_options` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `cost.amount_cents` field. + the_options: WidgetOptionsFilterInput + """ - cost_amount_cents_DESC + Used to filter on the `voltage` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `cost.currency` field. + voltage: IntFilterInput + """ - cost_currency_ASC + Used to filter on the `weight_in_ng` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `cost.currency` field. + weight_in_ng: JsonSafeLongFilterInput + """ - cost_currency_DESC + Used to filter on the `weight_in_ng_str` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `cost_currency_introduced_on` field. + weight_in_ng_str: LongStringFilterInput + """ - cost_currency_introduced_on_ASC + Used to filter on the `widget_cost` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `cost_currency_introduced_on` field. + widget_cost: MoneyFilterInput + """ - cost_currency_introduced_on_DESC + Used to filter on the `widget_name` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `cost_currency_name` field. - """ - cost_currency_name_ASC + widget_name: StringFilterInput """ - Sorts descending by the `cost_currency_name` field. + Used to filter on the `widget_size` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_name_DESC + widget_size: SizeFilterInput """ - Sorts ascending by the `cost_currency_primary_continent` field. + Used to filter on the `widget_tags` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_primary_continent_ASC + widget_tags: StringListFilterInput """ - Sorts descending by the `cost_currency_primary_continent` field. + Used to filter on the `widget_workspace_id` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_primary_continent_DESC + widget_workspace_id: IDFilterInput """ - Sorts ascending by the `cost_currency_symbol` field. + Used to filter on the `workspace_id` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_symbol_ASC + workspace_id: IDFilterInput """ - Sorts descending by the `cost_currency_symbol` field. + Used to filter on the `workspace_name` field. + + When `null` or an empty object is passed, matches all documents. """ - cost_currency_symbol_DESC + workspace_name: StringFilterInput +} +""" +Type used to specify the `NamedEntity` fields to group by for aggregations. +""" +type NamedEntityGroupedBy { """ - Sorts ascending by the `cost_currency_unit` field. + The `amount_cents` field value for this group. """ - cost_currency_unit_ASC + amount_cents: Int """ - Sorts descending by the `cost_currency_unit` field. + The `amount_cents2` field value for this group. """ - cost_currency_unit_DESC + amount_cents2: Int """ - Sorts ascending by the `created_at2` field. + The `ceo` field value for this group. """ - created_at2_ASC + ceo: PersonGroupedBy """ - Sorts descending by the `created_at2` field. + The `cost` field value for this group. """ - created_at2_DESC + cost: MoneyGroupedBy """ - Sorts ascending by the `created_at` field. + Offers the different grouping options for the `cost_currency_introduced_on` value within this group. """ - created_at_ASC + cost_currency_introduced_on: DateGroupedBy """ - Sorts descending by the `created_at` field. + The `cost_currency_name` field value for this group. """ - created_at_DESC + cost_currency_name: String """ - Sorts ascending by the `created_at_time_of_day` field. + The `cost_currency_primary_continent` field value for this group. """ - created_at_time_of_day_ASC + cost_currency_primary_continent: String """ - Sorts descending by the `created_at_time_of_day` field. + The `cost_currency_symbol` field value for this group. """ - created_at_time_of_day_DESC + cost_currency_symbol: String """ - Sorts ascending by the `created_on` field. + The `cost_currency_unit` field value for this group. """ - created_on_ASC + cost_currency_unit: String """ - Sorts descending by the `created_on` field. + Offers the different grouping options for the `created_at` value within this group. """ - created_on_DESC + created_at: DateTimeGroupedBy """ - Sorts ascending by the `id` field. + Offers the different grouping options for the `created_at2` value within this group. """ - id_ASC + created_at2: DateTimeGroupedBy """ - Sorts descending by the `id` field. + The `created_at_time_of_day` field value for this group. """ - id_DESC + created_at_time_of_day: LocalTime """ - Sorts ascending by the `internal_details.name` field. + Offers the different grouping options for the `created_on` value within this group. """ - internal_details_name_ASC + created_on: DateGroupedBy """ - Sorts descending by the `internal_details.name` field. + The `fees` field value for this group. + + Note: `fees` is a collection field, but selecting this field will group on + individual values of the selected subfields of `fees`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `fees` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `fees` multiple times for a single document, that document will only be included in the group + once. """ - internal_details_name_DESC + fees: MoneyGroupedBy """ - Sorts ascending by the `internal_highlightable_details.name` field. + The `internal_details` field value for this group. """ - internal_highlightable_details_name_ASC + internal_details: WidgetInternalDetailsGroupedBy """ - Sorts descending by the `internal_highlightable_details.name` field. + The `internal_highlightable_details` field value for this group. """ - internal_highlightable_details_name_DESC + internal_highlightable_details: WidgetInternalDetailsGroupedBy """ - Sorts ascending by the `internal_highlightable_name` field. + The `internal_highlightable_name` field value for this group. """ - internal_highlightable_name_ASC + internal_highlightable_name: String """ - Sorts descending by the `internal_highlightable_name` field. + The `internal_name` field value for this group. """ - internal_highlightable_name_DESC + internal_name: String """ - Sorts ascending by the `internal_name` field. + The `inventor` field value for this group. """ - internal_name_ASC + inventor: InventorGroupedBy """ - Sorts descending by the `internal_name` field. + The `material` field value for this group. """ - internal_name_DESC + material: Material """ - Sorts ascending by the `inventor.id` field. + The `metadata` field value for this group. """ - inventor_id_ASC + metadata: Untyped """ - Sorts descending by the `inventor.id` field. + The `name` field value for this group. """ - inventor_id_DESC + name: String """ - Sorts ascending by the `inventor.name` field. + The `named_inventor` field value for this group. """ - inventor_name_ASC + named_inventor: NamedInventorGroupedBy """ - Sorts descending by the `inventor.name` field. + The `options` field value for this group. """ - inventor_name_DESC + options: WidgetOptionsGroupedBy """ - Sorts ascending by the `inventor.nationality` field. + The `position` field value for this group. """ - inventor_nationality_ASC + position: PositionGroupedBy """ - Sorts descending by the `inventor.nationality` field. + The individual value from `release_dates` for this group. + + Note: `release_dates` is a collection field, but selecting this field will group on individual values of `release_dates`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `release_dates` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `release_dates` multiple times for a single document, that document will only be included in the group + once. """ - inventor_nationality_DESC + release_date: DateGroupedBy """ - Sorts ascending by the `inventor.stock_ticker` field. + The individual value from `release_timestamps` for this group. + + Note: `release_timestamps` is a collection field, but selecting this field + will group on individual values of `release_timestamps`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `release_timestamps` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `release_timestamps` multiple times for a single document, that document will only be included in the group + once. """ - inventor_stock_ticker_ASC + release_timestamp: DateTimeGroupedBy """ - Sorts descending by the `inventor.stock_ticker` field. + The `size` field value for this group. """ - inventor_stock_ticker_DESC + size: Size """ - Sorts ascending by the `material` field. + The individual value from `tags` for this group. + + Note: `tags` is a collection field, but selecting this field will group on individual values of `tags`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `tags` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `tags` multiple times for a single document, that document will only be included in the group + once. """ - material_ASC + tag: String """ - Sorts descending by the `material` field. + The `the_options` field value for this group. """ - material_DESC + the_options: WidgetOptionsGroupedBy """ - Sorts ascending by the `metadata` field. + The `voltage` field value for this group. """ - metadata_ASC + voltage: Int """ - Sorts descending by the `metadata` field. + The `weight_in_ng` field value for this group. """ - metadata_DESC + weight_in_ng: JsonSafeLong """ - Sorts ascending by the `name` field. + The `weight_in_ng_str` field value for this group. """ - name_ASC + weight_in_ng_str: LongString """ - Sorts descending by the `name` field. + The `widget_cost` field value for this group. """ - name_DESC + widget_cost: MoneyGroupedBy """ - Sorts ascending by the `named_inventor.id` field. + The `widget_name` field value for this group. """ - named_inventor_id_ASC + widget_name: String """ - Sorts descending by the `named_inventor.id` field. + The `widget_size` field value for this group. """ - named_inventor_id_DESC + widget_size: Size """ - Sorts ascending by the `named_inventor.name` field. + The `widget_workspace_id` field value for this group. """ - named_inventor_name_ASC + widget_workspace_id: ID """ - Sorts descending by the `named_inventor.name` field. + The `workspace_id` field value for this group. """ - named_inventor_name_DESC + workspace_id: ID """ - Sorts ascending by the `named_inventor.nationality` field. + The `workspace_name` field value for this group. """ - named_inventor_nationality_ASC + workspace_name: String +} +""" +Type used to request desired `NamedEntity` search highlight fields. +""" +type NamedEntityHighlights { """ - Sorts descending by the `named_inventor.nationality` field. + Search highlights for the `ceo`, providing snippets of the matching text. """ - named_inventor_nationality_DESC + ceo: PersonHighlights """ - Sorts ascending by the `named_inventor.stock_ticker` field. + Search highlights for the `cost`, providing snippets of the matching text. """ - named_inventor_stock_ticker_ASC + cost: MoneyHighlights """ - Sorts descending by the `named_inventor.stock_ticker` field. + Search highlights for the `cost_currency_name`, providing snippets of the matching text. """ - named_inventor_stock_ticker_DESC + cost_currency_name: [String!]! """ - Sorts ascending by the `options.color` field. + Search highlights for the `cost_currency_primary_continent`, providing snippets of the matching text. """ - options_color_ASC + cost_currency_primary_continent: [String!]! """ - Sorts descending by the `options.color` field. + Search highlights for the `cost_currency_symbol`, providing snippets of the matching text. """ - options_color_DESC + cost_currency_symbol: [String!]! """ - Sorts ascending by the `options.size` field. + Search highlights for the `cost_currency_unit`, providing snippets of the matching text. """ - options_size_ASC + cost_currency_unit: [String!]! """ - Sorts descending by the `options.size` field. + Search highlights for the `description`, providing snippets of the matching text. """ - options_size_DESC + description: [String!]! """ - Sorts ascending by the `options.the_size` field. + Search highlights for the `fees`, providing snippets of the matching text. """ - options_the_size_ASC + fees: MoneyHighlights """ - Sorts descending by the `options.the_size` field. + Search highlights for the `id`, providing snippets of the matching text. """ - options_the_size_DESC + id: [String!]! """ - Sorts ascending by the `position.x` field. + Search highlights for the `internal_highlightable_details`, providing snippets of the matching text. """ - position_x_ASC + internal_highlightable_details: WidgetInternalDetailsHighlights """ - Sorts descending by the `position.x` field. + Search highlights for the `internal_highlightable_name`, providing snippets of the matching text. """ - position_x_DESC + internal_highlightable_name: [String!]! """ - Sorts ascending by the `position.y` field. + Search highlights for the `inventor`, providing snippets of the matching text. """ - position_y_ASC + inventor: InventorHighlights """ - Sorts descending by the `position.y` field. + Search highlights for the `material`, providing snippets of the matching text. """ - position_y_DESC + material: [String!]! """ - Sorts ascending by the `size` field. + Search highlights for the `metadata`, providing snippets of the matching text. """ - size_ASC + metadata: [String!]! """ - Sorts descending by the `size` field. + Search highlights for the `name`, providing snippets of the matching text. """ - size_DESC + name: [String!]! """ - Sorts ascending by the `the_options.color` field. + Search highlights for the `name_text`, providing snippets of the matching text. """ - the_options_color_ASC + name_text: [String!]! """ - Sorts descending by the `the_options.color` field. + Search highlights for the `named_inventor`, providing snippets of the matching text. """ - the_options_color_DESC + named_inventor: NamedInventorHighlights """ - Sorts ascending by the `the_options.size` field. + Search highlights for the `options`, providing snippets of the matching text. """ - the_options_size_ASC + options: WidgetOptionsHighlights """ - Sorts descending by the `the_options.size` field. + Search highlights for the `size`, providing snippets of the matching text. """ - the_options_size_DESC + size: [String!]! """ - Sorts ascending by the `the_options.the_size` field. + Search highlights for the `tags`, providing snippets of the matching text. """ - the_options_the_size_ASC + tags: [String!]! """ - Sorts descending by the `the_options.the_size` field. + Search highlights for the `the_options`, providing snippets of the matching text. """ - the_options_the_size_DESC + the_options: WidgetOptionsHighlights """ - Sorts ascending by the `voltage` field. + Search highlights for the `widget_cost`, providing snippets of the matching text. """ - voltage_ASC + widget_cost: MoneyHighlights """ - Sorts descending by the `voltage` field. + Search highlights for the `widget_name`, providing snippets of the matching text. """ - voltage_DESC + widget_name: [String!]! """ - Sorts ascending by the `weight_in_ng` field. + Search highlights for the `widget_size`, providing snippets of the matching text. """ - weight_in_ng_ASC + widget_size: [String!]! """ - Sorts descending by the `weight_in_ng` field. + Search highlights for the `widget_tags`, providing snippets of the matching text. """ - weight_in_ng_DESC + widget_tags: [String!]! """ - Sorts ascending by the `weight_in_ng_str` field. + Search highlights for the `widget_workspace_id`, providing snippets of the matching text. """ - weight_in_ng_str_ASC + widget_workspace_id: [String!]! """ - Sorts descending by the `weight_in_ng_str` field. + Search highlights for the `workspace_id`, providing snippets of the matching text. """ - weight_in_ng_str_DESC + workspace_id: [String!]! """ - Sorts ascending by the `widget_cost.amount_cents` field. + Search highlights for the `workspace_name`, providing snippets of the matching text. """ - widget_cost_amount_cents_ASC + workspace_name: [String!]! +} +""" +Enumerates the ways `NamedEntity`s can be sorted. +""" +enum NamedEntitySortOrderInput { """ - Sorts descending by the `widget_cost.amount_cents` field. + Sorts ascending by the `amount_cents2` field. """ - widget_cost_amount_cents_DESC + amount_cents2_ASC """ - Sorts ascending by the `widget_cost.currency` field. + Sorts descending by the `amount_cents2` field. """ - widget_cost_currency_ASC + amount_cents2_DESC """ - Sorts descending by the `widget_cost.currency` field. + Sorts ascending by the `amount_cents` field. """ - widget_cost_currency_DESC + amount_cents_ASC """ - Sorts ascending by the `widget_name` field. + Sorts descending by the `amount_cents` field. """ - widget_name_ASC + amount_cents_DESC """ - Sorts descending by the `widget_name` field. + Sorts ascending by the `ceo.id` field. """ - widget_name_DESC + ceo_id_ASC """ - Sorts ascending by the `widget_size` field. + Sorts descending by the `ceo.id` field. """ - widget_size_ASC + ceo_id_DESC """ - Sorts descending by the `widget_size` field. + Sorts ascending by the `ceo.name` field. """ - widget_size_DESC + ceo_name_ASC """ - Sorts ascending by the `widget_workspace_id` field. + Sorts descending by the `ceo.name` field. """ - widget_workspace_id_ASC + ceo_name_DESC """ - Sorts descending by the `widget_workspace_id` field. + Sorts ascending by the `ceo.nationality` field. """ - widget_workspace_id_DESC + ceo_nationality_ASC """ - Sorts ascending by the `workspace_id` field. + Sorts descending by the `ceo.nationality` field. """ - workspace_id_ASC + ceo_nationality_DESC """ - Sorts descending by the `workspace_id` field. + Sorts ascending by the `cost.amount_cents` field. """ - workspace_id_DESC + cost_amount_cents_ASC """ - Sorts ascending by the `workspace_name` field. + Sorts descending by the `cost.amount_cents` field. """ - workspace_name_ASC + cost_amount_cents_DESC """ - Sorts descending by the `workspace_name` field. + Sorts ascending by the `cost.currency` field. """ - workspace_name_DESC -} - -interface NamedInventor { - id: ID! - name: String -} + cost_currency_ASC -""" -Type used to perform aggregation computations on `NamedInventor` fields. -""" -type NamedInventorAggregatedValues { """ - Computed aggregate values for the `id` field. + Sorts descending by the `cost.currency` field. """ - id: NonNumericAggregatedValues + cost_currency_DESC """ - Computed aggregate values for the `name` field. + Sorts ascending by the `cost_currency_introduced_on` field. """ - name: NonNumericAggregatedValues + cost_currency_introduced_on_ASC """ - Computed aggregate values for the `nationality` field. + Sorts descending by the `cost_currency_introduced_on` field. """ - nationality: NonNumericAggregatedValues + cost_currency_introduced_on_DESC """ - Computed aggregate values for the `stock_ticker` field. + Sorts ascending by the `cost_currency_name` field. """ - stock_ticker: NonNumericAggregatedValues -} + cost_currency_name_ASC -""" -Return type representing a bucket of `NamedInventor` documents for an aggregations query. -""" -type NamedInventorAggregation { """ - Provides computed aggregated values over all `NamedInventor` documents in an aggregation bucket. + Sorts descending by the `cost_currency_name` field. """ - aggregated_values: NamedInventorAggregatedValues + cost_currency_name_DESC """ - The count of `NamedInventor` documents in an aggregation bucket. + Sorts ascending by the `cost_currency_primary_continent` field. """ - count: JsonSafeLong! + cost_currency_primary_continent_ASC """ - Used to specify the `NamedInventor` fields to group by. The returned values identify each aggregation bucket. + Sorts descending by the `cost_currency_primary_continent` field. """ - grouped_by: NamedInventorGroupedBy -} + cost_currency_primary_continent_DESC -""" -Represents a paginated collection of `NamedInventorAggregation` results. + """ + Sorts ascending by the `cost_currency_symbol` field. + """ + cost_currency_symbol_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type NamedInventorAggregationConnection { """ - Wraps a specific `NamedInventorAggregation` to pair it with its pagination cursor. + Sorts descending by the `cost_currency_symbol` field. """ - edges: [NamedInventorAggregationEdge!]! + cost_currency_symbol_DESC """ - The list of `NamedInventorAggregation` results. + Sorts ascending by the `cost_currency_unit` field. """ - nodes: [NamedInventorAggregation!]! + cost_currency_unit_ASC """ - Provides pagination-related information. + Sorts descending by the `cost_currency_unit` field. """ - page_info: PageInfo! -} + cost_currency_unit_DESC -""" -Represents a specific `NamedInventorAggregation` in the context of a `NamedInventorAggregationConnection`, -providing access to both the `NamedInventorAggregation` and query-specific information such as the pagination `Cursor`. + """ + Sorts ascending by the `created_at2` field. + """ + created_at2_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type NamedInventorAggregationEdge { """ - The `Cursor` of this `NamedInventorAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `NamedInventorAggregation`. + Sorts descending by the `created_at2` field. """ - cursor: Cursor + created_at2_DESC """ - The `NamedInventorAggregation` of this edge. + Sorts ascending by the `created_at` field. """ - node: NamedInventorAggregation -} + created_at_ASC -""" -Represents a paginated collection of `NamedInventor` results. + """ + Sorts descending by the `created_at` field. + """ + created_at_DESC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type NamedInventorConnection { """ - Wraps a specific `NamedInventor` to pair it with its pagination cursor. + Sorts ascending by the `created_at_time_of_day` field. """ - edges: [NamedInventorEdge!]! + created_at_time_of_day_ASC """ - The list of `NamedInventor` results. + Sorts descending by the `created_at_time_of_day` field. """ - nodes: [NamedInventor!]! + created_at_time_of_day_DESC """ - Provides pagination-related information. + Sorts ascending by the `created_on` field. """ - page_info: PageInfo! + created_on_ASC """ - The total number of edges available in this connection to paginate over. + Sorts descending by the `created_on` field. """ - total_edge_count: JsonSafeLong! -} + created_on_DESC -""" -Represents a specific `NamedInventor` in the context of a `NamedInventorConnection`, -providing access to both the `NamedInventor` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type NamedInventorEdge { """ - All search highlights for this `NamedInventor`, indicating where in the indexed document the query matched. + Sorts ascending by the `id` field. """ - all_highlights: [SearchHighlight!]! + id_ASC """ - The `Cursor` of this `NamedInventor`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `NamedInventor`. + Sorts descending by the `id` field. """ - cursor: Cursor + id_DESC """ - Specific search highlights for this `NamedInventor`, providing matching snippets for the requested fields. + Sorts ascending by the `internal_details.name` field. """ - highlights: NamedInventorHighlights + internal_details_name_ASC """ - The `NamedInventor` of this edge. + Sorts descending by the `internal_details.name` field. """ - node: NamedInventor -} - -""" -Input type used to specify filters on `NamedInventor` fields. + internal_details_name_DESC -Will match all documents if passed as an empty object (or as `null`). -""" -input NamedInventorFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `NamedInventorFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Sorts ascending by the `internal_highlightable_details.name` field. """ - all_of: [NamedInventorFilterInput!] + internal_highlightable_details_name_ASC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Sorts descending by the `internal_highlightable_details.name` field. """ - any_of: [NamedInventorFilterInput!] + internal_highlightable_details_name_DESC """ - Used to filter on the `id` field. - - When `null` or an empty object is passed, matches all documents. + Sorts ascending by the `internal_highlightable_name` field. """ - id: IDFilterInput + internal_highlightable_name_ASC """ - Used to filter on the `name` field. - - When `null` or an empty object is passed, matches all documents. + Sorts descending by the `internal_highlightable_name` field. """ - name: StringFilterInput + internal_highlightable_name_DESC """ - Used to filter on the `nationality` field. - - When `null` or an empty object is passed, matches all documents. + Sorts ascending by the `internal_name` field. """ - nationality: StringFilterInput + internal_name_ASC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Sorts descending by the `internal_name` field. + """ + internal_name_DESC - When `null` or an empty object is passed, matches no documents. """ - not: NamedInventorFilterInput + Sorts ascending by the `inventor.id` field. + """ + inventor_id_ASC """ - Used to filter on the `stock_ticker` field. + Sorts descending by the `inventor.id` field. + """ + inventor_id_DESC - When `null` or an empty object is passed, matches all documents. """ - stock_ticker: StringFilterInput -} + Sorts ascending by the `inventor.name` field. + """ + inventor_name_ASC -""" -Type used to specify the `NamedInventor` fields to group by for aggregations. -""" -type NamedInventorGroupedBy { """ - The `name` field value for this group. + Sorts descending by the `inventor.name` field. """ - name: String + inventor_name_DESC """ - The `nationality` field value for this group. + Sorts ascending by the `inventor.nationality` field. """ - nationality: String + inventor_nationality_ASC """ - The `stock_ticker` field value for this group. + Sorts descending by the `inventor.nationality` field. """ - stock_ticker: String -} + inventor_nationality_DESC -""" -Type used to request desired `NamedInventor` search highlight fields. -""" -type NamedInventorHighlights { """ - Search highlights for the `id`, providing snippets of the matching text. + Sorts ascending by the `inventor.stock_ticker` field. """ - id: [String!]! + inventor_stock_ticker_ASC """ - Search highlights for the `name`, providing snippets of the matching text. + Sorts descending by the `inventor.stock_ticker` field. """ - name: [String!]! + inventor_stock_ticker_DESC """ - Search highlights for the `nationality`, providing snippets of the matching text. + Sorts ascending by the `material` field. """ - nationality: [String!]! + material_ASC """ - Search highlights for the `stock_ticker`, providing snippets of the matching text. + Sorts descending by the `material` field. """ - stock_ticker: [String!]! -} + material_DESC -""" -Enumerates the ways `NamedInventor`s can be sorted. -""" -enum NamedInventorSortOrderInput { """ - Sorts ascending by the `id` field. + Sorts ascending by the `metadata` field. """ - id_ASC + metadata_ASC """ - Sorts descending by the `id` field. + Sorts descending by the `metadata` field. """ - id_DESC + metadata_DESC """ Sorts ascending by the `name` field. @@ -8018,404 +7766,245 @@ enum NamedInventorSortOrderInput { name_DESC """ - Sorts ascending by the `nationality` field. + Sorts ascending by the `named_inventor.id` field. """ - nationality_ASC + named_inventor_id_ASC """ - Sorts descending by the `nationality` field. + Sorts descending by the `named_inventor.id` field. """ - nationality_DESC + named_inventor_id_DESC """ - Sorts ascending by the `stock_ticker` field. + Sorts ascending by the `named_inventor.name` field. """ - stock_ticker_ASC + named_inventor_name_ASC """ - Sorts descending by the `stock_ticker` field. + Sorts descending by the `named_inventor.name` field. """ - stock_ticker_DESC -} + named_inventor_name_DESC -""" -A return type used from aggregations to provided aggregated values over non-numeric fields. -""" -type NonNumericAggregatedValues @shareable { """ - An approximation of the number of unique values for this field within this grouping. - - The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in - Practice](https://research.google.com/pubs/archive/40671.pdf) - paper. The accuracy of the returned value varies based on the specific dataset, but - it usually differs from the true distinct value count by less than 7%. + Sorts ascending by the `named_inventor.nationality` field. """ - approximate_distinct_value_count: JsonSafeLong -} + named_inventor_nationality_ASC -""" -Provides information about the specific fetched page. This implements the `PageInfo` -specification from the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo). -""" -type PageInfo @shareable { """ - The `Cursor` of the last edge of the current page. This can be passed in the next query as - a `after` argument to paginate forwards. + Sorts descending by the `named_inventor.nationality` field. """ - end_cursor: Cursor + named_inventor_nationality_DESC """ - Indicates if there is another page of results available after the current one. + Sorts ascending by the `named_inventor.stock_ticker` field. """ - has_next_page: Boolean! + named_inventor_stock_ticker_ASC """ - Indicates if there is another page of results available before the current one. + Sorts descending by the `named_inventor.stock_ticker` field. """ - has_previous_page: Boolean! + named_inventor_stock_ticker_DESC """ - The `Cursor` of the first edge of the current page. This can be passed in the next query as - a `before` argument to paginate backwards. + Sorts ascending by the `options.color` field. """ - start_cursor: Cursor -} - -union Part = ElectricalPart | MechanicalPart + options_color_ASC -""" -Type used to perform aggregation computations on `Part` fields. -""" -type PartAggregatedValues { """ - Computed aggregate values for the `created_at` field. + Sorts descending by the `options.color` field. """ - created_at: DateTimeAggregatedValues + options_color_DESC """ - Computed aggregate values for the `id` field. + Sorts ascending by the `options.size` field. """ - id: NonNumericAggregatedValues + options_size_ASC """ - Computed aggregate values for the `material` field. + Sorts descending by the `options.size` field. """ - material: NonNumericAggregatedValues + options_size_DESC """ - Computed aggregate values for the `name` field. + Sorts ascending by the `options.the_size` field. """ - name: NonNumericAggregatedValues + options_the_size_ASC """ - Computed aggregate values for the `voltage` field. + Sorts descending by the `options.the_size` field. """ - voltage: IntAggregatedValues -} + options_the_size_DESC -""" -Return type representing a bucket of `Part` documents for an aggregations query. -""" -type PartAggregation { """ - Provides computed aggregated values over all `Part` documents in an aggregation bucket. + Sorts ascending by the `position.x` field. """ - aggregated_values: PartAggregatedValues + position_x_ASC """ - The count of `Part` documents in an aggregation bucket. + Sorts descending by the `position.x` field. """ - count: JsonSafeLong! + position_x_DESC """ - Used to specify the `Part` fields to group by. The returned values identify each aggregation bucket. + Sorts ascending by the `position.y` field. """ - grouped_by: PartGroupedBy -} - -""" -Represents a paginated collection of `PartAggregation` results. + position_y_ASC -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type PartAggregationConnection { """ - Wraps a specific `PartAggregation` to pair it with its pagination cursor. + Sorts descending by the `position.y` field. """ - edges: [PartAggregationEdge!]! + position_y_DESC """ - The list of `PartAggregation` results. + Sorts ascending by the `size` field. """ - nodes: [PartAggregation!]! + size_ASC """ - Provides pagination-related information. + Sorts descending by the `size` field. """ - page_info: PageInfo! -} - -""" -Represents a specific `PartAggregation` in the context of a `PartAggregationConnection`, -providing access to both the `PartAggregation` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type PartAggregationEdge { - """ - The `Cursor` of this `PartAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `PartAggregation`. - """ - cursor: Cursor - - """ - The `PartAggregation` of this edge. - """ - node: PartAggregation -} - -""" -Represents a paginated collection of `Part` results. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. -""" -type PartConnection { - """ - Wraps a specific `Part` to pair it with its pagination cursor. - """ - edges: [PartEdge!]! - - """ - The list of `Part` results. - """ - nodes: [Part!]! - - """ - Provides pagination-related information. - """ - page_info: PageInfo! - - """ - The total number of edges available in this connection to paginate over. - """ - total_edge_count: JsonSafeLong! -} - -""" -Represents a specific `Part` in the context of a `PartConnection`, -providing access to both the `Part` and query-specific information such as the pagination `Cursor`. - -See the [Relay GraphQL Cursor Connections -Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. -""" -type PartEdge { - """ - All search highlights for this `Part`, indicating where in the indexed document the query matched. - """ - all_highlights: [SearchHighlight!]! - - """ - The `Cursor` of this `Part`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Part`. - """ - cursor: Cursor - - """ - Specific search highlights for this `Part`, providing matching snippets for the requested fields. - """ - highlights: PartHighlights + size_DESC """ - The `Part` of this edge. + Sorts ascending by the `the_options.color` field. """ - node: Part -} - -""" -Input type used to specify filters on `Part` fields. + the_options_color_ASC -Will match all documents if passed as an empty object (or as `null`). -""" -input PartFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PartFilterInput` input because of collisions between - key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Sorts descending by the `the_options.color` field. """ - all_of: [PartFilterInput!] + the_options_color_DESC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Sorts ascending by the `the_options.size` field. """ - any_of: [PartFilterInput!] + the_options_size_ASC """ - Used to filter on the `created_at` field. - - When `null` or an empty object is passed, matches all documents. + Sorts descending by the `the_options.size` field. """ - created_at: DateTimeFilterInput + the_options_size_DESC """ - Used to filter on the `id` field. - - When `null` or an empty object is passed, matches all documents. + Sorts ascending by the `the_options.the_size` field. """ - id: IDFilterInput + the_options_the_size_ASC """ - Used to filter on the `material` field. - - When `null` or an empty object is passed, matches all documents. + Sorts descending by the `the_options.the_size` field. """ - material: MaterialFilterInput + the_options_the_size_DESC """ - Used to filter on the `name` field. - - When `null` or an empty object is passed, matches all documents. + Sorts ascending by the `voltage` field. """ - name: StringFilterInput + voltage_ASC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Sorts descending by the `voltage` field. """ - not: PartFilterInput + voltage_DESC """ - Used to filter on the `voltage` field. - - When `null` or an empty object is passed, matches all documents. + Sorts ascending by the `weight_in_ng` field. """ - voltage: IntFilterInput -} + weight_in_ng_ASC -""" -Type used to specify the `Part` fields to group by for aggregations. -""" -type PartGroupedBy { """ - Offers the different grouping options for the `created_at` value within this group. + Sorts descending by the `weight_in_ng` field. """ - created_at: DateTimeGroupedBy + weight_in_ng_DESC """ - The `material` field value for this group. + Sorts ascending by the `weight_in_ng_str` field. """ - material: Material + weight_in_ng_str_ASC """ - The `name` field value for this group. + Sorts descending by the `weight_in_ng_str` field. """ - name: String + weight_in_ng_str_DESC """ - The `voltage` field value for this group. + Sorts ascending by the `widget_cost.amount_cents` field. """ - voltage: Int -} + widget_cost_amount_cents_ASC -""" -Type used to request desired `Part` search highlight fields. -""" -type PartHighlights { """ - Search highlights for the `id`, providing snippets of the matching text. + Sorts descending by the `widget_cost.amount_cents` field. """ - id: [String!]! + widget_cost_amount_cents_DESC """ - Search highlights for the `material`, providing snippets of the matching text. + Sorts ascending by the `widget_cost.currency` field. """ - material: [String!]! + widget_cost_currency_ASC """ - Search highlights for the `name`, providing snippets of the matching text. + Sorts descending by the `widget_cost.currency` field. """ - name: [String!]! -} + widget_cost_currency_DESC -""" -Enumerates the ways `Part`s can be sorted. -""" -enum PartSortOrderInput { """ - Sorts ascending by the `created_at` field. + Sorts ascending by the `widget_name` field. """ - created_at_ASC + widget_name_ASC """ - Sorts descending by the `created_at` field. + Sorts descending by the `widget_name` field. """ - created_at_DESC + widget_name_DESC """ - Sorts ascending by the `id` field. + Sorts ascending by the `widget_size` field. """ - id_ASC + widget_size_ASC """ - Sorts descending by the `id` field. + Sorts descending by the `widget_size` field. """ - id_DESC + widget_size_DESC """ - Sorts ascending by the `material` field. + Sorts ascending by the `widget_workspace_id` field. """ - material_ASC + widget_workspace_id_ASC """ - Sorts descending by the `material` field. + Sorts descending by the `widget_workspace_id` field. """ - material_DESC + widget_workspace_id_DESC """ - Sorts ascending by the `name` field. + Sorts ascending by the `workspace_id` field. """ - name_ASC + workspace_id_ASC """ - Sorts descending by the `name` field. + Sorts descending by the `workspace_id` field. """ - name_DESC + workspace_id_DESC """ - Sorts ascending by the `voltage` field. + Sorts ascending by the `workspace_name` field. """ - voltage_ASC + workspace_name_ASC """ - Sorts descending by the `voltage` field. + Sorts descending by the `workspace_name` field. """ - voltage_DESC + workspace_name_DESC } -type Person implements NamedInventor @key(fields: "id") { +interface NamedInventor { id: ID! name: String - nationality: String } """ -Type used to perform aggregation computations on `Person` fields. +Type used to perform aggregation computations on `NamedInventor` fields. """ -type PersonAggregatedValues { +type NamedInventorAggregatedValues { """ Computed aggregate values for the `id` field. """ @@ -8430,44 +8019,49 @@ type PersonAggregatedValues { Computed aggregate values for the `nationality` field. """ nationality: NonNumericAggregatedValues + + """ + Computed aggregate values for the `stock_ticker` field. + """ + stock_ticker: NonNumericAggregatedValues } """ -Return type representing a bucket of `Person` documents for an aggregations query. +Return type representing a bucket of `NamedInventor` documents for an aggregations query. """ -type PersonAggregation { +type NamedInventorAggregation { """ - Provides computed aggregated values over all `Person` documents in an aggregation bucket. + Provides computed aggregated values over all `NamedInventor` documents in an aggregation bucket. """ - aggregated_values: PersonAggregatedValues + aggregated_values: NamedInventorAggregatedValues """ - The count of `Person` documents in an aggregation bucket. + The count of `NamedInventor` documents in an aggregation bucket. """ count: JsonSafeLong! """ - Used to specify the `Person` fields to group by. The returned values identify each aggregation bucket. + Used to specify the `NamedInventor` fields to group by. The returned values identify each aggregation bucket. """ - grouped_by: PersonGroupedBy + grouped_by: NamedInventorGroupedBy } """ -Represents a paginated collection of `PersonAggregation` results. +Represents a paginated collection of `NamedInventorAggregation` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type PersonAggregationConnection { +type NamedInventorAggregationConnection { """ - Wraps a specific `PersonAggregation` to pair it with its pagination cursor. + Wraps a specific `NamedInventorAggregation` to pair it with its pagination cursor. """ - edges: [PersonAggregationEdge!]! + edges: [NamedInventorAggregationEdge!]! """ - The list of `PersonAggregation` results. + The list of `NamedInventorAggregation` results. """ - nodes: [PersonAggregation!]! + nodes: [NamedInventorAggregation!]! """ Provides pagination-related information. @@ -8476,41 +8070,41 @@ type PersonAggregationConnection { } """ -Represents a specific `PersonAggregation` in the context of a `PersonAggregationConnection`, -providing access to both the `PersonAggregation` and query-specific information such as the pagination `Cursor`. +Represents a specific `NamedInventorAggregation` in the context of a `NamedInventorAggregationConnection`, +providing access to both the `NamedInventorAggregation` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type PersonAggregationEdge { +type NamedInventorAggregationEdge { """ - The `Cursor` of this `PersonAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `PersonAggregation`. + The `Cursor` of this `NamedInventorAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `NamedInventorAggregation`. """ cursor: Cursor """ - The `PersonAggregation` of this edge. + The `NamedInventorAggregation` of this edge. """ - node: PersonAggregation + node: NamedInventorAggregation } """ -Represents a paginated collection of `Person` results. +Represents a paginated collection of `NamedInventor` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type PersonConnection { +type NamedInventorConnection { """ - Wraps a specific `Person` to pair it with its pagination cursor. + Wraps a specific `NamedInventor` to pair it with its pagination cursor. """ - edges: [PersonEdge!]! + edges: [NamedInventorEdge!]! """ - The list of `Person` results. + The list of `NamedInventor` results. """ - nodes: [Person!]! + nodes: [NamedInventor!]! """ Provides pagination-related information. @@ -8524,52 +8118,52 @@ type PersonConnection { } """ -Represents a specific `Person` in the context of a `PersonConnection`, -providing access to both the `Person` and query-specific information such as the pagination `Cursor`. +Represents a specific `NamedInventor` in the context of a `NamedInventorConnection`, +providing access to both the `NamedInventor` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type PersonEdge { +type NamedInventorEdge { """ - All search highlights for this `Person`, indicating where in the indexed document the query matched. + All search highlights for this `NamedInventor`, indicating where in the indexed document the query matched. """ all_highlights: [SearchHighlight!]! """ - The `Cursor` of this `Person`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Person`. + The `Cursor` of this `NamedInventor`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `NamedInventor`. """ cursor: Cursor """ - Specific search highlights for this `Person`, providing matching snippets for the requested fields. + Specific search highlights for this `NamedInventor`, providing matching snippets for the requested fields. """ - highlights: PersonHighlights + highlights: NamedInventorHighlights """ - The `Person` of this edge. + The `NamedInventor` of this edge. """ - node: Person + node: NamedInventor } """ -Input type used to specify filters on `Person` fields. +Input type used to specify filters on `NamedInventor` fields. Will match all documents if passed as an empty object (or as `null`). """ -input PersonFilterInput { +input NamedInventorFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PersonFilterInput` input because of collisions + be provided on a single `NamedInventorFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [PersonFilterInput!] + all_of: [NamedInventorFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -8578,7 +8172,7 @@ input PersonFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PersonFilterInput!] + any_of: [NamedInventorFilterInput!] """ Used to filter on the `id` field. @@ -8607,13 +8201,20 @@ input PersonFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: PersonFilterInput + not: NamedInventorFilterInput + + """ + Used to filter on the `stock_ticker` field. + + When `null` or an empty object is passed, matches all documents. + """ + stock_ticker: StringFilterInput } """ -Type used to specify the `Person` fields to group by for aggregations. +Type used to specify the `NamedInventor` fields to group by for aggregations. """ -type PersonGroupedBy { +type NamedInventorGroupedBy { """ The `name` field value for this group. """ @@ -8623,12 +8224,17 @@ type PersonGroupedBy { The `nationality` field value for this group. """ nationality: String + + """ + The `stock_ticker` field value for this group. + """ + stock_ticker: String } """ -Type used to request desired `Person` search highlight fields. +Type used to request desired `NamedInventor` search highlight fields. """ -type PersonHighlights { +type NamedInventorHighlights { """ Search highlights for the `id`, providing snippets of the matching text. """ @@ -8643,12 +8249,17 @@ type PersonHighlights { Search highlights for the `nationality`, providing snippets of the matching text. """ nationality: [String!]! + + """ + Search highlights for the `stock_ticker`, providing snippets of the matching text. + """ + stock_ticker: [String!]! } """ -Enumerates the ways `Person`s can be sorted. +Enumerates the ways `NamedInventor`s can be sorted. """ -enum PersonSortOrderInput { +enum NamedInventorSortOrderInput { """ Sorts ascending by the `id` field. """ @@ -8678,266 +8289,241 @@ enum PersonSortOrderInput { Sorts descending by the `nationality` field. """ nationality_DESC + + """ + Sorts ascending by the `stock_ticker` field. + """ + stock_ticker_ASC + + """ + Sorts descending by the `stock_ticker` field. + """ + stock_ticker_DESC } -type Player { - affiliations: Affiliations! - name: String - nicknames: [String!]! - seasons_nested: [PlayerSeason!]! - seasons_object: [PlayerSeason!]! +""" +A return type used from aggregations to provided aggregated values over non-numeric fields. +""" +type NonNumericAggregatedValues @shareable { + """ + An approximation of the number of unique values for this field within this grouping. + + The approximation uses the HyperLogLog++ algorithm from the [HyperLogLog in + Practice](https://research.google.com/pubs/archive/40671.pdf) + paper. The accuracy of the returned value varies based on the specific dataset, but + it usually differs from the true distinct value count by less than 7%. + """ + approximate_distinct_value_count: JsonSafeLong +} + +type OnlineStore implements DistributionChannel & Retail & Store @key(fields: "id") { + active: Boolean + customer_facing: Boolean + established_on: Date + id: ID! + platform: String + url: String! } """ -Type used to perform aggregation computations on `Player` fields. +Provides information about the specific fetched page. This implements the `PageInfo` +specification from the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo). """ -type PlayerAggregatedValues { +type PageInfo @shareable { """ - Computed aggregate values for the `affiliations` field. + The `Cursor` of the last edge of the current page. This can be passed in the next query as + a `after` argument to paginate forwards. """ - affiliations: AffiliationsAggregatedValues + end_cursor: Cursor """ - Computed aggregate values for the `name` field. + Indicates if there is another page of results available after the current one. """ - name: NonNumericAggregatedValues + has_next_page: Boolean! """ - Computed aggregate values for the `nicknames` field. + Indicates if there is another page of results available before the current one. """ - nicknames: NonNumericAggregatedValues + has_previous_page: Boolean! """ - Computed aggregate values for the `seasons_object` field. + The `Cursor` of the first edge of the current page. This can be passed in the next query as + a `before` argument to paginate backwards. """ - seasons_object: PlayerSeasonAggregatedValues + start_cursor: Cursor } -""" -Input type used to specify filters on a `Player` object referenced directly -or transitively from a list field that has been configured to index each leaf field as -its own flattened list of values. +union Part = ElectricalPart | MechanicalPart -Will match all documents if passed as an empty object (or as `null`). """ -input PlayerFieldsListFilterInput { +Type used to perform aggregation computations on `Part` fields. +""" +type PartAggregatedValues { """ - Used to filter on the `affiliations` field. - - When `null` or an empty object is passed, matches all documents. + Computed aggregate values for the `created_at` field. """ - affiliations: AffiliationsFieldsListFilterInput + created_at: DateTimeAggregatedValues """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerFieldsListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Computed aggregate values for the `id` field. """ - all_of: [PlayerFieldsListFilterInput!] + id: NonNumericAggregatedValues """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Computed aggregate values for the `material` field. """ - any_of: [PlayerFieldsListFilterInput!] + material: NonNumericAggregatedValues """ - Used to filter on the number of non-null elements in this list field. - - When `null` or an empty object is passed, matches all documents. + Computed aggregate values for the `name` field. """ - count: IntFilterInput + name: NonNumericAggregatedValues """ - Used to filter on the `name` field. - - When `null` or an empty object is passed, matches all documents. + Computed aggregate values for the `voltage` field. """ - name: StringListFilterInput + voltage: IntAggregatedValues +} +""" +Return type representing a bucket of `Part` documents for an aggregations query. +""" +type PartAggregation { """ - Used to filter on the `nicknames` field. - - When `null` or an empty object is passed, matches all documents. + Provides computed aggregated values over all `Part` documents in an aggregation bucket. """ - nicknames: StringListFilterInput + aggregated_values: PartAggregatedValues """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + The count of `Part` documents in an aggregation bucket. """ - not: PlayerFieldsListFilterInput + count: JsonSafeLong! """ - Used to filter on the `seasons_nested` field. + Used to specify the `Part` fields to group by. The returned values identify each aggregation bucket. + """ + grouped_by: PartGroupedBy +} - When `null` or an empty object is passed, matches all documents. +""" +Represents a paginated collection of `PartAggregation` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type PartAggregationConnection { """ - seasons_nested: PlayerSeasonListFilterInput + Wraps a specific `PartAggregation` to pair it with its pagination cursor. + """ + edges: [PartAggregationEdge!]! """ - Used to filter on the `seasons_object` field. + The list of `PartAggregation` results. + """ + nodes: [PartAggregation!]! - When `null` or an empty object is passed, matches all documents. """ - seasons_object: PlayerSeasonFieldsListFilterInput + Provides pagination-related information. + """ + page_info: PageInfo! } """ -Input type used to specify filters on `Player` fields. +Represents a specific `PartAggregation` in the context of a `PartAggregationConnection`, +providing access to both the `PartAggregation` and query-specific information such as the pagination `Cursor`. -Will match all documents if passed as an empty object (or as `null`). +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -input PlayerFilterInput { +type PartAggregationEdge { """ - Used to filter on the `affiliations` field. - - When `null` or an empty object is passed, matches all documents. + The `Cursor` of this `PartAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `PartAggregation`. """ - affiliations: AffiliationsFilterInput + cursor: Cursor """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + The `PartAggregation` of this edge. + """ + node: PartAggregation +} - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. +""" +Represents a paginated collection of `Part` results. - When `null` or an empty list is passed, matches all documents. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type PartConnection { """ - all_of: [PlayerFilterInput!] - + Wraps a specific `Part` to pair it with its pagination cursor. """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + edges: [PartEdge!]! - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PlayerFilterInput!] - + The list of `Part` results. """ - Used to filter on the `name` field. + nodes: [Part!]! - When `null` or an empty object is passed, matches all documents. """ - name: StringFilterInput - + Provides pagination-related information. """ - Used to filter on the `nicknames` field. + page_info: PageInfo! - When `null` or an empty object is passed, matches all documents. """ - nicknames: StringListFilterInput - + The total number of edges available in this connection to paginate over. """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. - """ - not: PlayerFilterInput - - """ - Used to filter on the `seasons_nested` field. - - When `null` or an empty object is passed, matches all documents. - """ - seasons_nested: PlayerSeasonListFilterInput - - """ - Used to filter on the `seasons_object` field. - - When `null` or an empty object is passed, matches all documents. - """ - seasons_object: PlayerSeasonFieldsListFilterInput + total_edge_count: JsonSafeLong! } """ -Type used to specify the `Player` fields to group by for aggregations. -""" -type PlayerGroupedBy { - """ - The `affiliations` field value for this group. - """ - affiliations: AffiliationsGroupedBy - - """ - The `name` field value for this group. - """ - name: String - - """ - The `seasons_object` field value for this group. - - Note: `seasons_object` is a collection field, but selecting this field will - group on individual values of the selected subfields of `seasons_object`. - That means that a document may be grouped into multiple aggregation groupings (i.e. when its `seasons_object` - field has multiple values) leading to some data duplication in the response. However, if a value shows - up in `seasons_object` multiple times for a single document, that document will only be included in the group - once. - """ - seasons_object: PlayerSeasonGroupedBy -} +Represents a specific `Part` in the context of a `PartConnection`, +providing access to both the `Part` and query-specific information such as the pagination `Cursor`. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -Type used to request desired `Player` search highlight fields. -""" -type PlayerHighlights { - """ - Search highlights for the `affiliations`, providing snippets of the matching text. - """ - affiliations: AffiliationsHighlights - +type PartEdge { """ - Search highlights for the `name`, providing snippets of the matching text. + All search highlights for this `Part`, indicating where in the indexed document the query matched. """ - name: [String!]! + all_highlights: [SearchHighlight!]! """ - Search highlights for the `nicknames`, providing snippets of the matching text. + The `Cursor` of this `Part`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Part`. """ - nicknames: [String!]! + cursor: Cursor """ - Search highlights for the `seasons_nested`, providing snippets of the matching text. + Specific search highlights for this `Part`, providing matching snippets for the requested fields. """ - seasons_nested: PlayerSeasonHighlights + highlights: PartHighlights """ - Search highlights for the `seasons_object`, providing snippets of the matching text. + The `Part` of this edge. """ - seasons_object: PlayerSeasonHighlights + node: Part } """ -Input type used to specify filters on `[Player]` fields. +Input type used to specify filters on `Part` fields. Will match all documents if passed as an empty object (or as `null`). """ -input PlayerListFilterInput { +input PartFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerListFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `PartFilterInput` input because of collisions between + key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [PlayerListFilterInput!] + all_of: [PartFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -8946,178 +8532,195 @@ input PlayerListFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PlayerListFilterInput!] + any_of: [PartFilterInput!] """ - Matches records where any of the list elements match the provided sub-filter. + Used to filter on the `created_at` field. When `null` or an empty object is passed, matches all documents. """ - any_satisfy: PlayerFilterInput + created_at: DateTimeFilterInput """ - Used to filter on the number of non-null elements in this list field. + Used to filter on the `id` field. When `null` or an empty object is passed, matches all documents. """ - count: IntFilterInput + id: IDFilterInput """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Used to filter on the `material` field. - When `null` or an empty object is passed, matches no documents. + When `null` or an empty object is passed, matches all documents. """ - not: PlayerListFilterInput -} - -type PlayerSeason { - awards( - """ - Used to forward-paginate through the `awards`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + material: MaterialFilterInput - """ - Used to backward-paginate through the `awards`. When provided, the previous page before the - provided cursor will be returned. + """ + Used to filter on the `name` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + When `null` or an empty object is passed, matches all documents. + """ + name: StringFilterInput - """ - Used in conjunction with the `after` argument to forward-paginate through the `awards`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `awards`, if no `after` cursor is provided). + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + When `null` or an empty object is passed, matches no documents. + """ + not: PartFilterInput - """ - Used in conjunction with the `before` argument to backward-paginate through the `awards`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `awards`, if no `before` cursor is provided). + """ + Used to filter on the `voltage` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): StringConnection - games_played: Int - year: Int + When `null` or an empty object is passed, matches all documents. + """ + voltage: IntFilterInput } """ -Type used to perform aggregation computations on `PlayerSeason` fields. +Type used to specify the `Part` fields to group by for aggregations. """ -type PlayerSeasonAggregatedValues { +type PartGroupedBy { """ - Computed aggregate values for the `awards` field. + Offers the different grouping options for the `created_at` value within this group. """ - awards: NonNumericAggregatedValues + created_at: DateTimeGroupedBy """ - Computed aggregate values for the `games_played` field. + The `material` field value for this group. """ - games_played: IntAggregatedValues + material: Material """ - Computed aggregate values for the `year` field. + The `name` field value for this group. """ - year: IntAggregatedValues + name: String + + """ + The `voltage` field value for this group. + """ + voltage: Int } """ -Input type used to specify filters on a `PlayerSeason` object referenced directly -or transitively from a list field that has been configured to index each leaf field as -its own flattened list of values. - -Will match all documents if passed as an empty object (or as `null`). +Type used to request desired `Part` search highlight fields. """ -input PlayerSeasonFieldsListFilterInput { +type PartHighlights { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerSeasonFieldsListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Search highlights for the `id`, providing snippets of the matching text. """ - all_of: [PlayerSeasonFieldsListFilterInput!] + id: [String!]! """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Search highlights for the `material`, providing snippets of the matching text. """ - any_of: [PlayerSeasonFieldsListFilterInput!] + material: [String!]! """ - Used to filter on the `awards` field. + Search highlights for the `name`, providing snippets of the matching text. + """ + name: [String!]! +} - When `null` or an empty object is passed, matches all documents. +""" +Enumerates the ways `Part`s can be sorted. +""" +enum PartSortOrderInput { """ - awards: StringListFilterInput + Sorts ascending by the `created_at` field. + """ + created_at_ASC """ - Used to filter on the number of non-null elements in this list field. + Sorts descending by the `created_at` field. + """ + created_at_DESC - When `null` or an empty object is passed, matches all documents. """ - count: IntFilterInput + Sorts ascending by the `id` field. + """ + id_ASC """ - Used to filter on the `games_played` field. + Sorts descending by the `id` field. + """ + id_DESC - When `null` or an empty object is passed, matches all documents. """ - games_played: IntListFilterInput + Sorts ascending by the `material` field. + """ + material_ASC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Sorts descending by the `material` field. + """ + material_DESC - When `null` or an empty object is passed, matches no documents. """ - not: PlayerSeasonFieldsListFilterInput + Sorts ascending by the `name` field. + """ + name_ASC """ - Used to filter on the `year` field. + Sorts descending by the `name` field. + """ + name_DESC - When `null` or an empty object is passed, matches all documents. """ - year: IntListFilterInput -} + Sorts ascending by the `voltage` field. + """ + voltage_ASC + + """ + Sorts descending by the `voltage` field. + """ + voltage_DESC +} + +type Person implements NamedInventor @key(fields: "id") { + id: ID! + name: String + nationality: String +} """ -Input type used to specify filters on `PlayerSeason` fields. +Type used to perform aggregation computations on `Person` fields. +""" +type PersonAggregatedValues { + """ + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues + + """ + Computed aggregate values for the `name` field. + """ + name: NonNumericAggregatedValues + + """ + Computed aggregate values for the `nationality` field. + """ + nationality: NonNumericAggregatedValues +} + +""" +Input type used to specify filters on `Person` fields. Will match all documents if passed as an empty object (or as `null`). """ -input PlayerSeasonFilterInput { +input PersonFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerSeasonFilterInput` input because of collisions + be provided on a single `PersonFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [PlayerSeasonFilterInput!] + all_of: [PersonFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -9126,21 +8729,28 @@ input PlayerSeasonFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PlayerSeasonFilterInput!] + any_of: [PersonFilterInput!] """ - Used to filter on the `awards` field. + Used to filter on the `id` field. When `null` or an empty object is passed, matches all documents. """ - awards: StringListFilterInput + id: IDFilterInput """ - Used to filter on the `games_played` field. + Used to filter on the `name` field. When `null` or an empty object is passed, matches all documents. """ - games_played: IntFilterInput + name: StringFilterInput + + """ + Used to filter on the `nationality` field. + + When `null` or an empty object is passed, matches all documents. + """ + nationality: StringFilterInput """ Matches records where the provided sub-filter evaluates to false. @@ -9148,128 +8758,240 @@ input PlayerSeasonFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: PlayerSeasonFilterInput + not: PersonFilterInput +} +""" +Type used to specify the `Person` fields to group by for aggregations. +""" +type PersonGroupedBy { """ - Used to filter on the `year` field. + The `name` field value for this group. + """ + name: String - When `null` or an empty object is passed, matches all documents. """ - year: IntFilterInput + The `nationality` field value for this group. + """ + nationality: String } """ -Type used to specify the `PlayerSeason` fields to group by for aggregations. +Type used to request desired `Person` search highlight fields. """ -type PlayerSeasonGroupedBy { +type PersonHighlights { """ - The `games_played` field value for this group. + Search highlights for the `id`, providing snippets of the matching text. """ - games_played: Int + id: [String!]! """ - The `year` field value for this group. + Search highlights for the `name`, providing snippets of the matching text. """ - year: Int + name: [String!]! + + """ + Search highlights for the `nationality`, providing snippets of the matching text. + """ + nationality: [String!]! +} + +type PhysicalStore implements DistributionChannel & Retail & Store @key(fields: "id") { + active: Boolean + address: String! + customer_facing: Boolean + established_on: Date + id: ID! + square_footage: Int } """ -Type used to request desired `PlayerSeason` search highlight fields. +Type used to perform aggregation computations on `PhysicalStore` fields. """ -type PlayerSeasonHighlights { +type PhysicalStoreAggregatedValues { """ - Search highlights for the `awards`, providing snippets of the matching text. + Computed aggregate values for the `active` field. """ - awards: [String!]! + active: NonNumericAggregatedValues + + """ + Computed aggregate values for the `address` field. + """ + address: NonNumericAggregatedValues + + """ + Computed aggregate values for the `customer_facing` field. + """ + customer_facing: NonNumericAggregatedValues + + """ + Computed aggregate values for the `established_on` field. + """ + established_on: DateAggregatedValues + + """ + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues + + """ + Computed aggregate values for the `square_footage` field. + """ + square_footage: IntAggregatedValues } """ -Input type used to specify filters on `[PlayerSeason]` fields. - -Will match all documents if passed as an empty object (or as `null`). +Return type representing a bucket of `PhysicalStore` documents for an aggregations query. """ -input PlayerSeasonListFilterInput { +type PhysicalStoreAggregation { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + Provides computed aggregated values over all `PhysicalStore` documents in an aggregation bucket. + """ + aggregated_values: PhysicalStoreAggregatedValues - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PlayerSeasonListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + """ + The count of `PhysicalStore` documents in an aggregation bucket. + """ + count: JsonSafeLong! - When `null` or an empty list is passed, matches all documents. """ - all_of: [PlayerSeasonListFilterInput!] + Used to specify the `PhysicalStore` fields to group by. The returned values identify each aggregation bucket. + """ + grouped_by: PhysicalStoreGroupedBy +} + +""" +Represents a paginated collection of `PhysicalStoreAggregation` results. +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type PhysicalStoreAggregationConnection { """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + Wraps a specific `PhysicalStoreAggregation` to pair it with its pagination cursor. + """ + edges: [PhysicalStoreAggregationEdge!]! - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PlayerSeasonListFilterInput!] + The list of `PhysicalStoreAggregation` results. + """ + nodes: [PhysicalStoreAggregation!]! """ - Matches records where any of the list elements match the provided sub-filter. + Provides pagination-related information. + """ + page_info: PageInfo! +} - When `null` or an empty object is passed, matches all documents. +""" +Represents a specific `PhysicalStoreAggregation` in the context of a `PhysicalStoreAggregationConnection`, +providing access to both the `PhysicalStoreAggregation` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type PhysicalStoreAggregationEdge { """ - any_satisfy: PlayerSeasonFilterInput + The `Cursor` of this `PhysicalStoreAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `PhysicalStoreAggregation`. + """ + cursor: Cursor """ - Used to filter on the number of non-null elements in this list field. + The `PhysicalStoreAggregation` of this edge. + """ + node: PhysicalStoreAggregation +} - When `null` or an empty object is passed, matches all documents. +""" +Represents a paginated collection of `PhysicalStore` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type PhysicalStoreConnection { """ - count: IntFilterInput + Wraps a specific `PhysicalStore` to pair it with its pagination cursor. + """ + edges: [PhysicalStoreEdge!]! """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + The list of `PhysicalStore` results. + """ + nodes: [PhysicalStore!]! - When `null` or an empty object is passed, matches no documents. """ - not: PlayerSeasonListFilterInput -} + Provides pagination-related information. + """ + page_info: PageInfo! -type Position { - x: Float! - y: Float! + """ + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! } """ -Type used to perform aggregation computations on `Position` fields. +Represents a specific `PhysicalStore` in the context of a `PhysicalStoreConnection`, +providing access to both the `PhysicalStore` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type PositionAggregatedValues { +type PhysicalStoreEdge { """ - Computed aggregate values for the `x` field. + All search highlights for this `PhysicalStore`, indicating where in the indexed document the query matched. """ - x: FloatAggregatedValues + all_highlights: [SearchHighlight!]! """ - Computed aggregate values for the `y` field. + The `Cursor` of this `PhysicalStore`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `PhysicalStore`. """ - y: FloatAggregatedValues + cursor: Cursor + + """ + Specific search highlights for this `PhysicalStore`, providing matching snippets for the requested fields. + """ + highlights: PhysicalStoreHighlights + + """ + The `PhysicalStore` of this edge. + """ + node: PhysicalStore } """ -Input type used to specify filters on `Position` fields. +Input type used to specify filters on `PhysicalStore` fields. Will match all documents if passed as an empty object (or as `null`). """ -input PositionFilterInput { +input PhysicalStoreFilterInput { + """ + Used to filter on the `active` field. + + When `null` or an empty object is passed, matches all documents. + """ + active: BooleanFilterInput + + """ + Used to filter on the `address` field. + + When `null` or an empty object is passed, matches all documents. + """ + address: StringFilterInput + """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `PositionFilterInput` input because of collisions + be provided on a single `PhysicalStoreFilterInput` input because of collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [PositionFilterInput!] + all_of: [PhysicalStoreFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -9278,99 +9000,1650 @@ input PositionFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [PositionFilterInput!] + any_of: [PhysicalStoreFilterInput!] """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Used to filter on the `customer_facing` field. - When `null` or an empty object is passed, matches no documents. + When `null` or an empty object is passed, matches all documents. """ - not: PositionFilterInput + customer_facing: BooleanFilterInput """ - Used to filter on the `x` field. + Used to filter on the `established_on` field. When `null` or an empty object is passed, matches all documents. """ - x: FloatFilterInput + established_on: DateFilterInput """ - Used to filter on the `y` field. + Used to filter on the `id` field. When `null` or an empty object is passed, matches all documents. """ - y: FloatFilterInput + id: IDFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PhysicalStoreFilterInput + + """ + Used to filter on the `square_footage` field. + + When `null` or an empty object is passed, matches all documents. + """ + square_footage: IntFilterInput } """ -Type used to specify the `Position` fields to group by for aggregations. +Type used to specify the `PhysicalStore` fields to group by for aggregations. """ -type PositionGroupedBy { +type PhysicalStoreGroupedBy { """ - The `x` field value for this group. + The `active` field value for this group. """ - x: Float + active: Boolean """ - The `y` field value for this group. + The `address` field value for this group. """ - y: Float + address: String + + """ + The `customer_facing` field value for this group. + """ + customer_facing: Boolean + + """ + Offers the different grouping options for the `established_on` value within this group. + """ + established_on: DateGroupedBy + + """ + The `square_footage` field value for this group. + """ + square_footage: Int } """ -The query entry point for the entire schema. +Type used to request desired `PhysicalStore` search highlight fields. """ -type Query { +type PhysicalStoreHighlights { + """ + Search highlights for the `address`, providing snippets of the matching text. + """ + address: [String!]! + + """ + Search highlights for the `id`, providing snippets of the matching text. + """ + id: [String!]! +} + +""" +Enumerates the ways `PhysicalStore`s can be sorted. +""" +enum PhysicalStoreSortOrderInput { + """ + Sorts ascending by the `address` field. + """ + address_ASC + + """ + Sorts descending by the `address` field. + """ + address_DESC + + """ + Sorts ascending by the `established_on` field. + """ + established_on_ASC + + """ + Sorts descending by the `established_on` field. + """ + established_on_DESC + + """ + Sorts ascending by the `id` field. + """ + id_ASC + + """ + Sorts descending by the `id` field. + """ + id_DESC + + """ + Sorts ascending by the `square_footage` field. + """ + square_footage_ASC + + """ + Sorts descending by the `square_footage` field. + """ + square_footage_DESC +} + +type Player { + affiliations: Affiliations! + name: String + nicknames: [String!]! + seasons_nested: [PlayerSeason!]! + seasons_object: [PlayerSeason!]! +} + +""" +Type used to perform aggregation computations on `Player` fields. +""" +type PlayerAggregatedValues { + """ + Computed aggregate values for the `affiliations` field. + """ + affiliations: AffiliationsAggregatedValues + + """ + Computed aggregate values for the `name` field. + """ + name: NonNumericAggregatedValues + + """ + Computed aggregate values for the `nicknames` field. + """ + nicknames: NonNumericAggregatedValues + + """ + Computed aggregate values for the `seasons_object` field. + """ + seasons_object: PlayerSeasonAggregatedValues +} + +""" +Input type used to specify filters on a `Player` object referenced directly +or transitively from a list field that has been configured to index each leaf field as +its own flattened list of values. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerFieldsListFilterInput { + """ + Used to filter on the `affiliations` field. + + When `null` or an empty object is passed, matches all documents. + """ + affiliations: AffiliationsFieldsListFilterInput + + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerFieldsListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerFieldsListFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerFieldsListFilterInput!] + + """ + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput + + """ + Used to filter on the `name` field. + + When `null` or an empty object is passed, matches all documents. + """ + name: StringListFilterInput + + """ + Used to filter on the `nicknames` field. + + When `null` or an empty object is passed, matches all documents. + """ + nicknames: StringListFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerFieldsListFilterInput + + """ + Used to filter on the `seasons_nested` field. + + When `null` or an empty object is passed, matches all documents. + """ + seasons_nested: PlayerSeasonListFilterInput + + """ + Used to filter on the `seasons_object` field. + + When `null` or an empty object is passed, matches all documents. + """ + seasons_object: PlayerSeasonFieldsListFilterInput +} + +""" +Input type used to specify filters on `Player` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerFilterInput { + """ + Used to filter on the `affiliations` field. + + When `null` or an empty object is passed, matches all documents. + """ + affiliations: AffiliationsFilterInput + + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerFilterInput!] + + """ + Used to filter on the `name` field. + + When `null` or an empty object is passed, matches all documents. + """ + name: StringFilterInput + + """ + Used to filter on the `nicknames` field. + + When `null` or an empty object is passed, matches all documents. + """ + nicknames: StringListFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerFilterInput + + """ + Used to filter on the `seasons_nested` field. + + When `null` or an empty object is passed, matches all documents. + """ + seasons_nested: PlayerSeasonListFilterInput + + """ + Used to filter on the `seasons_object` field. + + When `null` or an empty object is passed, matches all documents. + """ + seasons_object: PlayerSeasonFieldsListFilterInput +} + +""" +Type used to specify the `Player` fields to group by for aggregations. +""" +type PlayerGroupedBy { + """ + The `affiliations` field value for this group. + """ + affiliations: AffiliationsGroupedBy + + """ + The `name` field value for this group. + """ + name: String + + """ + The `seasons_object` field value for this group. + + Note: `seasons_object` is a collection field, but selecting this field will + group on individual values of the selected subfields of `seasons_object`. + That means that a document may be grouped into multiple aggregation groupings (i.e. when its `seasons_object` + field has multiple values) leading to some data duplication in the response. However, if a value shows + up in `seasons_object` multiple times for a single document, that document will only be included in the group + once. + """ + seasons_object: PlayerSeasonGroupedBy +} + +""" +Type used to request desired `Player` search highlight fields. +""" +type PlayerHighlights { + """ + Search highlights for the `affiliations`, providing snippets of the matching text. + """ + affiliations: AffiliationsHighlights + + """ + Search highlights for the `name`, providing snippets of the matching text. + """ + name: [String!]! + + """ + Search highlights for the `nicknames`, providing snippets of the matching text. + """ + nicknames: [String!]! + + """ + Search highlights for the `seasons_nested`, providing snippets of the matching text. + """ + seasons_nested: PlayerSeasonHighlights + + """ + Search highlights for the `seasons_object`, providing snippets of the matching text. + """ + seasons_object: PlayerSeasonHighlights +} + +""" +Input type used to specify filters on `[Player]` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerListFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerListFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerListFilterInput!] + + """ + Matches records where any of the list elements match the provided sub-filter. + + When `null` or an empty object is passed, matches all documents. + """ + any_satisfy: PlayerFilterInput + + """ + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerListFilterInput +} + +type PlayerSeason { + awards( + """ + Used to forward-paginate through the `awards`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `awards`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used in conjunction with the `after` argument to forward-paginate through the `awards`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `awards`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `awards`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `awards`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): StringConnection + games_played: Int + year: Int +} + +""" +Type used to perform aggregation computations on `PlayerSeason` fields. +""" +type PlayerSeasonAggregatedValues { + """ + Computed aggregate values for the `awards` field. + """ + awards: NonNumericAggregatedValues + + """ + Computed aggregate values for the `games_played` field. + """ + games_played: IntAggregatedValues + + """ + Computed aggregate values for the `year` field. + """ + year: IntAggregatedValues +} + +""" +Input type used to specify filters on a `PlayerSeason` object referenced directly +or transitively from a list field that has been configured to index each leaf field as +its own flattened list of values. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerSeasonFieldsListFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerSeasonFieldsListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerSeasonFieldsListFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerSeasonFieldsListFilterInput!] + + """ + Used to filter on the `awards` field. + + When `null` or an empty object is passed, matches all documents. + """ + awards: StringListFilterInput + + """ + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput + + """ + Used to filter on the `games_played` field. + + When `null` or an empty object is passed, matches all documents. + """ + games_played: IntListFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerSeasonFieldsListFilterInput + + """ + Used to filter on the `year` field. + + When `null` or an empty object is passed, matches all documents. + """ + year: IntListFilterInput +} + +""" +Input type used to specify filters on `PlayerSeason` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerSeasonFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerSeasonFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerSeasonFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerSeasonFilterInput!] + + """ + Used to filter on the `awards` field. + + When `null` or an empty object is passed, matches all documents. + """ + awards: StringListFilterInput + + """ + Used to filter on the `games_played` field. + + When `null` or an empty object is passed, matches all documents. + """ + games_played: IntFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerSeasonFilterInput + + """ + Used to filter on the `year` field. + + When `null` or an empty object is passed, matches all documents. + """ + year: IntFilterInput +} + +""" +Type used to specify the `PlayerSeason` fields to group by for aggregations. +""" +type PlayerSeasonGroupedBy { + """ + The `games_played` field value for this group. + """ + games_played: Int + + """ + The `year` field value for this group. + """ + year: Int +} + +""" +Type used to request desired `PlayerSeason` search highlight fields. +""" +type PlayerSeasonHighlights { + """ + Search highlights for the `awards`, providing snippets of the matching text. + """ + awards: [String!]! +} + +""" +Input type used to specify filters on `[PlayerSeason]` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PlayerSeasonListFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PlayerSeasonListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PlayerSeasonListFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PlayerSeasonListFilterInput!] + + """ + Matches records where any of the list elements match the provided sub-filter. + + When `null` or an empty object is passed, matches all documents. + """ + any_satisfy: PlayerSeasonFilterInput + + """ + Used to filter on the number of non-null elements in this list field. + + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PlayerSeasonListFilterInput +} + +type Position { + x: Float! + y: Float! +} + +""" +Type used to perform aggregation computations on `Position` fields. +""" +type PositionAggregatedValues { + """ + Computed aggregate values for the `x` field. + """ + x: FloatAggregatedValues + + """ + Computed aggregate values for the `y` field. + """ + y: FloatAggregatedValues +} + +""" +Input type used to specify filters on `Position` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input PositionFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `PositionFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [PositionFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [PositionFilterInput!] + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: PositionFilterInput + + """ + Used to filter on the `x` field. + + When `null` or an empty object is passed, matches all documents. + """ + x: FloatFilterInput + + """ + Used to filter on the `y` field. + + When `null` or an empty object is passed, matches all documents. + """ + y: FloatFilterInput +} + +""" +Type used to specify the `Position` fields to group by for aggregations. +""" +type PositionGroupedBy { + """ + The `x` field value for this group. + """ + x: Float + + """ + The `y` field value for this group. + """ + y: Float +} + +""" +The query entry point for the entire schema. +""" +type Query { + """ + A field required by the [Apollo Federation subgraph + spec](https://www.apollographql.com/docs/federation/subgraph-spec/#query_entities): + + > The graph router uses this root-level `Query` field to directly fetch fields of entities defined by a subgraph. + > + > This field must take a `representations` argument of type `[_Any!]!` (a non-nullable list of non-nullable + > [`_Any` scalars](https://www.apollographql.com/docs/federation/subgraph-spec/#scalar-_any)). Its return type must be `[_Entity]!` (a non-nullable list of _nullable_ + > objects that belong to the [`_Entity` union](https://www.apollographql.com/docs/federation/subgraph-spec/#union-_entity)). + > + > Each entry in the `representations` list must be validated with the following rules: + > + > - A representation must include a `__typename` string field. + > - A representation must contain all fields included in the fieldset of a + `@key` directive applied to the corresponding entity definition. + > + > For details, see [Resolving entity fields with `Query._entities`](https://www.apollographql.com/docs/federation/subgraph-spec/#resolving-entity-fields-with-query_entities). + + Not intended for use by clients other than Apollo. + """ + _entities( + """ + A list of entity data blobs from other apollo subgraphs. For more information (and + to see an example of what form this argument takes), see the [Apollo Federation subgraph + spec](https://www.apollographql.com/docs/federation/subgraph-spec/#resolve-requests-for-entities). + """ + representations: [_Any!]! + ): [_Entity]! + """ A field required by the [Apollo Federation subgraph - spec](https://www.apollographql.com/docs/federation/subgraph-spec/#query_entities): + spec](https://www.apollographql.com/docs/federation/subgraph-spec/#query_service): + + > This field of the root `Query` type must return a non-nullable [`_Service` type](https://www.apollographql.com/docs/federation/subgraph-spec/#type-_service). + + > For details, see [Enhanced introspection with `Query._service`](https://www.apollographql.com/docs/federation/subgraph-spec/#enhanced-introspection-with-query_service). + + Not intended for use by clients other than Apollo. + """ + _service: _Service! + + """ + Aggregations over the `addresses` data: + + > Fetches `Address`s based on the provided arguments. + """ + address_aggregations( + """ + Used to forward-paginate through the `address_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `address_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Address` documents that get aggregated over based on the provided criteria. + """ + filter: AddressFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `address_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `address_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `address_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `address_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): AddressAggregationConnection + + """ + Fetches `Address`s based on the provided arguments. + """ + addresses( + """ + Used to forward-paginate through the `addresses`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `addresses`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `addresses` based on the provided criteria. + """ + filter: AddressFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `addresses`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `addresses`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `addresses`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `addresses`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `addresses` should be sorted. + """ + order_by: [AddressSortOrderInput!] + ): AddressConnection + + """ + Aggregations over the `components` data: + + > Fetches `Component`s based on the provided arguments. + """ + component_aggregations( + """ + Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Component` documents that get aggregated over based on the provided criteria. + """ + filter: ComponentFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ComponentAggregationConnection + + """ + Fetches `Component`s based on the provided arguments. + """ + components( + """ + Used to forward-paginate through the `components`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `components`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `components` based on the provided criteria. + """ + filter: ComponentFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `components`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `components`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `components`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `components` should be sorted. + """ + order_by: [ComponentSortOrderInput!] + ): ComponentConnection + + """ + Aggregations over the `distribution_channels` data: + + > Fetches `DistributionChannel`s based on the provided arguments. + """ + distribution_channel_aggregations( + """ + Used to forward-paginate through the `distribution_channel_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `distribution_channel_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `DistributionChannel` documents that get aggregated over based on the provided criteria. + """ + filter: DistributionChannelFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `distribution_channel_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `distribution_channel_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `distribution_channel_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `distribution_channel_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): DistributionChannelAggregationConnection + + """ + Fetches `DistributionChannel`s based on the provided arguments. + """ + distribution_channels( + """ + Used to forward-paginate through the `distribution_channels`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `distribution_channels`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `distribution_channels` based on the provided criteria. + """ + filter: DistributionChannelFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `distribution_channels`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `distribution_channels`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `distribution_channels`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `distribution_channels`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `distribution_channels` should be sorted. + """ + order_by: [DistributionChannelSortOrderInput!] + ): DistributionChannelConnection + + """ + Aggregations over the `electrical_parts` data: + + > Fetches `ElectricalPart`s based on the provided arguments. + """ + electrical_part_aggregations( + """ + Used to forward-paginate through the `electrical_part_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `electrical_part_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `ElectricalPart` documents that get aggregated over based on the provided criteria. + """ + filter: ElectricalPartFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `electrical_part_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `electrical_part_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `electrical_part_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `electrical_part_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ElectricalPartAggregationConnection + + """ + Fetches `ElectricalPart`s based on the provided arguments. + """ + electrical_parts( + """ + Used to forward-paginate through the `electrical_parts`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `electrical_parts`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `electrical_parts` based on the provided criteria. + """ + filter: ElectricalPartFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `electrical_parts`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `electrical_parts`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `electrical_parts`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `electrical_parts`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `electrical_parts` should be sorted. + """ + order_by: [ElectricalPartSortOrderInput!] + ): ElectricalPartConnection + + """ + Aggregations over the `inventors` data: + + > Fetches `Inventor`s based on the provided arguments. + """ + inventor_aggregations( + """ + Used to forward-paginate through the `inventor_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `inventor_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Inventor` documents that get aggregated over based on the provided criteria. + """ + filter: InventorFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `inventor_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `inventor_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `inventor_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `inventor_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): InventorAggregationConnection + + """ + Fetches `Inventor`s based on the provided arguments. + """ + inventors( + """ + Used to forward-paginate through the `inventors`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `inventors`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `inventors` based on the provided criteria. + """ + filter: InventorFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `inventors`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `inventors`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `inventors`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `inventors`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `inventors` should be sorted. + """ + order_by: [InventorSortOrderInput!] + ): InventorConnection + + """ + Aggregations over the `manufacturers` data: + + > Fetches `Manufacturer`s based on the provided arguments. + """ + manufacturer_aggregations( + """ + Used to forward-paginate through the `manufacturer_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `manufacturer_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Manufacturer` documents that get aggregated over based on the provided criteria. + """ + filter: ManufacturerFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `manufacturer_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `manufacturer_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `manufacturer_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `manufacturer_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): ManufacturerAggregationConnection + + """ + Fetches `Manufacturer`s based on the provided arguments. + """ + manufacturers( + """ + Used to forward-paginate through the `manufacturers`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `manufacturers`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `manufacturers` based on the provided criteria. + """ + filter: ManufacturerFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `manufacturers`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `manufacturers`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `manufacturers`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `manufacturers`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `manufacturers` should be sorted. + """ + order_by: [ManufacturerSortOrderInput!] + ): ManufacturerConnection + + """ + Aggregations over the `mechanical_parts` data: + + > Fetches `MechanicalPart`s based on the provided arguments. + """ + mechanical_part_aggregations( + """ + Used to forward-paginate through the `mechanical_part_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `mechanical_part_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `MechanicalPart` documents that get aggregated over based on the provided criteria. + """ + filter: MechanicalPartFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `mechanical_part_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `mechanical_part_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `mechanical_part_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `mechanical_part_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): MechanicalPartAggregationConnection + + """ + Fetches `MechanicalPart`s based on the provided arguments. + """ + mechanical_parts( + """ + Used to forward-paginate through the `mechanical_parts`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `mechanical_parts`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `mechanical_parts` based on the provided criteria. + """ + filter: MechanicalPartFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `mechanical_parts`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `mechanical_parts`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `mechanical_parts`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `mechanical_parts`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `mechanical_parts` should be sorted. + """ + order_by: [MechanicalPartSortOrderInput!] + ): MechanicalPartConnection + + """ + Fetches `NamedEntity`s based on the provided arguments. + """ + named_entities( + """ + Used to forward-paginate through the `named_entities`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `named_entities`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the returned `named_entities` based on the provided criteria. + """ + filter: NamedEntityFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `named_entities`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `named_entities`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `named_entities`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `named_entities`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int - > The graph router uses this root-level `Query` field to directly fetch fields of entities defined by a subgraph. - > - > This field must take a `representations` argument of type `[_Any!]!` (a non-nullable list of non-nullable - > [`_Any` scalars](https://www.apollographql.com/docs/federation/subgraph-spec/#scalar-_any)). Its return type must be `[_Entity]!` (a non-nullable list of _nullable_ - > objects that belong to the [`_Entity` union](https://www.apollographql.com/docs/federation/subgraph-spec/#union-_entity)). - > - > Each entry in the `representations` list must be validated with the following rules: - > - > - A representation must include a `__typename` string field. - > - A representation must contain all fields included in the fieldset of a - `@key` directive applied to the corresponding entity definition. - > - > For details, see [Resolving entity fields with `Query._entities`](https://www.apollographql.com/docs/federation/subgraph-spec/#resolving-entity-fields-with-query_entities). + """ + Used to specify how the returned `named_entities` should be sorted. + """ + order_by: [NamedEntitySortOrderInput!] + ): NamedEntityConnection - Not intended for use by clients other than Apollo. """ - _entities( + Aggregations over the `named_entities` data: + + > Fetches `NamedEntity`s based on the provided arguments. + """ + named_entity_aggregations( """ - A list of entity data blobs from other apollo subgraphs. For more information (and - to see an example of what form this argument takes), see the [Apollo Federation subgraph - spec](https://www.apollographql.com/docs/federation/subgraph-spec/#resolve-requests-for-entities). + Used to forward-paginate through the `named_entity_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ - representations: [_Any!]! - ): [_Entity]! + after: Cursor - """ - A field required by the [Apollo Federation subgraph - spec](https://www.apollographql.com/docs/federation/subgraph-spec/#query_service): + """ + Used to backward-paginate through the `named_entity_aggregations`. When provided, the previous page before the + provided cursor will be returned. - > This field of the root `Query` type must return a non-nullable [`_Service` type](https://www.apollographql.com/docs/federation/subgraph-spec/#type-_service). + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor - > For details, see [Enhanced introspection with `Query._service`](https://www.apollographql.com/docs/federation/subgraph-spec/#enhanced-introspection-with-query_service). + """ + Used to filter the `NamedEntity` documents that get aggregated over based on the provided criteria. + """ + filter: NamedEntityFilterInput - Not intended for use by clients other than Apollo. - """ - _service: _Service! + """ + Used in conjunction with the `after` argument to forward-paginate through the `named_entity_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `named_entity_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `named_entity_aggregations`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `named_entity_aggregations`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + ): NamedEntityAggregationConnection """ - Aggregations over the `addresses` data: + Aggregations over the `named_inventors` data: - > Fetches `Address`s based on the provided arguments. + > Fetches `NamedInventor`s based on the provided arguments. """ - address_aggregations( + named_inventor_aggregations( """ - Used to forward-paginate through the `address_aggregations`. When provided, the next page after the + Used to forward-paginate through the `named_inventor_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9379,7 +10652,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `address_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `named_inventor_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9388,14 +10661,14 @@ type Query { before: Cursor """ - Used to filter the `Address` documents that get aggregated over based on the provided criteria. + Used to filter the `NamedInventor` documents that get aggregated over based on the provided criteria. """ - filter: AddressFilterInput + filter: NamedInventorFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `address_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `named_inventor_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `address_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `named_inventor_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9403,22 +10676,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `address_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `named_inventor_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `address_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `named_inventor_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): AddressAggregationConnection + ): NamedInventorAggregationConnection """ - Fetches `Address`s based on the provided arguments. + Fetches `NamedInventor`s based on the provided arguments. """ - addresses( + named_inventors( """ - Used to forward-paginate through the `addresses`. When provided, the next page after the + Used to forward-paginate through the `named_inventors`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9427,7 +10700,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `addresses`. When provided, the previous page before the + Used to backward-paginate through the `named_inventors`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9436,14 +10709,14 @@ type Query { before: Cursor """ - Used to filter the returned `addresses` based on the provided criteria. + Used to filter the returned `named_inventors` based on the provided criteria. """ - filter: AddressFilterInput + filter: NamedInventorFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `addresses`. + Used in conjunction with the `after` argument to forward-paginate through the `named_inventors`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `addresses`, if no `after` cursor is provided). + `after` cursor (or from the start of the `named_inventors`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9451,9 +10724,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `addresses`. + Used in conjunction with the `before` argument to backward-paginate through the `named_inventors`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `addresses`, if no `before` cursor is provided). + `before` cursor (or from the end of the `named_inventors`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9461,17 +10734,19 @@ type Query { last: Int """ - Used to specify how the returned `addresses` should be sorted. + Used to specify how the returned `named_inventors` should be sorted. """ - order_by: [AddressSortOrderInput!] - ): AddressConnection + order_by: [NamedInventorSortOrderInput!] + ): NamedInventorConnection """ - Fetches `Company`s based on the provided arguments. + Aggregations over the `parts` data: + + > Fetches `Part`s based on the provided arguments. """ - companies( + part_aggregations( """ - Used to forward-paginate through the `companies`. When provided, the next page after the + Used to forward-paginate through the `part_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9480,7 +10755,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `companies`. When provided, the previous page before the + Used to backward-paginate through the `part_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9489,14 +10764,14 @@ type Query { before: Cursor """ - Used to filter the returned `companies` based on the provided criteria. + Used to filter the `Part` documents that get aggregated over based on the provided criteria. """ - filter: CompanyFilterInput + filter: PartFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `companies`. + Used in conjunction with the `after` argument to forward-paginate through the `part_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `companies`, if no `after` cursor is provided). + `after` cursor (or from the start of the `part_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9504,29 +10779,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `companies`. + Used in conjunction with the `before` argument to backward-paginate through the `part_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `companies`, if no `before` cursor is provided). + `before` cursor (or from the end of the `part_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `companies` should be sorted. - """ - order_by: [CompanySortOrderInput!] - ): CompanyConnection + ): PartAggregationConnection """ - Aggregations over the `companies` data: - - > Fetches `Company`s based on the provided arguments. + Fetches `Part`s based on the provided arguments. """ - company_aggregations( + parts( """ - Used to forward-paginate through the `company_aggregations`. When provided, the next page after the + Used to forward-paginate through the `parts`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9535,7 +10803,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `company_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `parts`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9544,14 +10812,14 @@ type Query { before: Cursor """ - Used to filter the `Company` documents that get aggregated over based on the provided criteria. + Used to filter the returned `parts` based on the provided criteria. """ - filter: CompanyFilterInput + filter: PartFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `company_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `parts`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `company_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `parts`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9559,24 +10827,29 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `company_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `parts`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `company_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `parts`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): CompanyAggregationConnection + + """ + Used to specify how the returned `parts` should be sorted. + """ + order_by: [PartSortOrderInput!] + ): PartConnection """ - Aggregations over the `components` data: + Aggregations over the `physical_stores` data: - > Fetches `Component`s based on the provided arguments. + > Fetches `PhysicalStore`s based on the provided arguments. """ - component_aggregations( + physical_store_aggregations( """ - Used to forward-paginate through the `component_aggregations`. When provided, the next page after the + Used to forward-paginate through the `physical_store_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9585,7 +10858,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `component_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `physical_store_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9594,14 +10867,14 @@ type Query { before: Cursor """ - Used to filter the `Component` documents that get aggregated over based on the provided criteria. + Used to filter the `PhysicalStore` documents that get aggregated over based on the provided criteria. """ - filter: ComponentFilterInput + filter: PhysicalStoreFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `component_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `physical_store_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `component_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `physical_store_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9609,22 +10882,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `component_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `physical_store_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `component_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `physical_store_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): ComponentAggregationConnection + ): PhysicalStoreAggregationConnection """ - Fetches `Component`s based on the provided arguments. + Fetches `PhysicalStore`s based on the provided arguments. """ - components( + physical_stores( """ - Used to forward-paginate through the `components`. When provided, the next page after the + Used to forward-paginate through the `physical_stores`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9633,7 +10906,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `components`. When provided, the previous page before the + Used to backward-paginate through the `physical_stores`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9642,14 +10915,14 @@ type Query { before: Cursor """ - Used to filter the returned `components` based on the provided criteria. + Used to filter the returned `physical_stores` based on the provided criteria. """ - filter: ComponentFilterInput + filter: PhysicalStoreFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `components`. + Used in conjunction with the `after` argument to forward-paginate through the `physical_stores`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `components`, if no `after` cursor is provided). + `after` cursor (or from the start of the `physical_stores`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9657,9 +10930,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `components`. + Used in conjunction with the `before` argument to backward-paginate through the `physical_stores`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `components`, if no `before` cursor is provided). + `before` cursor (or from the end of the `physical_stores`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9667,19 +10940,19 @@ type Query { last: Int """ - Used to specify how the returned `components` should be sorted. + Used to specify how the returned `physical_stores` should be sorted. """ - order_by: [ComponentSortOrderInput!] - ): ComponentConnection + order_by: [PhysicalStoreSortOrderInput!] + ): PhysicalStoreConnection """ - Aggregations over the `electrical_parts` data: + Aggregations over the `retailers` data: - > Fetches `ElectricalPart`s based on the provided arguments. + > Fetches `Retail`s based on the provided arguments. """ - electrical_part_aggregations( + retail_aggregations( """ - Used to forward-paginate through the `electrical_part_aggregations`. When provided, the next page after the + Used to forward-paginate through the `retail_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9688,7 +10961,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `electrical_part_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `retail_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9697,14 +10970,14 @@ type Query { before: Cursor """ - Used to filter the `ElectricalPart` documents that get aggregated over based on the provided criteria. + Used to filter the `Retail` documents that get aggregated over based on the provided criteria. """ - filter: ElectricalPartFilterInput + filter: RetailFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `electrical_part_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `retail_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `electrical_part_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `retail_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9712,22 +10985,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `electrical_part_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `retail_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `electrical_part_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `retail_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): ElectricalPartAggregationConnection + ): RetailAggregationConnection """ - Fetches `ElectricalPart`s based on the provided arguments. + Fetches `Retail`s based on the provided arguments. """ - electrical_parts( + retailers( """ - Used to forward-paginate through the `electrical_parts`. When provided, the next page after the + Used to forward-paginate through the `retailers`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9736,7 +11009,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `electrical_parts`. When provided, the previous page before the + Used to backward-paginate through the `retailers`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9745,14 +11018,14 @@ type Query { before: Cursor """ - Used to filter the returned `electrical_parts` based on the provided criteria. + Used to filter the returned `retailers` based on the provided criteria. """ - filter: ElectricalPartFilterInput + filter: RetailFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `electrical_parts`. + Used in conjunction with the `after` argument to forward-paginate through the `retailers`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `electrical_parts`, if no `after` cursor is provided). + `after` cursor (or from the start of the `retailers`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9760,29 +11033,77 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `electrical_parts`. + Used in conjunction with the `before` argument to backward-paginate through the `retailers`. + When provided, limits the number of returned results to the last `n` before the provided + `before` cursor (or from the end of the `retailers`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `retailers` should be sorted. + """ + order_by: [RetailSortOrderInput!] + ): RetailConnection + + """ + Aggregations over the `sponsors` data: + + > Fetches `Sponsor`s based on the provided arguments. + """ + sponsor_aggregations( + """ + Used to forward-paginate through the `sponsor_aggregations`. When provided, the next page after the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + after: Cursor + + """ + Used to backward-paginate through the `sponsor_aggregations`. When provided, the previous page before the + provided cursor will be returned. + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + before: Cursor + + """ + Used to filter the `Sponsor` documents that get aggregated over based on the provided criteria. + """ + filter: SponsorFilterInput + + """ + Used in conjunction with the `after` argument to forward-paginate through the `sponsor_aggregations`. + When provided, limits the number of returned results to the first `n` after the provided + `after` cursor (or from the start of the `sponsor_aggregations`, if no `after` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + first: Int + + """ + Used in conjunction with the `before` argument to backward-paginate through the `sponsor_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `electrical_parts`, if no `before` cursor is provided). + `before` cursor (or from the end of the `sponsor_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `electrical_parts` should be sorted. - """ - order_by: [ElectricalPartSortOrderInput!] - ): ElectricalPartConnection + ): SponsorAggregationConnection """ - Aggregations over the `inventors` data: - - > Fetches `Inventor`s based on the provided arguments. + Fetches `Sponsor`s based on the provided arguments. """ - inventor_aggregations( + sponsors( """ - Used to forward-paginate through the `inventor_aggregations`. When provided, the next page after the + Used to forward-paginate through the `sponsors`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9791,7 +11112,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `inventor_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `sponsors`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9800,14 +11121,14 @@ type Query { before: Cursor """ - Used to filter the `Inventor` documents that get aggregated over based on the provided criteria. + Used to filter the returned `sponsors` based on the provided criteria. """ - filter: InventorFilterInput + filter: SponsorFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `inventor_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `sponsors`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `inventor_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `sponsors`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9815,22 +11136,29 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `inventor_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `sponsors`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `inventor_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `sponsors`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): InventorAggregationConnection + + """ + Used to specify how the returned `sponsors` should be sorted. + """ + order_by: [SponsorSortOrderInput!] + ): SponsorConnection """ - Fetches `Inventor`s based on the provided arguments. + Aggregations over the `stores` data: + + > Fetches `Store`s based on the provided arguments. """ - inventors( + store_aggregations( """ - Used to forward-paginate through the `inventors`. When provided, the next page after the + Used to forward-paginate through the `store_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9839,7 +11167,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `inventors`. When provided, the previous page before the + Used to backward-paginate through the `store_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9848,14 +11176,14 @@ type Query { before: Cursor """ - Used to filter the returned `inventors` based on the provided criteria. + Used to filter the `Store` documents that get aggregated over based on the provided criteria. """ - filter: InventorFilterInput + filter: StoreFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `inventors`. + Used in conjunction with the `after` argument to forward-paginate through the `store_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `inventors`, if no `after` cursor is provided). + `after` cursor (or from the start of the `store_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9863,29 +11191,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `inventors`. + Used in conjunction with the `before` argument to backward-paginate through the `store_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `inventors`, if no `before` cursor is provided). + `before` cursor (or from the end of the `store_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `inventors` should be sorted. - """ - order_by: [InventorSortOrderInput!] - ): InventorConnection + ): StoreAggregationConnection """ - Aggregations over the `manufacturers` data: - - > Fetches `Manufacturer`s based on the provided arguments. + Fetches `Store`s based on the provided arguments. """ - manufacturer_aggregations( + stores( """ - Used to forward-paginate through the `manufacturer_aggregations`. When provided, the next page after the + Used to forward-paginate through the `stores`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9894,7 +11215,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `manufacturer_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `stores`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9903,14 +11224,14 @@ type Query { before: Cursor """ - Used to filter the `Manufacturer` documents that get aggregated over based on the provided criteria. + Used to filter the returned `stores` based on the provided criteria. """ - filter: ManufacturerFilterInput + filter: StoreFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `manufacturer_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `stores`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `manufacturer_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `stores`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9918,22 +11239,29 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `manufacturer_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `stores`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `manufacturer_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `stores`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): ManufacturerAggregationConnection + + """ + Used to specify how the returned `stores` should be sorted. + """ + order_by: [StoreSortOrderInput!] + ): StoreConnection """ - Fetches `Manufacturer`s based on the provided arguments. + Aggregations over the `teams` data: + + > Fetches `Team`s based on the provided arguments. """ - manufacturers( + team_aggregations( """ - Used to forward-paginate through the `manufacturers`. When provided, the next page after the + Used to forward-paginate through the `team_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9942,7 +11270,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `manufacturers`. When provided, the previous page before the + Used to backward-paginate through the `team_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9951,14 +11279,14 @@ type Query { before: Cursor """ - Used to filter the returned `manufacturers` based on the provided criteria. + Used to filter the `Team` documents that get aggregated over based on the provided criteria. """ - filter: ManufacturerFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `manufacturers`. + Used in conjunction with the `after` argument to forward-paginate through the `team_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `manufacturers`, if no `after` cursor is provided). + `after` cursor (or from the start of the `team_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -9966,29 +11294,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `manufacturers`. + Used in conjunction with the `before` argument to backward-paginate through the `team_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `manufacturers`, if no `before` cursor is provided). + `before` cursor (or from the end of the `team_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `manufacturers` should be sorted. - """ - order_by: [ManufacturerSortOrderInput!] - ): ManufacturerConnection + ): TeamAggregationConnection """ - Aggregations over the `mechanical_parts` data: - - > Fetches `MechanicalPart`s based on the provided arguments. + Fetches `Team`s based on the provided arguments. """ - mechanical_part_aggregations( + teams( """ - Used to forward-paginate through the `mechanical_part_aggregations`. When provided, the next page after the + Used to forward-paginate through the `teams`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -9997,7 +11318,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `mechanical_part_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `teams`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10006,14 +11327,14 @@ type Query { before: Cursor """ - Used to filter the `MechanicalPart` documents that get aggregated over based on the provided criteria. + Used to filter the returned `teams` based on the provided criteria. """ - filter: MechanicalPartFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `mechanical_part_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `teams`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `mechanical_part_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `teams`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10021,22 +11342,34 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `mechanical_part_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `teams`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `mechanical_part_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `teams`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): MechanicalPartAggregationConnection + + """ + Used to specify how the returned `teams` should be sorted. + """ + order_by: [TeamSortOrderInput!] + ): TeamConnection """ - Fetches `MechanicalPart`s based on the provided arguments. + Aggregations over the `widgets` data: + + > Fetches `Widget`s based on the provided arguments. + + Note: aggregation queries are relatively expensive, and some fields have been pre-aggregated to allow + more efficient queries for some common aggregation cases: + + - The root `widget_currencies` field groups by `cost.currency` """ - mechanical_parts( + widget_aggregations( """ - Used to forward-paginate through the `mechanical_parts`. When provided, the next page after the + Used to forward-paginate through the `widget_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10045,7 +11378,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `mechanical_parts`. When provided, the previous page before the + Used to backward-paginate through the `widget_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10054,14 +11387,14 @@ type Query { before: Cursor """ - Used to filter the returned `mechanical_parts` based on the provided criteria. + Used to filter the `Widget` documents that get aggregated over based on the provided criteria. """ - filter: MechanicalPartFilterInput + filter: WidgetFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `mechanical_parts`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `mechanical_parts`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10069,27 +11402,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `mechanical_parts`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `mechanical_parts`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `mechanical_parts` should be sorted. - """ - order_by: [MechanicalPartSortOrderInput!] - ): MechanicalPartConnection + ): WidgetAggregationConnection """ - Fetches `NamedEntity`s based on the provided arguments. + Fetches `WidgetCurrency`s based on the provided arguments. """ - named_entities( + widget_currencies( """ - Used to forward-paginate through the `named_entities`. When provided, the next page after the + Used to forward-paginate through the `widget_currencies`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10098,7 +11426,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `named_entities`. When provided, the previous page before the + Used to backward-paginate through the `widget_currencies`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10107,14 +11435,14 @@ type Query { before: Cursor """ - Used to filter the returned `named_entities` based on the provided criteria. + Used to filter the returned `widget_currencies` based on the provided criteria. """ - filter: NamedEntityFilterInput + filter: WidgetCurrencyFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `named_entities`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_currencies`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `named_entities`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_currencies`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10122,9 +11450,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `named_entities`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_currencies`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `named_entities`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_currencies`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10132,19 +11460,19 @@ type Query { last: Int """ - Used to specify how the returned `named_entities` should be sorted. + Used to specify how the returned `widget_currencies` should be sorted. """ - order_by: [NamedEntitySortOrderInput!] - ): NamedEntityConnection + order_by: [WidgetCurrencySortOrderInput!] + ): WidgetCurrencyConnection """ - Aggregations over the `named_entities` data: + Aggregations over the `widget_currencies` data: - > Fetches `NamedEntity`s based on the provided arguments. + > Fetches `WidgetCurrency`s based on the provided arguments. """ - named_entity_aggregations( + widget_currency_aggregations( """ - Used to forward-paginate through the `named_entity_aggregations`. When provided, the next page after the + Used to forward-paginate through the `widget_currency_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10153,7 +11481,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `named_entity_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `widget_currency_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10162,14 +11490,14 @@ type Query { before: Cursor """ - Used to filter the `NamedEntity` documents that get aggregated over based on the provided criteria. + Used to filter the `WidgetCurrency` documents that get aggregated over based on the provided criteria. """ - filter: NamedEntityFilterInput + filter: WidgetCurrencyFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `named_entity_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_currency_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `named_entity_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_currency_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10177,24 +11505,24 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `named_entity_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_currency_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `named_entity_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_currency_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): NamedEntityAggregationConnection + ): WidgetCurrencyAggregationConnection """ - Aggregations over the `named_inventors` data: + Aggregations over the `widgets_or_addresses` data: - > Fetches `NamedInventor`s based on the provided arguments. + > Fetches `WidgetOrAddress`s based on the provided arguments. """ - named_inventor_aggregations( + widget_or_address_aggregations( """ - Used to forward-paginate through the `named_inventor_aggregations`. When provided, the next page after the + Used to forward-paginate through the `widget_or_address_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10203,7 +11531,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `named_inventor_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `widget_or_address_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10212,14 +11540,14 @@ type Query { before: Cursor """ - Used to filter the `NamedInventor` documents that get aggregated over based on the provided criteria. + Used to filter the `WidgetOrAddress` documents that get aggregated over based on the provided criteria. """ - filter: NamedInventorFilterInput + filter: WidgetOrAddressFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `named_inventor_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_or_address_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `named_inventor_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_or_address_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10227,22 +11555,24 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `named_inventor_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_or_address_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `named_inventor_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_or_address_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): NamedInventorAggregationConnection + ): WidgetOrAddressAggregationConnection """ - Fetches `NamedInventor`s based on the provided arguments. + Aggregations over the `widget_workspaces` data: + + > Fetches `WidgetWorkspace`s based on the provided arguments. """ - named_inventors( + widget_workspace_aggregations( """ - Used to forward-paginate through the `named_inventors`. When provided, the next page after the + Used to forward-paginate through the `widget_workspace_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10251,7 +11581,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `named_inventors`. When provided, the previous page before the + Used to backward-paginate through the `widget_workspace_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10260,14 +11590,14 @@ type Query { before: Cursor """ - Used to filter the returned `named_inventors` based on the provided criteria. + Used to filter the `WidgetWorkspace` documents that get aggregated over based on the provided criteria. """ - filter: NamedInventorFilterInput + filter: WidgetWorkspaceFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `named_inventors`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_workspace_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `named_inventors`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_workspace_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10275,29 +11605,22 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `named_inventors`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_workspace_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `named_inventors`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_workspace_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - - """ - Used to specify how the returned `named_inventors` should be sorted. - """ - order_by: [NamedInventorSortOrderInput!] - ): NamedInventorConnection + ): WidgetWorkspaceAggregationConnection """ - Aggregations over the `parts` data: - - > Fetches `Part`s based on the provided arguments. + Fetches `WidgetWorkspace`s based on the provided arguments. """ - part_aggregations( + widget_workspaces( """ - Used to forward-paginate through the `part_aggregations`. When provided, the next page after the + Used to forward-paginate through the `widget_workspaces`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10306,7 +11629,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `part_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `widget_workspaces`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10315,14 +11638,14 @@ type Query { before: Cursor """ - Used to filter the `Part` documents that get aggregated over based on the provided criteria. + Used to filter the returned `widget_workspaces` based on the provided criteria. """ - filter: PartFilterInput + filter: WidgetWorkspaceFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `part_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `widget_workspaces`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `part_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widget_workspaces`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10330,22 +11653,27 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `part_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `widget_workspaces`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `part_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widget_workspaces`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): PartAggregationConnection + + """ + Used to specify how the returned `widget_workspaces` should be sorted. + """ + order_by: [WidgetWorkspaceSortOrderInput!] + ): WidgetWorkspaceConnection """ - Fetches `Part`s based on the provided arguments. + Fetches `Widget`s based on the provided arguments. """ - parts( + widgets( """ - Used to forward-paginate through the `parts`. When provided, the next page after the + Used to forward-paginate through the `widgets`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10354,7 +11682,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `parts`. When provided, the previous page before the + Used to backward-paginate through the `widgets`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10363,14 +11691,14 @@ type Query { before: Cursor """ - Used to filter the returned `parts` based on the provided criteria. + Used to filter the returned `widgets` based on the provided criteria. """ - filter: PartFilterInput + filter: WidgetFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `parts`. + Used in conjunction with the `after` argument to forward-paginate through the `widgets`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `parts`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widgets`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10378,9 +11706,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `parts`. + Used in conjunction with the `before` argument to backward-paginate through the `widgets`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `parts`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widgets`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10388,17 +11716,17 @@ type Query { last: Int """ - Used to specify how the returned `parts` should be sorted. + Used to specify how the returned `widgets` should be sorted. """ - order_by: [PartSortOrderInput!] - ): PartConnection + order_by: [WidgetSortOrderInput!] + ): WidgetConnection """ - Fetches `Person`s based on the provided arguments. + Fetches `WidgetOrAddress`s based on the provided arguments. """ - people( + widgets_or_addresses( """ - Used to forward-paginate through the `people`. When provided, the next page after the + Used to forward-paginate through the `widgets_or_addresses`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10407,7 +11735,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `people`. When provided, the previous page before the + Used to backward-paginate through the `widgets_or_addresses`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10416,14 +11744,14 @@ type Query { before: Cursor """ - Used to filter the returned `people` based on the provided criteria. + Used to filter the returned `widgets_or_addresses` based on the provided criteria. """ - filter: PersonFilterInput + filter: WidgetOrAddressFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `people`. + Used in conjunction with the `after` argument to forward-paginate through the `widgets_or_addresses`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `people`, if no `after` cursor is provided). + `after` cursor (or from the start of the `widgets_or_addresses`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10431,393 +11759,649 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `people`. + Used in conjunction with the `before` argument to backward-paginate through the `widgets_or_addresses`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `people`, if no `before` cursor is provided). + `before` cursor (or from the end of the `widgets_or_addresses`, if no `before` cursor is provided). + + See the [Relay GraphQL Cursor Connections + Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. + """ + last: Int + + """ + Used to specify how the returned `widgets_or_addresses` should be sorted. + """ + order_by: [WidgetOrAddressSortOrderInput!] + ): WidgetOrAddressConnection +} + +interface Retail implements DistributionChannel { + active: Boolean + established_on: Date + id: ID! +} + +""" +Type used to perform aggregation computations on `Retail` fields. +""" +type RetailAggregatedValues { + """ + Computed aggregate values for the `active` field. + """ + active: NonNumericAggregatedValues + + """ + Computed aggregate values for the `address` field. + """ + address: NonNumericAggregatedValues + + """ + Computed aggregate values for the `current_location` field. + """ + current_location: NonNumericAggregatedValues + + """ + Computed aggregate values for the `customer_facing` field. + """ + customer_facing: NonNumericAggregatedValues + + """ + Computed aggregate values for the `established_on` field. + """ + established_on: DateAggregatedValues + + """ + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues + + """ + Computed aggregate values for the `platform` field. + """ + platform: NonNumericAggregatedValues + + """ + Computed aggregate values for the `square_footage` field. + """ + square_footage: IntAggregatedValues + + """ + Computed aggregate values for the `url` field. + """ + url: NonNumericAggregatedValues + + """ + Computed aggregate values for the `vehicle_type` field. + """ + vehicle_type: NonNumericAggregatedValues +} + +""" +Return type representing a bucket of `Retail` documents for an aggregations query. +""" +type RetailAggregation { + """ + Provides computed aggregated values over all `Retail` documents in an aggregation bucket. + """ + aggregated_values: RetailAggregatedValues + + """ + The count of `Retail` documents in an aggregation bucket. + """ + count: JsonSafeLong! + + """ + Used to specify the `Retail` fields to group by. The returned values identify each aggregation bucket. + """ + grouped_by: RetailGroupedBy +} + +""" +Represents a paginated collection of `RetailAggregation` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type RetailAggregationConnection { + """ + Wraps a specific `RetailAggregation` to pair it with its pagination cursor. + """ + edges: [RetailAggregationEdge!]! + + """ + The list of `RetailAggregation` results. + """ + nodes: [RetailAggregation!]! + + """ + Provides pagination-related information. + """ + page_info: PageInfo! +} + +""" +Represents a specific `RetailAggregation` in the context of a `RetailAggregationConnection`, +providing access to both the `RetailAggregation` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type RetailAggregationEdge { + """ + The `Cursor` of this `RetailAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `RetailAggregation`. + """ + cursor: Cursor + + """ + The `RetailAggregation` of this edge. + """ + node: RetailAggregation +} + +""" +Represents a paginated collection of `Retail` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type RetailConnection { + """ + Wraps a specific `Retail` to pair it with its pagination cursor. + """ + edges: [RetailEdge!]! + + """ + The list of `Retail` results. + """ + nodes: [Retail!]! + + """ + Provides pagination-related information. + """ + page_info: PageInfo! + + """ + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! +} + +""" +Represents a specific `Retail` in the context of a `RetailConnection`, +providing access to both the `Retail` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type RetailEdge { + """ + All search highlights for this `Retail`, indicating where in the indexed document the query matched. + """ + all_highlights: [SearchHighlight!]! + + """ + The `Cursor` of this `Retail`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Retail`. + """ + cursor: Cursor + + """ + Specific search highlights for this `Retail`, providing matching snippets for the requested fields. + """ + highlights: RetailHighlights + + """ + The `Retail` of this edge. + """ + node: Retail +} + +""" +Input type used to specify filters on `Retail` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input RetailFilterInput { + """ + Used to filter on the `active` field. + + When `null` or an empty object is passed, matches all documents. + """ + active: BooleanFilterInput + + """ + Used to filter on the `address` field. + + When `null` or an empty object is passed, matches all documents. + """ + address: StringFilterInput + + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `RetailFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [RetailFilterInput!] + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [RetailFilterInput!] + + """ + Used to filter on the `current_location` field. + + When `null` or an empty object is passed, matches all documents. + """ + current_location: StringFilterInput + + """ + Used to filter on the `customer_facing` field. + + When `null` or an empty object is passed, matches all documents. + """ + customer_facing: BooleanFilterInput + + """ + Used to filter on the `established_on` field. + + When `null` or an empty object is passed, matches all documents. + """ + established_on: DateFilterInput - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Used to filter on the `id` field. - """ - Used to specify how the returned `people` should be sorted. - """ - order_by: [PersonSortOrderInput!] - ): PersonConnection + When `null` or an empty object is passed, matches all documents. + """ + id: IDFilterInput """ - Aggregations over the `people` data: + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - > Fetches `Person`s based on the provided arguments. + When `null` or an empty object is passed, matches no documents. """ - person_aggregations( - """ - Used to forward-paginate through the `person_aggregations`. When provided, the next page after the - provided cursor will be returned. + not: RetailFilterInput - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Used to filter on the `platform` field. - """ - Used to backward-paginate through the `person_aggregations`. When provided, the previous page before the - provided cursor will be returned. + When `null` or an empty object is passed, matches all documents. + """ + platform: StringFilterInput - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Used to filter on the `square_footage` field. - """ - Used to filter the `Person` documents that get aggregated over based on the provided criteria. - """ - filter: PersonFilterInput + When `null` or an empty object is passed, matches all documents. + """ + square_footage: IntFilterInput - """ - Used in conjunction with the `after` argument to forward-paginate through the `person_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `person_aggregations`, if no `after` cursor is provided). + """ + Used to filter on the `url` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + When `null` or an empty object is passed, matches all documents. + """ + url: StringFilterInput - """ - Used in conjunction with the `before` argument to backward-paginate through the `person_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `person_aggregations`, if no `before` cursor is provided). + """ + Used to filter on the `vehicle_type` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): PersonAggregationConnection + When `null` or an empty object is passed, matches all documents. + """ + vehicle_type: StringFilterInput +} +""" +Type used to specify the `Retail` fields to group by for aggregations. +""" +type RetailGroupedBy { """ - Aggregations over the `sponsors` data: + The `active` field value for this group. + """ + active: Boolean - > Fetches `Sponsor`s based on the provided arguments. """ - sponsor_aggregations( - """ - Used to forward-paginate through the `sponsor_aggregations`. When provided, the next page after the - provided cursor will be returned. + The `address` field value for this group. + """ + address: String - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + The `current_location` field value for this group. + """ + current_location: String - """ - Used to backward-paginate through the `sponsor_aggregations`. When provided, the previous page before the - provided cursor will be returned. + """ + The `customer_facing` field value for this group. + """ + customer_facing: Boolean - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Offers the different grouping options for the `established_on` value within this group. + """ + established_on: DateGroupedBy - """ - Used to filter the `Sponsor` documents that get aggregated over based on the provided criteria. - """ - filter: SponsorFilterInput + """ + The `platform` field value for this group. + """ + platform: String - """ - Used in conjunction with the `after` argument to forward-paginate through the `sponsor_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `sponsor_aggregations`, if no `after` cursor is provided). + """ + The `square_footage` field value for this group. + """ + square_footage: Int - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + The `url` field value for this group. + """ + url: String - """ - Used in conjunction with the `before` argument to backward-paginate through the `sponsor_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `sponsor_aggregations`, if no `before` cursor is provided). + """ + The `vehicle_type` field value for this group. + """ + vehicle_type: String +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): SponsorAggregationConnection +""" +Type used to request desired `Retail` search highlight fields. +""" +type RetailHighlights { + """ + Search highlights for the `address`, providing snippets of the matching text. + """ + address: [String!]! """ - Fetches `Sponsor`s based on the provided arguments. + Search highlights for the `current_location`, providing snippets of the matching text. """ - sponsors( - """ - Used to forward-paginate through the `sponsors`. When provided, the next page after the - provided cursor will be returned. + current_location: [String!]! - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Search highlights for the `id`, providing snippets of the matching text. + """ + id: [String!]! - """ - Used to backward-paginate through the `sponsors`. When provided, the previous page before the - provided cursor will be returned. + """ + Search highlights for the `platform`, providing snippets of the matching text. + """ + platform: [String!]! - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Search highlights for the `url`, providing snippets of the matching text. + """ + url: [String!]! - """ - Used to filter the returned `sponsors` based on the provided criteria. - """ - filter: SponsorFilterInput + """ + Search highlights for the `vehicle_type`, providing snippets of the matching text. + """ + vehicle_type: [String!]! +} - """ - Used in conjunction with the `after` argument to forward-paginate through the `sponsors`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `sponsors`, if no `after` cursor is provided). +""" +Enumerates the ways `Retail`s can be sorted. +""" +enum RetailSortOrderInput { + """ + Sorts ascending by the `address` field. + """ + address_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Sorts descending by the `address` field. + """ + address_DESC - """ - Used in conjunction with the `before` argument to backward-paginate through the `sponsors`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `sponsors`, if no `before` cursor is provided). + """ + Sorts ascending by the `current_location` field. + """ + current_location_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Sorts descending by the `current_location` field. + """ + current_location_DESC - """ - Used to specify how the returned `sponsors` should be sorted. - """ - order_by: [SponsorSortOrderInput!] - ): SponsorConnection + """ + Sorts ascending by the `established_on` field. + """ + established_on_ASC """ - Aggregations over the `teams` data: + Sorts descending by the `established_on` field. + """ + established_on_DESC - > Fetches `Team`s based on the provided arguments. """ - team_aggregations( - """ - Used to forward-paginate through the `team_aggregations`. When provided, the next page after the - provided cursor will be returned. + Sorts ascending by the `id` field. + """ + id_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Sorts descending by the `id` field. + """ + id_DESC - """ - Used to backward-paginate through the `team_aggregations`. When provided, the previous page before the - provided cursor will be returned. + """ + Sorts ascending by the `platform` field. + """ + platform_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Sorts descending by the `platform` field. + """ + platform_DESC - """ - Used to filter the `Team` documents that get aggregated over based on the provided criteria. - """ - filter: TeamFilterInput + """ + Sorts ascending by the `square_footage` field. + """ + square_footage_ASC - """ - Used in conjunction with the `after` argument to forward-paginate through the `team_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `team_aggregations`, if no `after` cursor is provided). + """ + Sorts descending by the `square_footage` field. + """ + square_footage_DESC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Sorts ascending by the `url` field. + """ + url_ASC - """ - Used in conjunction with the `before` argument to backward-paginate through the `team_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `team_aggregations`, if no `before` cursor is provided). + """ + Sorts descending by the `url` field. + """ + url_DESC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): TeamAggregationConnection + """ + Sorts ascending by the `vehicle_type` field. + """ + vehicle_type_ASC """ - Fetches `Team`s based on the provided arguments. + Sorts descending by the `vehicle_type` field. """ - teams( - """ - Used to forward-paginate through the `teams`. When provided, the next page after the - provided cursor will be returned. + vehicle_type_DESC +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor +""" +Provides information about why a document matched a search via highlighted snippets. +""" +type SearchHighlight @shareable { + """ + Path to a leaf field containing one or more search highlight snippets. The returned list will contain a path segment for + each object layer of the schema, from the document root. + """ + path: [String!]! - """ - Used to backward-paginate through the `teams`. When provided, the previous page before the - provided cursor will be returned. + """ + List of snippets containing search highlights from field values at this `path`. + """ + snippets: [String!]! +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor +enum Size { + LARGE + MEDIUM + SMALL +} - """ - Used to filter the returned `teams` based on the provided criteria. - """ - filter: TeamFilterInput +""" +Input type used to specify filters on `Size` fields. - """ - Used in conjunction with the `after` argument to forward-paginate through the `teams`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `teams`, if no `after` cursor is provided). +Will match all documents if passed as an empty object (or as `null`). +""" +input SizeFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `SizeFilterInput` input because of collisions between + key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - """ - Used in conjunction with the `before` argument to backward-paginate through the `teams`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `teams`, if no `before` cursor is provided). + When `null` or an empty list is passed, matches all documents. + """ + all_of: [SizeFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - """ - Used to specify how the returned `teams` should be sorted. - """ - order_by: [TeamSortOrderInput!] - ): TeamConnection + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SizeFilterInput!] """ - Aggregations over the `widgets` data: + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. - > Fetches `Widget`s based on the provided arguments. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. + """ + equal_to_any_of: [SizeInput] - Note: aggregation queries are relatively expensive, and some fields have been pre-aggregated to allow - more efficient queries for some common aggregation cases: + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - - The root `widget_currencies` field groups by `cost.currency` + When `null` or an empty object is passed, matches no documents. """ - widget_aggregations( - """ - Used to forward-paginate through the `widget_aggregations`. When provided, the next page after the - provided cursor will be returned. + not: SizeFilterInput +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor +enum SizeInput { + LARGE + MEDIUM + SMALL +} - """ - Used to backward-paginate through the `widget_aggregations`. When provided, the previous page before the - provided cursor will be returned. +""" +Input type used to specify filters on elements of a `[Size]` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor +Will match all documents if passed as an empty object (or as `null`). +""" +input SizeListElementFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - """ - Used to filter the `Widget` documents that get aggregated over based on the provided criteria. - """ - filter: WidgetFilterInput + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `SizeListElementFilterInput` input because of + collisions between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_aggregations`, if no `after` cursor is provided). + When `null` or an empty list is passed, matches all documents. + """ + all_of: [SizeListElementFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_aggregations`, if no `before` cursor is provided). + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SizeListElementFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): WidgetAggregationConnection + """ + Matches records where the field value is equal to any of the provided values. + This works just like an IN operator in SQL. + When `null` is passed, matches all documents. When an empty list is passed, + this part of the filter matches no documents. When `null` is passed in the + list, this part of the filter matches records where the field value is `null`. """ - Fetches `WidgetCurrency`s based on the provided arguments. + equal_to_any_of: [SizeInput!] +} + +""" +Input type used to specify filters on `[Size]` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input SizeListFilterInput { """ - widget_currencies( - """ - Used to forward-paginate through the `widget_currencies`. When provided, the next page after the - provided cursor will be returned. + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `SizeListFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - """ - Used to backward-paginate through the `widget_currencies`. When provided, the previous page before the - provided cursor will be returned. + When `null` or an empty list is passed, matches all documents. + """ + all_of: [SizeListFilterInput!] - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - """ - Used to filter the returned `widget_currencies` based on the provided criteria. - """ - filter: WidgetCurrencyFilterInput + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SizeListFilterInput!] - """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_currencies`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_currencies`, if no `after` cursor is provided). + """ + Matches records where any of the list elements match the provided sub-filter. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + When `null` or an empty object is passed, matches all documents. + """ + any_satisfy: SizeListElementFilterInput - """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_currencies`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_currencies`, if no `before` cursor is provided). + """ + Used to filter on the number of non-null elements in this list field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + When `null` or an empty object is passed, matches all documents. + """ + count: IntFilterInput - """ - Used to specify how the returned `widget_currencies` should be sorted. - """ - order_by: [WidgetCurrencySortOrderInput!] - ): WidgetCurrencyConnection + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + When `null` or an empty object is passed, matches no documents. """ - Aggregations over the `widget_currencies` data: + not: SizeListFilterInput +} - > Fetches `WidgetCurrency`s based on the provided arguments. +type Sponsor @key(fields: "id") { """ - widget_currency_aggregations( + Aggregations over the `affiliated_teams_from_nested` data. + """ + affiliated_team_from_nested_aggregations( """ - Used to forward-paginate through the `widget_currency_aggregations`. When provided, the next page after the + Used to forward-paginate through the `affiliated_team_from_nested_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10826,7 +12410,8 @@ type Query { after: Cursor """ - Used to backward-paginate through the `widget_currency_aggregations`. When provided, the previous page before the + Used to backward-paginate through the + `affiliated_team_from_nested_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10835,14 +12420,15 @@ type Query { before: Cursor """ - Used to filter the `WidgetCurrency` documents that get aggregated over based on the provided criteria. + Used to filter the `Team` documents that get aggregated over based on the provided criteria. """ - filter: WidgetCurrencyFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_currency_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through + the `affiliated_team_from_nested_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_currency_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `affiliated_team_from_nested_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10850,24 +12436,23 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_currency_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through + the `affiliated_team_from_nested_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_currency_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `affiliated_team_from_nested_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): WidgetCurrencyAggregationConnection + ): TeamAggregationConnection """ - Aggregations over the `widgets_or_addresses` data: - - > Fetches `WidgetOrAddress`s based on the provided arguments. + Aggregations over the `affiliated_teams_from_object` data. """ - widget_or_address_aggregations( + affiliated_team_from_object_aggregations( """ - Used to forward-paginate through the `widget_or_address_aggregations`. When provided, the next page after the + Used to forward-paginate through the `affiliated_team_from_object_aggregations`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10876,7 +12461,8 @@ type Query { after: Cursor """ - Used to backward-paginate through the `widget_or_address_aggregations`. When provided, the previous page before the + Used to backward-paginate through the + `affiliated_team_from_object_aggregations`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10885,14 +12471,15 @@ type Query { before: Cursor """ - Used to filter the `WidgetOrAddress` documents that get aggregated over based on the provided criteria. + Used to filter the `Team` documents that get aggregated over based on the provided criteria. """ - filter: WidgetOrAddressFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_or_address_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through + the `affiliated_team_from_object_aggregations`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_or_address_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `affiliated_team_from_object_aggregations`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10900,24 +12487,19 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_or_address_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through + the `affiliated_team_from_object_aggregations`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_or_address_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `affiliated_team_from_object_aggregations`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): WidgetOrAddressAggregationConnection - - """ - Aggregations over the `widget_workspaces` data: - - > Fetches `WidgetWorkspace`s based on the provided arguments. - """ - widget_workspace_aggregations( + ): TeamAggregationConnection + affiliated_teams_from_nested( """ - Used to forward-paginate through the `widget_workspace_aggregations`. When provided, the next page after the + Used to forward-paginate through the `affiliated_teams_from_nested`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10926,7 +12508,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `widget_workspace_aggregations`. When provided, the previous page before the + Used to backward-paginate through the `affiliated_teams_from_nested`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10935,14 +12517,14 @@ type Query { before: Cursor """ - Used to filter the `WidgetWorkspace` documents that get aggregated over based on the provided criteria. + Used to filter the returned `affiliated_teams_from_nested` based on the provided criteria. """ - filter: WidgetWorkspaceFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_workspace_aggregations`. + Used in conjunction with the `after` argument to forward-paginate through the `affiliated_teams_from_nested`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_workspace_aggregations`, if no `after` cursor is provided). + `after` cursor (or from the start of the `affiliated_teams_from_nested`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10950,22 +12532,23 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_workspace_aggregations`. + Used in conjunction with the `before` argument to backward-paginate through the `affiliated_teams_from_nested`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_workspace_aggregations`, if no `before` cursor is provided). + `before` cursor (or from the end of the `affiliated_teams_from_nested`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. """ last: Int - ): WidgetWorkspaceAggregationConnection - """ - Fetches `WidgetWorkspace`s based on the provided arguments. - """ - widget_workspaces( """ - Used to forward-paginate through the `widget_workspaces`. When provided, the next page after the + Used to specify how the returned `affiliated_teams_from_nested` should be sorted. + """ + order_by: [TeamSortOrderInput!] + ): TeamConnection + affiliated_teams_from_object( + """ + Used to forward-paginate through the `affiliated_teams_from_object`. When provided, the next page after the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10974,7 +12557,7 @@ type Query { after: Cursor """ - Used to backward-paginate through the `widget_workspaces`. When provided, the previous page before the + Used to backward-paginate through the `affiliated_teams_from_object`. When provided, the previous page before the provided cursor will be returned. See the [Relay GraphQL Cursor Connections @@ -10983,14 +12566,14 @@ type Query { before: Cursor """ - Used to filter the returned `widget_workspaces` based on the provided criteria. + Used to filter the returned `affiliated_teams_from_object` based on the provided criteria. """ - filter: WidgetWorkspaceFilterInput + filter: TeamFilterInput """ - Used in conjunction with the `after` argument to forward-paginate through the `widget_workspaces`. + Used in conjunction with the `after` argument to forward-paginate through the `affiliated_teams_from_object`. When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widget_workspaces`, if no `after` cursor is provided). + `after` cursor (or from the start of the `affiliated_teams_from_object`, if no `after` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -10998,9 +12581,9 @@ type Query { first: Int """ - Used in conjunction with the `before` argument to backward-paginate through the `widget_workspaces`. + Used in conjunction with the `before` argument to backward-paginate through the `affiliated_teams_from_object`. When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widget_workspaces`, if no `before` cursor is provided). + `before` cursor (or from the end of the `affiliated_teams_from_object`, if no `before` cursor is provided). See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. @@ -11008,157 +12591,296 @@ type Query { last: Int """ - Used to specify how the returned `widget_workspaces` should be sorted. + Used to specify how the returned `affiliated_teams_from_object` should be sorted. """ - order_by: [WidgetWorkspaceSortOrderInput!] - ): WidgetWorkspaceConnection + order_by: [TeamSortOrderInput!] + ): TeamConnection + id: ID! + name: String +} +""" +Type used to perform aggregation computations on `Sponsor` fields. +""" +type SponsorAggregatedValues { """ - Fetches `Widget`s based on the provided arguments. + Computed aggregate values for the `id` field. """ - widgets( - """ - Used to forward-paginate through the `widgets`. When provided, the next page after the - provided cursor will be returned. + id: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + """ + Computed aggregate values for the `name` field. + """ + name: NonNumericAggregatedValues +} - """ - Used to backward-paginate through the `widgets`. When provided, the previous page before the - provided cursor will be returned. +""" +Return type representing a bucket of `Sponsor` documents for an aggregations query. +""" +type SponsorAggregation { + """ + Provides computed aggregated values over all `Sponsor` documents in an aggregation bucket. + """ + aggregated_values: SponsorAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + """ + The count of `Sponsor` documents in an aggregation bucket. + """ + count: JsonSafeLong! - """ - Used to filter the returned `widgets` based on the provided criteria. - """ - filter: WidgetFilterInput + """ + Used to specify the `Sponsor` fields to group by. The returned values identify each aggregation bucket. + """ + grouped_by: SponsorGroupedBy +} + +""" +Represents a paginated collection of `SponsorAggregation` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type SponsorAggregationConnection { + """ + Wraps a specific `SponsorAggregation` to pair it with its pagination cursor. + """ + edges: [SponsorAggregationEdge!]! + + """ + The list of `SponsorAggregation` results. + """ + nodes: [SponsorAggregation!]! + + """ + Provides pagination-related information. + """ + page_info: PageInfo! +} + +""" +Represents a specific `SponsorAggregation` in the context of a `SponsorAggregationConnection`, +providing access to both the `SponsorAggregation` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type SponsorAggregationEdge { + """ + The `Cursor` of this `SponsorAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `SponsorAggregation`. + """ + cursor: Cursor + + """ + The `SponsorAggregation` of this edge. + """ + node: SponsorAggregation +} + +""" +Represents a paginated collection of `Sponsor` results. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. +""" +type SponsorConnection { + """ + Wraps a specific `Sponsor` to pair it with its pagination cursor. + """ + edges: [SponsorEdge!]! + + """ + The list of `Sponsor` results. + """ + nodes: [Sponsor!]! + + """ + Provides pagination-related information. + """ + page_info: PageInfo! + + """ + The total number of edges available in this connection to paginate over. + """ + total_edge_count: JsonSafeLong! +} + +""" +Represents a specific `Sponsor` in the context of a `SponsorConnection`, +providing access to both the `Sponsor` and query-specific information such as the pagination `Cursor`. + +See the [Relay GraphQL Cursor Connections +Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. +""" +type SponsorEdge { + """ + All search highlights for this `Sponsor`, indicating where in the indexed document the query matched. + """ + all_highlights: [SearchHighlight!]! + + """ + The `Cursor` of this `Sponsor`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Sponsor`. + """ + cursor: Cursor + + """ + Specific search highlights for this `Sponsor`, providing matching snippets for the requested fields. + """ + highlights: SponsorHighlights + + """ + The `Sponsor` of this edge. + """ + node: Sponsor +} + +""" +Input type used to specify filters on `Sponsor` fields. + +Will match all documents if passed as an empty object (or as `null`). +""" +input SponsorFilterInput { + """ + Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + + Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't + be provided on a single `SponsorFilterInput` input because of collisions + between key names. For example, if you want to AND multiple + OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + + When `null` or an empty list is passed, matches all documents. + """ + all_of: [SponsorFilterInput!] - """ - Used in conjunction with the `after` argument to forward-paginate through the `widgets`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widgets`, if no `after` cursor is provided). + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SponsorFilterInput!] - """ - Used in conjunction with the `before` argument to backward-paginate through the `widgets`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widgets`, if no `before` cursor is provided). + """ + Used to filter on the `id` field. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + When `null` or an empty object is passed, matches all documents. + """ + id: IDFilterInput - """ - Used to specify how the returned `widgets` should be sorted. - """ - order_by: [WidgetSortOrderInput!] - ): WidgetConnection + """ + Used to filter on the `name` field. + When `null` or an empty object is passed, matches all documents. """ - Fetches `WidgetOrAddress`s based on the provided arguments. + name: StringFilterInput + """ - widgets_or_addresses( - """ - Used to forward-paginate through the `widgets_or_addresses`. When provided, the next page after the - provided cursor will be returned. + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor + When `null` or an empty object is passed, matches no documents. + """ + not: SponsorFilterInput +} - """ - Used to backward-paginate through the `widgets_or_addresses`. When provided, the previous page before the - provided cursor will be returned. +""" +Type used to specify the `Sponsor` fields to group by for aggregations. +""" +type SponsorGroupedBy { + """ + The `name` field value for this group. + """ + name: String +} - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor +""" +Type used to request desired `Sponsor` search highlight fields. +""" +type SponsorHighlights { + """ + Search highlights for the `id`, providing snippets of the matching text. + """ + id: [String!]! - """ - Used to filter the returned `widgets_or_addresses` based on the provided criteria. - """ - filter: WidgetOrAddressFilterInput + """ + Search highlights for the `name`, providing snippets of the matching text. + """ + name: [String!]! +} - """ - Used in conjunction with the `after` argument to forward-paginate through the `widgets_or_addresses`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `widgets_or_addresses`, if no `after` cursor is provided). +""" +Enumerates the ways `Sponsor`s can be sorted. +""" +enum SponsorSortOrderInput { + """ + Sorts ascending by the `id` field. + """ + id_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Sorts descending by the `id` field. + """ + id_DESC - """ - Used in conjunction with the `before` argument to backward-paginate through the `widgets_or_addresses`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `widgets_or_addresses`, if no `before` cursor is provided). + """ + Sorts ascending by the `name` field. + """ + name_ASC - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Sorts descending by the `name` field. + """ + name_DESC +} - """ - Used to specify how the returned `widgets_or_addresses` should be sorted. - """ - order_by: [WidgetOrAddressSortOrderInput!] - ): WidgetOrAddressConnection +type Sponsorship { + annual_total: Money! + sponsor_id: ID! } """ -Provides information about why a document matched a search via highlighted snippets. +Type used to perform aggregation computations on `Sponsorship` fields. """ -type SearchHighlight @shareable { +type SponsorshipAggregatedValues { """ - Path to a leaf field containing one or more search highlight snippets. The returned list will contain a path segment for - each object layer of the schema, from the document root. + Computed aggregate values for the `annual_total` field. """ - path: [String!]! + annual_total: MoneyAggregatedValues """ - List of snippets containing search highlights from field values at this `path`. + Computed aggregate values for the `sponsor_id` field. """ - snippets: [String!]! -} - -enum Size { - LARGE - MEDIUM - SMALL + sponsor_id: NonNumericAggregatedValues } """ -Input type used to specify filters on `Size` fields. +Input type used to specify filters on a `Sponsorship` object referenced directly +or transitively from a list field that has been configured to index each leaf field as +its own flattened list of values. Will match all documents if passed as an empty object (or as `null`). """ -input SizeFilterInput { +input SponsorshipFieldsListFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SizeFilterInput` input because of collisions between - key names. For example, if you want to AND multiple + be provided on a single `SponsorshipFieldsListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [SizeFilterInput!] + all_of: [SponsorshipFieldsListFilterInput!] + + """ + Used to filter on the `annual_total` field. + + When `null` or an empty object is passed, matches all documents. + """ + annual_total: MoneyFieldsListFilterInput """ Matches records where any of the provided sub-filters evaluate to true. @@ -11167,17 +12889,14 @@ input SizeFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [SizeFilterInput!] + any_of: [SponsorshipFieldsListFilterInput!] """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. + Used to filter on the number of non-null elements in this list field. - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + When `null` or an empty object is passed, matches all documents. """ - equal_to_any_of: [SizeInput] + count: IntFilterInput """ Matches records where the provided sub-filter evaluates to false. @@ -11185,70 +12904,113 @@ input SizeFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: SizeFilterInput -} + not: SponsorshipFieldsListFilterInput -enum SizeInput { - LARGE - MEDIUM - SMALL + """ + Used to filter on the `sponsor_id` field. + + When `null` or an empty object is passed, matches all documents. + """ + sponsor_id: IDListFilterInput } """ -Input type used to specify filters on elements of a `[Size]` field. +Input type used to specify filters on `Sponsorship` fields. Will match all documents if passed as an empty object (or as `null`). """ -input SizeListElementFilterInput { +input SponsorshipFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SizeListElementFilterInput` input because of - collisions between key names. For example, if you want to AND multiple + be provided on a single `SponsorshipFilterInput` input because of collisions + between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [SizeListElementFilterInput!] + all_of: [SponsorshipFilterInput!] + + """ + Used to filter on the `annual_total` field. + + When `null` or an empty object is passed, matches all documents. + """ + annual_total: MoneyFilterInput + + """ + Matches records where any of the provided sub-filters evaluate to true. + This works just like an OR operator in SQL. + + When `null` is passed, matches all documents. + When an empty list is passed, this part of the filter matches no documents. + """ + any_of: [SponsorshipFilterInput!] + + """ + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. + + When `null` or an empty object is passed, matches no documents. + """ + not: SponsorshipFilterInput + + """ + Used to filter on the `sponsor_id` field. + + When `null` or an empty object is passed, matches all documents. + """ + sponsor_id: IDFilterInput +} + +""" +Type used to specify the `Sponsorship` fields to group by for aggregations. +""" +type SponsorshipGroupedBy { + """ + The `annual_total` field value for this group. + """ + annual_total: MoneyGroupedBy + + """ + The `sponsor_id` field value for this group. + """ + sponsor_id: ID +} +""" +Type used to request desired `Sponsorship` search highlight fields. +""" +type SponsorshipHighlights { """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Search highlights for the `annual_total`, providing snippets of the matching text. """ - any_of: [SizeListElementFilterInput!] + annual_total: MoneyHighlights """ - Matches records where the field value is equal to any of the provided values. - This works just like an IN operator in SQL. - - When `null` is passed, matches all documents. When an empty list is passed, - this part of the filter matches no documents. When `null` is passed in the - list, this part of the filter matches records where the field value is `null`. + Search highlights for the `sponsor_id`, providing snippets of the matching text. """ - equal_to_any_of: [SizeInput!] + sponsor_id: [String!]! } """ -Input type used to specify filters on `[Size]` fields. +Input type used to specify filters on `[Sponsorship]` fields. Will match all documents if passed as an empty object (or as `null`). """ -input SizeListFilterInput { +input SponsorshipListFilterInput { """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SizeListFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `SponsorshipListFilterInput` input because of + collisions between key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [SizeListFilterInput!] + all_of: [SponsorshipListFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -11257,14 +13019,14 @@ input SizeListFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [SizeListFilterInput!] + any_of: [SponsorshipListFilterInput!] """ Matches records where any of the list elements match the provided sub-filter. When `null` or an empty object is passed, matches all documents. """ - any_satisfy: SizeListElementFilterInput + any_satisfy: SponsorshipFilterInput """ Used to filter on the number of non-null elements in this list field. @@ -11279,264 +13041,107 @@ input SizeListFilterInput { When `null` or an empty object is passed, matches no documents. """ - not: SizeListFilterInput + not: SponsorshipListFilterInput } -type Sponsor @key(fields: "id") { +interface Store implements DistributionChannel & Retail { + active: Boolean + customer_facing: Boolean + established_on: Date + id: ID! +} + +""" +Type used to perform aggregation computations on `Store` fields. +""" +type StoreAggregatedValues { """ - Aggregations over the `affiliated_teams_from_nested` data. + Computed aggregate values for the `active` field. """ - affiliated_team_from_nested_aggregations( - """ - Used to forward-paginate through the `affiliated_team_from_nested_aggregations`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the - `affiliated_team_from_nested_aggregations`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the `Team` documents that get aggregated over based on the provided criteria. - """ - filter: TeamFilterInput - - """ - Used in conjunction with the `after` argument to forward-paginate through - the `affiliated_team_from_nested_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `affiliated_team_from_nested_aggregations`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through - the `affiliated_team_from_nested_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `affiliated_team_from_nested_aggregations`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): TeamAggregationConnection + active: NonNumericAggregatedValues """ - Aggregations over the `affiliated_teams_from_object` data. + Computed aggregate values for the `address` field. """ - affiliated_team_from_object_aggregations( - """ - Used to forward-paginate through the `affiliated_team_from_object_aggregations`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the - `affiliated_team_from_object_aggregations`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the `Team` documents that get aggregated over based on the provided criteria. - """ - filter: TeamFilterInput - - """ - Used in conjunction with the `after` argument to forward-paginate through - the `affiliated_team_from_object_aggregations`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `affiliated_team_from_object_aggregations`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through - the `affiliated_team_from_object_aggregations`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `affiliated_team_from_object_aggregations`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - ): TeamAggregationConnection - affiliated_teams_from_nested( - """ - Used to forward-paginate through the `affiliated_teams_from_nested`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the `affiliated_teams_from_nested`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor - - """ - Used to filter the returned `affiliated_teams_from_nested` based on the provided criteria. - """ - filter: TeamFilterInput - - """ - Used in conjunction with the `after` argument to forward-paginate through the `affiliated_teams_from_nested`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `affiliated_teams_from_nested`, if no `after` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int - - """ - Used in conjunction with the `before` argument to backward-paginate through the `affiliated_teams_from_nested`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `affiliated_teams_from_nested`, if no `before` cursor is provided). - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int - - """ - Used to specify how the returned `affiliated_teams_from_nested` should be sorted. - """ - order_by: [TeamSortOrderInput!] - ): TeamConnection - affiliated_teams_from_object( - """ - Used to forward-paginate through the `affiliated_teams_from_object`. When provided, the next page after the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - after: Cursor - - """ - Used to backward-paginate through the `affiliated_teams_from_object`. When provided, the previous page before the - provided cursor will be returned. - - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - before: Cursor + address: NonNumericAggregatedValues - """ - Used to filter the returned `affiliated_teams_from_object` based on the provided criteria. - """ - filter: TeamFilterInput + """ + Computed aggregate values for the `current_location` field. + """ + current_location: NonNumericAggregatedValues - """ - Used in conjunction with the `after` argument to forward-paginate through the `affiliated_teams_from_object`. - When provided, limits the number of returned results to the first `n` after the provided - `after` cursor (or from the start of the `affiliated_teams_from_object`, if no `after` cursor is provided). + """ + Computed aggregate values for the `customer_facing` field. + """ + customer_facing: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - first: Int + """ + Computed aggregate values for the `established_on` field. + """ + established_on: DateAggregatedValues - """ - Used in conjunction with the `before` argument to backward-paginate through the `affiliated_teams_from_object`. - When provided, limits the number of returned results to the last `n` before the provided - `before` cursor (or from the end of the `affiliated_teams_from_object`, if no `before` cursor is provided). + """ + Computed aggregate values for the `id` field. + """ + id: NonNumericAggregatedValues - See the [Relay GraphQL Cursor Connections - Specification](https://relay.dev/graphql/connections.htm#sec-Arguments) for more info. - """ - last: Int + """ + Computed aggregate values for the `platform` field. + """ + platform: NonNumericAggregatedValues - """ - Used to specify how the returned `affiliated_teams_from_object` should be sorted. - """ - order_by: [TeamSortOrderInput!] - ): TeamConnection - id: ID! - name: String -} + """ + Computed aggregate values for the `square_footage` field. + """ + square_footage: IntAggregatedValues -""" -Type used to perform aggregation computations on `Sponsor` fields. -""" -type SponsorAggregatedValues { """ - Computed aggregate values for the `id` field. + Computed aggregate values for the `url` field. """ - id: NonNumericAggregatedValues + url: NonNumericAggregatedValues """ - Computed aggregate values for the `name` field. + Computed aggregate values for the `vehicle_type` field. """ - name: NonNumericAggregatedValues + vehicle_type: NonNumericAggregatedValues } """ -Return type representing a bucket of `Sponsor` documents for an aggregations query. +Return type representing a bucket of `Store` documents for an aggregations query. """ -type SponsorAggregation { +type StoreAggregation { """ - Provides computed aggregated values over all `Sponsor` documents in an aggregation bucket. + Provides computed aggregated values over all `Store` documents in an aggregation bucket. """ - aggregated_values: SponsorAggregatedValues + aggregated_values: StoreAggregatedValues """ - The count of `Sponsor` documents in an aggregation bucket. + The count of `Store` documents in an aggregation bucket. """ count: JsonSafeLong! """ - Used to specify the `Sponsor` fields to group by. The returned values identify each aggregation bucket. + Used to specify the `Store` fields to group by. The returned values identify each aggregation bucket. """ - grouped_by: SponsorGroupedBy + grouped_by: StoreGroupedBy } """ -Represents a paginated collection of `SponsorAggregation` results. +Represents a paginated collection of `StoreAggregation` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type SponsorAggregationConnection { +type StoreAggregationConnection { """ - Wraps a specific `SponsorAggregation` to pair it with its pagination cursor. + Wraps a specific `StoreAggregation` to pair it with its pagination cursor. """ - edges: [SponsorAggregationEdge!]! + edges: [StoreAggregationEdge!]! """ - The list of `SponsorAggregation` results. + The list of `StoreAggregation` results. """ - nodes: [SponsorAggregation!]! + nodes: [StoreAggregation!]! """ Provides pagination-related information. @@ -11545,41 +13150,41 @@ type SponsorAggregationConnection { } """ -Represents a specific `SponsorAggregation` in the context of a `SponsorAggregationConnection`, -providing access to both the `SponsorAggregation` and query-specific information such as the pagination `Cursor`. +Represents a specific `StoreAggregation` in the context of a `StoreAggregationConnection`, +providing access to both the `StoreAggregation` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type SponsorAggregationEdge { +type StoreAggregationEdge { """ - The `Cursor` of this `SponsorAggregation`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `SponsorAggregation`. + The `Cursor` of this `StoreAggregation`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `StoreAggregation`. """ cursor: Cursor """ - The `SponsorAggregation` of this edge. + The `StoreAggregation` of this edge. """ - node: SponsorAggregation + node: StoreAggregation } """ -Represents a paginated collection of `Sponsor` results. +Represents a paginated collection of `Store` results. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Connection-Types) for more info. """ -type SponsorConnection { +type StoreConnection { """ - Wraps a specific `Sponsor` to pair it with its pagination cursor. + Wraps a specific `Store` to pair it with its pagination cursor. """ - edges: [SponsorEdge!]! + edges: [StoreEdge!]! """ - The list of `Sponsor` results. + The list of `Store` results. """ - nodes: [Sponsor!]! + nodes: [Store!]! """ Provides pagination-related information. @@ -11593,52 +13198,66 @@ type SponsorConnection { } """ -Represents a specific `Sponsor` in the context of a `SponsorConnection`, -providing access to both the `Sponsor` and query-specific information such as the pagination `Cursor`. +Represents a specific `Store` in the context of a `StoreConnection`, +providing access to both the `Store` and query-specific information such as the pagination `Cursor`. See the [Relay GraphQL Cursor Connections Specification](https://relay.dev/graphql/connections.htm#sec-Edge-Types) for more info. """ -type SponsorEdge { +type StoreEdge { """ - All search highlights for this `Sponsor`, indicating where in the indexed document the query matched. + All search highlights for this `Store`, indicating where in the indexed document the query matched. """ all_highlights: [SearchHighlight!]! """ - The `Cursor` of this `Sponsor`. This can be passed in the next query as - a `before` or `after` argument to continue paginating from this `Sponsor`. + The `Cursor` of this `Store`. This can be passed in the next query as + a `before` or `after` argument to continue paginating from this `Store`. """ cursor: Cursor """ - Specific search highlights for this `Sponsor`, providing matching snippets for the requested fields. + Specific search highlights for this `Store`, providing matching snippets for the requested fields. """ - highlights: SponsorHighlights + highlights: StoreHighlights """ - The `Sponsor` of this edge. + The `Store` of this edge. """ - node: Sponsor + node: Store } """ -Input type used to specify filters on `Sponsor` fields. +Input type used to specify filters on `Store` fields. Will match all documents if passed as an empty object (or as `null`). """ -input SponsorFilterInput { +input StoreFilterInput { + """ + Used to filter on the `active` field. + + When `null` or an empty object is passed, matches all documents. + """ + active: BooleanFilterInput + + """ + Used to filter on the `address` field. + + When `null` or an empty object is passed, matches all documents. + """ + address: StringFilterInput + """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SponsorFilterInput` input because of collisions - between key names. For example, if you want to AND multiple + be provided on a single `StoreFilterInput` input because of collisions between + key names. For example, if you want to AND multiple OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. When `null` or an empty list is passed, matches all documents. """ - all_of: [SponsorFilterInput!] + all_of: [StoreFilterInput!] """ Matches records where any of the provided sub-filters evaluate to true. @@ -11647,288 +13266,241 @@ input SponsorFilterInput { When `null` is passed, matches all documents. When an empty list is passed, this part of the filter matches no documents. """ - any_of: [SponsorFilterInput!] + any_of: [StoreFilterInput!] """ - Used to filter on the `id` field. + Used to filter on the `current_location` field. When `null` or an empty object is passed, matches all documents. """ - id: IDFilterInput + current_location: StringFilterInput """ - Used to filter on the `name` field. + Used to filter on the `customer_facing` field. When `null` or an empty object is passed, matches all documents. """ - name: StringFilterInput + customer_facing: BooleanFilterInput """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Used to filter on the `established_on` field. - When `null` or an empty object is passed, matches no documents. + When `null` or an empty object is passed, matches all documents. """ - not: SponsorFilterInput -} + established_on: DateFilterInput -""" -Type used to specify the `Sponsor` fields to group by for aggregations. -""" -type SponsorGroupedBy { - """ - The `name` field value for this group. """ - name: String -} + Used to filter on the `id` field. -""" -Type used to request desired `Sponsor` search highlight fields. -""" -type SponsorHighlights { - """ - Search highlights for the `id`, providing snippets of the matching text. + When `null` or an empty object is passed, matches all documents. """ - id: [String!]! + id: IDFilterInput """ - Search highlights for the `name`, providing snippets of the matching text. - """ - name: [String!]! -} + Matches records where the provided sub-filter evaluates to false. + This works just like a NOT operator in SQL. -""" -Enumerates the ways `Sponsor`s can be sorted. -""" -enum SponsorSortOrderInput { + When `null` or an empty object is passed, matches no documents. """ - Sorts ascending by the `id` field. + not: StoreFilterInput + """ - id_ASC + Used to filter on the `platform` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `id` field. + platform: StringFilterInput + """ - id_DESC + Used to filter on the `square_footage` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts ascending by the `name` field. + square_footage: IntFilterInput + """ - name_ASC + Used to filter on the `url` field. + When `null` or an empty object is passed, matches all documents. """ - Sorts descending by the `name` field. + url: StringFilterInput + """ - name_DESC -} + Used to filter on the `vehicle_type` field. -type Sponsorship { - annual_total: Money! - sponsor_id: ID! + When `null` or an empty object is passed, matches all documents. + """ + vehicle_type: StringFilterInput } """ -Type used to perform aggregation computations on `Sponsorship` fields. +Type used to specify the `Store` fields to group by for aggregations. """ -type SponsorshipAggregatedValues { +type StoreGroupedBy { """ - Computed aggregate values for the `annual_total` field. + The `active` field value for this group. """ - annual_total: MoneyAggregatedValues + active: Boolean """ - Computed aggregate values for the `sponsor_id` field. + The `address` field value for this group. """ - sponsor_id: NonNumericAggregatedValues -} - -""" -Input type used to specify filters on a `Sponsorship` object referenced directly -or transitively from a list field that has been configured to index each leaf field as -its own flattened list of values. + address: String -Will match all documents if passed as an empty object (or as `null`). -""" -input SponsorshipFieldsListFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SponsorshipFieldsListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + The `current_location` field value for this group. """ - all_of: [SponsorshipFieldsListFilterInput!] + current_location: String """ - Used to filter on the `annual_total` field. - - When `null` or an empty object is passed, matches all documents. + The `customer_facing` field value for this group. """ - annual_total: MoneyFieldsListFilterInput + customer_facing: Boolean """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Offers the different grouping options for the `established_on` value within this group. """ - any_of: [SponsorshipFieldsListFilterInput!] + established_on: DateGroupedBy """ - Used to filter on the number of non-null elements in this list field. - - When `null` or an empty object is passed, matches all documents. + The `platform` field value for this group. """ - count: IntFilterInput + platform: String """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + The `square_footage` field value for this group. """ - not: SponsorshipFieldsListFilterInput + square_footage: Int """ - Used to filter on the `sponsor_id` field. + The `url` field value for this group. + """ + url: String - When `null` or an empty object is passed, matches all documents. """ - sponsor_id: IDListFilterInput + The `vehicle_type` field value for this group. + """ + vehicle_type: String } """ -Input type used to specify filters on `Sponsorship` fields. - -Will match all documents if passed as an empty object (or as `null`). +Type used to request desired `Store` search highlight fields. """ -input SponsorshipFilterInput { +type StoreHighlights { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. - - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SponsorshipFilterInput` input because of collisions - between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. - - When `null` or an empty list is passed, matches all documents. + Search highlights for the `address`, providing snippets of the matching text. """ - all_of: [SponsorshipFilterInput!] + address: [String!]! """ - Used to filter on the `annual_total` field. - - When `null` or an empty object is passed, matches all documents. + Search highlights for the `current_location`, providing snippets of the matching text. """ - annual_total: MoneyFilterInput + current_location: [String!]! """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. - - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. + Search highlights for the `id`, providing snippets of the matching text. """ - any_of: [SponsorshipFilterInput!] + id: [String!]! """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. - - When `null` or an empty object is passed, matches no documents. + Search highlights for the `platform`, providing snippets of the matching text. """ - not: SponsorshipFilterInput + platform: [String!]! """ - Used to filter on the `sponsor_id` field. + Search highlights for the `url`, providing snippets of the matching text. + """ + url: [String!]! - When `null` or an empty object is passed, matches all documents. """ - sponsor_id: IDFilterInput + Search highlights for the `vehicle_type`, providing snippets of the matching text. + """ + vehicle_type: [String!]! } """ -Type used to specify the `Sponsorship` fields to group by for aggregations. +Enumerates the ways `Store`s can be sorted. """ -type SponsorshipGroupedBy { +enum StoreSortOrderInput { """ - The `annual_total` field value for this group. + Sorts ascending by the `address` field. """ - annual_total: MoneyGroupedBy + address_ASC """ - The `sponsor_id` field value for this group. + Sorts descending by the `address` field. """ - sponsor_id: ID -} + address_DESC -""" -Type used to request desired `Sponsorship` search highlight fields. -""" -type SponsorshipHighlights { """ - Search highlights for the `annual_total`, providing snippets of the matching text. + Sorts ascending by the `current_location` field. """ - annual_total: MoneyHighlights + current_location_ASC """ - Search highlights for the `sponsor_id`, providing snippets of the matching text. + Sorts descending by the `current_location` field. """ - sponsor_id: [String!]! -} + current_location_DESC -""" -Input type used to specify filters on `[Sponsorship]` fields. + """ + Sorts ascending by the `established_on` field. + """ + established_on_ASC -Will match all documents if passed as an empty object (or as `null`). -""" -input SponsorshipListFilterInput { """ - Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. + Sorts descending by the `established_on` field. + """ + established_on_DESC - Note: multiple filters are automatically ANDed together. This is only needed when you have multiple filters that can't - be provided on a single `SponsorshipListFilterInput` input because of - collisions between key names. For example, if you want to AND multiple - OR'd sub-filters (the equivalent of (A OR B) AND (C OR D)), you could do all_of: [{any_of: [...]}, {any_of: [...]}]. + """ + Sorts ascending by the `id` field. + """ + id_ASC - When `null` or an empty list is passed, matches all documents. """ - all_of: [SponsorshipListFilterInput!] + Sorts descending by the `id` field. + """ + id_DESC """ - Matches records where any of the provided sub-filters evaluate to true. - This works just like an OR operator in SQL. + Sorts ascending by the `platform` field. + """ + platform_ASC - When `null` is passed, matches all documents. - When an empty list is passed, this part of the filter matches no documents. """ - any_of: [SponsorshipListFilterInput!] + Sorts descending by the `platform` field. + """ + platform_DESC """ - Matches records where any of the list elements match the provided sub-filter. + Sorts ascending by the `square_footage` field. + """ + square_footage_ASC - When `null` or an empty object is passed, matches all documents. """ - any_satisfy: SponsorshipFilterInput + Sorts descending by the `square_footage` field. + """ + square_footage_DESC """ - Used to filter on the number of non-null elements in this list field. + Sorts ascending by the `url` field. + """ + url_ASC - When `null` or an empty object is passed, matches all documents. """ - count: IntFilterInput + Sorts descending by the `url` field. + """ + url_DESC """ - Matches records where the provided sub-filter evaluates to false. - This works just like a NOT operator in SQL. + Sorts ascending by the `vehicle_type` field. + """ + vehicle_type_ASC - When `null` or an empty object is passed, matches no documents. """ - not: SponsorshipListFilterInput + Sorts descending by the `vehicle_type` field. + """ + vehicle_type_DESC } """ @@ -14483,6 +16055,13 @@ input TextFilterInput { not: TextFilterInput } +type ThirdPartyWholesale implements DistributionChannel @key(fields: "id") { + active: Boolean + contract_terms: String + id: ID! + partner_name: String +} + """ An [IANA time zone identifier](https://www.iana.org/time-zones), such as `America/Los_Angeles` or `UTC`. @@ -18624,7 +20203,7 @@ In an ElasticGraph schema, this is a union of all indexed types. Not intended for use by clients other than Apollo. """ -union _Entity = Company | Component | Country | ElectricalPart | Manufacturer | MechanicalPart | Person | Sponsor | Team | Widget | WidgetCurrency | WidgetWorkspace +union _Entity = Company | Component | Country | ElectricalPart | Manufacturer | MechanicalPart | MobileStore | OnlineStore | Person | PhysicalStore | Sponsor | Team | ThirdPartyWholesale | Widget | WidgetCurrency | WidgetWorkspace """ An object type required by the [Apollo Federation subgraph diff --git a/config/schema/widgets.rb b/config/schema/widgets.rb index 233793b10..e5fee5896 100644 --- a/config/schema/widgets.rb +++ b/config/schema/widgets.rb @@ -35,20 +35,16 @@ schema.object_type "Person" do |t| t.implements "NamedInventor" - t.root_query_fields plural: "people" t.field "id", "ID!" t.field "name", "String" t.field "nationality", "String" - t.index "people" end schema.object_type "Company" do |t| t.implements "NamedInventor" - t.root_query_fields plural: "companies" t.field "id", "ID!" t.field "name", "String" t.field "stock_ticker", "String" - t.index "companies" end schema.union_type "Inventor" do |t| @@ -59,6 +55,7 @@ schema.interface_type "NamedInventor" do |t| t.field "id", "ID!" t.field "name", "String" + t.index "named_inventors" end # Indexed interfae type. @@ -343,6 +340,70 @@ t.subtypes "MechanicalPart", "ElectricalPart" end + schema.interface_type "DistributionChannel" do |t| + t.field "id", "ID!" + t.field "active", "Boolean" + t.index "distribution_channels" + end + + # Retail branch - multi-level interface inheritance + schema.interface_type "Retail" do |t| + t.implements "DistributionChannel" + t.root_query_fields plural: "retailers" + t.field "id", "ID!" + t.field "active", "Boolean" + t.field "established_on", "Date" + end + + schema.interface_type "Store" do |t| + t.implements "Retail" + t.field "id", "ID!" + t.field "active", "Boolean" + t.field "established_on", "Date" + t.field "customer_facing", "Boolean" + end + + # ThirdPartyWholesale - concrete type in parallel to Retail branch + schema.object_type "ThirdPartyWholesale" do |t| + t.implements "DistributionChannel" + t.field "id", "ID!" + t.field "active", "Boolean" + t.field "partner_name", "String" + t.field "contract_terms", "String" + end + + schema.object_type "OnlineStore" do |t| + t.implements "Store" + t.field "id", "ID!" + t.field "url", "String!" + t.field "platform", "String" # e.g., "Shopify", "WooCommerce" + t.field "established_on", "Date" + t.field "active", "Boolean" + t.field "customer_facing", "Boolean" + end + + schema.object_type "PhysicalStore" do |t| + t.implements "Store" + t.field "id", "ID!" + t.field "address", "String!" + t.field "square_footage", "Int" + t.field "established_on", "Date" + t.field "active", "Boolean" + t.field "customer_facing", "Boolean" + + t.index "physical_stores" + end + + schema.object_type "MobileStore" do |t| + t.implements "Store" + t.field "id", "ID!" + t.field "vehicle_type", "String!" # e.g., "food truck", "pop-up cart" + t.field "current_location", "String" + t.field "established_on", "Date" + t.field "active", "Boolean" + t.field "customer_facing", "Boolean" + end + # Note: `Manufacturer` is used in our tests as an example of an indexed type that has no list fields, so we should # not add any list fields to this type in the future. schema.object_type "Manufacturer" do |t| diff --git a/config/settings/development.yaml b/config/settings/development.yaml index 778058f95..2f2129e69 100644 --- a/config/settings/development.yaml +++ b/config/settings/development.yaml @@ -18,8 +18,7 @@ datastore: setting_overrides_by_timestamp: {} components: *main_index_settings electrical_parts: *main_index_settings - companies: *main_index_settings - people: *main_index_settings + named_inventors: *main_index_settings manufacturers: *main_index_settings mechanical_parts: *main_index_settings teams: *main_index_settings @@ -27,6 +26,8 @@ datastore: widgets: *main_index_settings widget_workspaces: *main_index_settings sponsors: *main_index_settings + distribution_channels: *main_index_settings + physical_stores: *main_index_settings max_client_retries: 3 graphql: default_page_size: 50 diff --git a/config/settings/development_with_apollo.yaml b/config/settings/development_with_apollo.yaml index 52c1e886e..cef02dfb4 100644 --- a/config/settings/development_with_apollo.yaml +++ b/config/settings/development_with_apollo.yaml @@ -18,8 +18,7 @@ datastore: setting_overrides_by_timestamp: {} components: *main_index_settings electrical_parts: *main_index_settings - companies: *main_index_settings - people: *main_index_settings + named_inventors: *main_index_settings manufacturers: *main_index_settings mechanical_parts: *main_index_settings teams: *main_index_settings @@ -27,6 +26,9 @@ datastore: widgets: *main_index_settings widget_workspaces: *main_index_settings sponsors: *main_index_settings + stores: *main_index_settings + physical_stores: *main_index_settings + distribution_channels: *main_index_settings max_client_retries: 3 graphql: default_page_size: 50 diff --git a/config/settings/test.yaml.template b/config/settings/test.yaml.template index d7ff00042..df5ec9878 100644 --- a/config/settings/test.yaml.template +++ b/config/settings/test.yaml.template @@ -36,8 +36,7 @@ datastore: setting_overrides_by_timestamp: {} components: *main_index_settings electrical_parts: *main_index_settings - companies: *main_index_settings - people: *main_index_settings + named_inventors: *main_index_settings manufacturers: *main_index_settings mechanical_parts: *main_index_settings teams: *main_index_settings @@ -75,6 +74,9 @@ datastore: "2021-01-01T00:00:00Z": {} widget_workspaces: *main_index_settings sponsors: *main_index_settings + stores: *main_index_settings + physical_stores: *main_index_settings + distribution_channels: *main_index_settings max_client_retries: 3 graphql: # default_page_size of 50 is duplicated in `elasticgraph/spec/support/aggregations_helpers.rb`. diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/requested_fields.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/requested_fields.rb index 7378616c5..7e50e4ca5 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/requested_fields.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/requested_fields.rb @@ -86,7 +86,10 @@ def requested_fields_under(node, index_field_paths, path_prefix: "") requested_fields_for(child, index_field_paths, path_prefix: path_prefix) end - fields << "#{path_prefix}__typename" if field_for(node.field)&.type&.abstract? + # For abstract types (unions/interfaces), we need __typename to resolve the concrete type. + # We must fully unwrap the type to check the innermost type, since the field type could be + # wrapped in non-null or list wrappers (e.g., `[NamedInventor!]!`). + fields << "#{path_prefix}__typename" if field_for(node.field)&.type&.unwrap_fully&.abstract? fields end diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/graphql_adapter_builder.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/graphql_adapter_builder.rb index 59a83384f..fbc118e32 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/graphql_adapter_builder.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/graphql_adapter_builder.rb @@ -110,8 +110,10 @@ def object_type_hash # In order to support unions and interfaces, we must implement `resolve_type`. def resolve_type(supertype, object, context) schema = context.fetch(:elastic_graph_schema) - # If `__typename` is available, use that to resolve. It should be available on any embedded abstract types... - # (See `Inventor` in `config/schema.graphql` for an example of this kind of type union.) + # If `__typename` is available, use that to resolve. It will be present on embedded abstract + # types, and also on root documents indexed in a shared interface/union index (e.g. `NamedInventor`). + # (See `Inventor` in `config/schema/widgets.rb` for an example of an embedded abstract type, + # and `NamedInventor` for an example of a shared interface index.) if (typename = object["__typename"]) schema .graphql_schema diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/query_adapter.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/query_adapter.rb index da446dd25..d69ac50ca 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/query_adapter.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/query_adapter.rb @@ -68,11 +68,53 @@ def build_new_query_from(field, args, lookahead, context, monotonic_clock_deadli monotonic_clock_deadline: monotonic_clock_deadline ) + # When querying an abstract type (interface/union) that shares an index with sibling types, + # we must filter by __typename to only return documents of the queried type's subtypes. + # Example: Store interface and ThirdPartyWholesale both implement DistributionChannel + # and share the distribution_channels index. When querying `stores`, we must filter to + # only include PhysicalStore, OnlineStore, and MobileStore documents. + initial_query = add_typename_filter_if_needed(initial_query, unwrapped_type, context) + @datastore_query_adapters.reduce(initial_query) do |query, adapter| adapter.call(query: query, field: field, args: args, lookahead: lookahead, context: context) end end + def add_typename_filter_if_needed(query, type, context) + return query unless type.abstract? + + subtypes = type.subtypes + + # Check if any of the indexes being searched contain documents from non-subtypes + # (i.e., sibling types that share the same index but shouldn't be returned). + # Only apply __typename filtering if needed to disambiguate. + return query unless query.search_index_definitions.any? do |index_def| + index_has_sibling_types?(context.fetch(:elastic_graph_schema), index_def, type, subtypes) + end + + # Allow documents without __typename to pass through (they'll be resolved by index name). + query.merge_with(internal_filters: [{ + query.schema_element_names.any_of => [ + {"__typename" => {query.schema_element_names.equal_to_any_of => subtypes.map(&:name)}}, + {"__typename" => {query.schema_element_names.equal_to_any_of => [nil]}} + ] + }]) + end + + # Checks if the given index contains documents from types that are NOT subtypes of the queried type. + # This indicates we need __typename filtering to exclude those sibling types. + def index_has_sibling_types?(schema, index_def, queried_type, queried_subtypes) + # Get all types that use this index + types_in_index = schema.indexed_document_types.select do |type| + type.index_definitions.any? { |idx| idx.name == index_def.name } + end + + # Check if any of those types are NOT subtypes of the queried type + types_in_index.any? do |type| + !queried_subtypes.include?(type) && type != queried_type + end + end + def cache_key_for(field, args, lookahead) # Unfortunately, `Lookahead` does not define `==` according to its internal state, # so `l1 == l2` with the same internal state returns false. So we have to pull diff --git a/elasticgraph-graphql/spec/acceptance/hidden_types_spec.rb b/elasticgraph-graphql/spec/acceptance/hidden_types_spec.rb index a42a8ea61..04cf4b928 100644 --- a/elasticgraph-graphql/spec/acceptance/hidden_types_spec.rb +++ b/elasticgraph-graphql/spec/acceptance/hidden_types_spec.rb @@ -78,10 +78,12 @@ module ElasticGraph all_types_related_to("WidgetCurrency") + all_types_related_to("Team") + all_types_related_to("Sponsor") + - all_types_related_to("Person") + - all_types_related_to("Company") + all_types_related_to("Inventor") + all_types_related_to("NamedInventor") + + all_types_related_to("Store") + + all_types_related_to("DistributionChannel") + + all_types_related_to("Retail") + + all_types_related_to("PhysicalStore") + relay_types_related_to("String", include_list_filter: true) - ["StringSortOrderInput"] + type_and_filters_for("Boolean", include_list: true) + type_and_filters_for("Color", include_list: true, as_input_enum: true) + @@ -96,6 +98,7 @@ module ElasticGraph type_and_filters_for("TeamNestedFields") + ["TeamNestedFieldsHighlights"] + type_and_filters_for("Affiliations") + type_and_filters_for("ID", include_list: true) + + type_filter_and_non_indexed_aggregation_types_for("Person") + type_filter_and_non_indexed_aggregation_types_for("TeamDetails") + type_filter_and_non_indexed_aggregation_types_for("AddressTimestamps", include_highlights: false) - ["AddressTimestamps"] + type_filter_and_non_indexed_aggregation_types_for("Affiliations", include_fields_list_filter: true) + @@ -116,7 +119,7 @@ module ElasticGraph %w[ FloatAggregatedValues IntAggregatedValues JsonSafeLongAggregatedValues LongStringAggregatedValues NonNumericAggregatedValues DateAggregatedValues DateTimeAggregatedValues LocalTimeAggregatedValues - Cursor PageInfo Query TextFilterInput GeoLocation + Company Cursor PageInfo Query TextFilterInput GeoLocation MobileStore OnlineStore ThirdPartyWholesale DateTimeGroupingOffsetInput DateTimeUnitInput DateTimeTimeOfDayFilterInput DateGroupedBy DateGroupingOffsetInput DateGroupingTruncationUnitInput DateUnitInput DateTimeGroupedBy DateTimeGroupingTruncationUnitInput TimeZone diff --git a/elasticgraph-graphql/spec/acceptance/search_spec.rb b/elasticgraph-graphql/spec/acceptance/search_spec.rb index 0ad2aceb0..4d8e57304 100644 --- a/elasticgraph-graphql/spec/acceptance/search_spec.rb +++ b/elasticgraph-graphql/spec/acceptance/search_spec.rb @@ -698,6 +698,103 @@ module ElasticGraph test_widget_search_highlighting(widget1, widget2, widget3) end + it "correctly scopes results to the queried interface level across a multi-level type hierarchy", :expect_search_routing do + established_on_asc = :"#{case_correctly("established_on")}_ASC" + id_desc = :"#{case_correctly("id")}_DESC" + + # The DistributionChannel hierarchy has two branches: + # DistributionChannel (index: distribution_channels) + # ├── ThirdPartyWholesale (concrete, distribution_channels index) + # └── Retail (interface, inherits distribution_channels) + # └── Store (interface, inherits distribution_channels) + # ├── OnlineStore (concrete, distribution_channels index) + # ├── MobileStore (concrete, distribution_channels index) + # └── PhysicalStore (concrete, physical_stores index) + # + # The key invariant: querying at a sub-interface level (e.g. retailers, stores) must + # filter OUT sibling types in the shared index (e.g. ThirdPartyWholesale when querying stores). + index_records( + physical_store1 = build(:physical_store, address: "123 Main St, Anytown USA", square_footage: 5000, established_on: "2019-03-10", active: true), + physical_store2 = build(:physical_store, address: "456 Oak Ave, Other City", square_footage: 10000, established_on: "2022-08-05", active: true), + mobile_store1 = build(:mobile_store, vehicle_type: "food truck", current_location: "789 Park Ave, Big City", established_on: "2020-06-15", active: true), + mobile_store2 = build(:mobile_store, vehicle_type: "pop-up cart", current_location: "321 Beach Blvd, Coast Town", established_on: "2021-11-20", active: true), + online_store1 = build(:online_store, url: "https://shop1.example.com", platform: "Shopify", established_on: "2020-01-15", active: true), + online_store2 = build(:online_store, url: "https://shop2.example.com", platform: "WooCommerce", established_on: "2021-06-20", active: true), + build(:third_party_wholesale, partner_name: "Acme Corp", contract_terms: "Net 30", active: true), + wholesale2 = build(:third_party_wholesale, partner_name: "Global Dist", contract_terms: "Net 60", active: false) + ) + + store_fragments = [ + "...on PhysicalStore { id __typename established_on }", + "...on MobileStore { id __typename established_on }", + "...on OnlineStore { id __typename established_on }" + ] + all_channel_fragments = store_fragments + ["...on ThirdPartyWholesale { id __typename active }"] + + store_typenames = %w[PhysicalStore PhysicalStore MobileStore MobileStore OnlineStore OnlineStore] + + # Querying at the top-level DistributionChannel interface returns all 4 concrete types, + # including ThirdPartyWholesale. + channels = list_distribution_channels_with(*all_channel_fragments) + expect(channels.map { |c| c["__typename"] }).to contain_exactly( + *store_typenames, "ThirdPartyWholesale", "ThirdPartyWholesale" + ) + + # Querying at the Retail interface excludes ThirdPartyWholesale, even though it lives in + # the same distribution_channels index. The __typename filter handles this. + retailers = list_retailers_with(*store_fragments) + expect(retailers.map { |r| r["__typename"] }).to contain_exactly(*store_typenames) + + # Querying at the Store interface likewise excludes ThirdPartyWholesale. + stores = list_stores_with(*store_fragments) + expect(stores.map { |s| s["__typename"] }).to contain_exactly(*store_typenames) + + # Filters apply within the correct scope at each level. + # At distribution_channels: active=false matches only wholesale2. + inactive = list_distribution_channels_with(*all_channel_fragments, filter: {active: {equal_to_any_of: [false]}}) + expect(inactive.map { |c| c["__typename"] }).to contain_exactly("ThirdPartyWholesale") + expect(inactive.map { |c| c["id"] }).to contain_exactly(wholesale2.fetch(:id)) + + # At retailers: established_on filter applies, and ThirdPartyWholesale is still excluded. + retailers_after_2020 = list_retailers_with(*store_fragments, filter: {established_on: {gte: "2020-01-01"}}) + expect(retailers_after_2020.map { |r| r["id"] }).to contain_exactly( + mobile_store1.fetch(:id), mobile_store2.fetch(:id), + online_store1.fetch(:id), online_store2.fetch(:id), + physical_store2.fetch(:id) + ) + + # Sort by established_on at the stores level spans both indices correctly. + stores_sorted = list_stores_with(*store_fragments, order_by: [established_on_asc]) + expect(stores_sorted.map { |s| s["id"] }).to eq([ + physical_store1.fetch(:id), + online_store1.fetch(:id), + mobile_store1.fetch(:id), + online_store2.fetch(:id), + mobile_store2.fetch(:id), + physical_store2.fetch(:id) + ]) + + # Pagination at the distribution_channels level covers all types. + channels_page, page_info = list_distribution_channels_and_page_info_with( + *all_channel_fragments, + first: 4, + order_by: [id_desc] + ) + expect(channels_page.size).to eq(4) + expect(page_info).to include(case_correctly("has_next_page") => true) + + # Filter by ID spans indices and respects the __typename scope at each query level. + stores_by_id = list_stores_with( + *store_fragments, + filter: {id: {equal_to_any_of: [mobile_store1.fetch(:id), physical_store1.fetch(:id), online_store1.fetch(:id)]}} + ) + expect(stores_by_id.map { |s| [s["id"], s["__typename"]] }).to contain_exactly( + [mobile_store1.fetch(:id), "MobileStore"], + [physical_store1.fetch(:id), "PhysicalStore"], + [online_store1.fetch(:id), "OnlineStore"] + ) + end + it "supports fetching interface fields" do index_into( graphql, @@ -1490,6 +1587,45 @@ def list_widgets_via_widgets_or_addresses(**query_args) QUERY end + def list_distribution_channels_with(*fragments, **query_args) + field = case_correctly("distribution_channels") + query_abstract_type_with(field, *fragments, **query_args).dig("data", field, "edges").map { |e| e.fetch("node") } + end + + def list_distribution_channels_and_page_info_with(*fragments, **query_args) + field = case_correctly("distribution_channels") + response = query_abstract_type_with(field, *fragments, **query_args).dig("data", field) + [response.fetch("edges").map { |e| e.fetch("node") }, response.fetch(case_correctly("page_info"))] + end + + def list_retailers_with(*fragments, **query_args) + query_abstract_type_with("retailers", *fragments, **query_args).dig("data", "retailers", "edges").map { |e| e.fetch("node") } + end + + def list_stores_with(*fragments, **query_args) + query_abstract_type_with("stores", *fragments, **query_args).dig("data", "stores", "edges").map { |e| e.fetch("node") } + end + + def query_abstract_type_with(field, *fragments, allow_errors: false, **query_args) + fragment_string = fragments.join("\n") + call_graphql_query(<<~QUERY, allow_errors: allow_errors) + query { + #{field}#{graphql_args(query_args)} { + #{case_correctly("page_info")} { + #{case_correctly("end_cursor")} + #{case_correctly("has_next_page")} + #{case_correctly("has_previous_page")} + } + edges { + node { + #{fragment_string} + } + } + } + } + QUERY + end + def list_widgets_by_nodes_with(fieldname, **query_args) query_widgets_by_nodes_with(fieldname, **query_args).dig("data", "widgets", "nodes") end diff --git a/spec_support/lib/elastic_graph/spec_support/factories/widgets.rb b/spec_support/lib/elastic_graph/spec_support/factories/widgets.rb index 9d00a042a..f63ff2ba5 100644 --- a/spec_support/lib/elastic_graph/spec_support/factories/widgets.rb +++ b/spec_support/lib/elastic_graph/spec_support/factories/widgets.rb @@ -47,12 +47,14 @@ factory :person, parent: :indexed_type do __typename { "Person" } + id { Faker::Alphanumeric.alpha(number: 20) } name { Faker::Name.name } nationality { Faker::Nation.nationality } end factory :company, parent: :indexed_type do __typename { "Company" } + id { Faker::Alphanumeric.alpha(number: 20) } name { Faker::Company.name } stock_ticker { name[0..3].upcase } end @@ -210,4 +212,38 @@ parts { [] } end end + + factory :online_store, parent: :indexed_type do + __typename { "OnlineStore" } + url { "https://#{Faker::Internet.domain_name}" } + platform { Faker::Base.sample(["Shopify", "WooCommerce", "Magento", "Custom"]) } + established_on { Faker::Date.between(from: recent_date - 365, to: recent_date).iso8601 } + active { true } + customer_facing { true } + end + + factory :physical_store, parent: :indexed_type do + __typename { "PhysicalStore" } + address { Faker::Address.full_address } + square_footage { Faker::Number.between(from: 500, to: 50000) } + established_on { Faker::Date.between(from: recent_date - 365, to: recent_date).iso8601 } + active { true } + customer_facing { true } + end + + factory :mobile_store, parent: :indexed_type do + __typename { "MobileStore" } + vehicle_type { Faker::Base.sample(["food truck", "pop-up cart", "mobile kiosk", "trailer"]) } + current_location { Faker::Address.full_address } + established_on { Faker::Date.between(from: recent_date - 365, to: recent_date).iso8601 } + active { true } + customer_facing { true } + end + + factory :third_party_wholesale, parent: :indexed_type do + __typename { "ThirdPartyWholesale" } + partner_name { Faker::Company.name } + contract_terms { Faker::Base.sample(["Net 30", "Net 60", "Net 90", "COD"]) } + active { true } + end end From d16d6cd600e748e7bd5897d9492bde7fd711bd36 Mon Sep 17 00:00:00 2001 From: Marc Daniels Date: Fri, 24 Apr 2026 17:41:28 -0400 Subject: [PATCH 2/9] Extract AbstractTypeFilter query adapter and add O(1) index-type lookups Move __typename filtering logic out of Resolvers::QueryAdapter into a new QueryAdapter::AbstractTypeFilter class, registered alongside the other adapters in graphql.rb. Supporting infrastructure: - Schema#indexed_document_types_by_index_definition_name is now public and returns Hash[String, Array[Type]] (previously private, returned a single Type) - Type#other_types_in_index returns the set of other indexed document types sharing any of this type's search indexes, enabling O(1) sibling detection instead of nested select/any? loops The filter itself is simplified: replaces any_of wrapping two equal_to_any_of clauses with a single equal_to_any_of including nil. The nil entry is load-bearing: subtypes with a dedicated index won't have __typename injected by the indexer (the index itself identifies the type), so nil allows those documents through when querying the abstract parent type. Generated with Claude Code --- .../lib/elastic_graph/graphql.rb | 2 + .../query_adapter/abstract_type_filter.rb | 39 +++++ .../graphql/resolvers/query_adapter.rb | 42 ------ .../lib/elastic_graph/graphql/schema.rb | 21 +-- .../lib/elastic_graph/graphql/schema/type.rb | 11 +- .../sig/elastic_graph/graphql/schema.rbs | 1 + .../sig/elastic_graph/graphql/schema/type.rbs | 1 + .../abstract_type_filter_spec.rb | 139 ++++++++++++++++++ 8 files changed, 204 insertions(+), 52 deletions(-) create mode 100644 elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb create mode 100644 elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql.rb b/elasticgraph-graphql/lib/elastic_graph/graphql.rb index 2f21ab2ec..3b12810a8 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql.rb @@ -192,6 +192,7 @@ def named_graphql_resolvers def datastore_query_adapters @datastore_query_adapters ||= begin require "elastic_graph/graphql/aggregation/query_adapter" + require "elastic_graph/graphql/query_adapter/abstract_type_filter" require "elastic_graph/graphql/query_adapter/filters" require "elastic_graph/graphql/query_adapter/pagination" require "elastic_graph/graphql/query_adapter/sort" @@ -200,6 +201,7 @@ def datastore_query_adapters schema_element_names = runtime_metadata.schema_element_names [ + GraphQL::QueryAdapter::AbstractTypeFilter.new, GraphQL::QueryAdapter::Pagination.new(schema_element_names: schema_element_names), GraphQL::QueryAdapter::Filters.new( schema_element_names: schema_element_names, diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb new file mode 100644 index 000000000..9223aab18 --- /dev/null +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb @@ -0,0 +1,39 @@ +# Copyright 2024 - 2026 Block, Inc. +# +# Use of this source code is governed by an MIT-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/MIT. +# +# frozen_string_literal: true + +module ElasticGraph + class GraphQL + class QueryAdapter + # Query adapter that injects a `__typename` filter when querying an abstract type (interface + # or union) that shares an index with types that fall outside the set of its subtypes. Without + # this filter, documents belonging to those other types would incorrectly appear in results. + # + # For example, if `Store` and `ThirdPartyWholesale` both share the `distribution_channels` + # index, a query for `stores` must filter to only return documents whose `__typename` is one + # of `Store`'s concrete subtypes. + # + # Subtypes with a dedicated index will not have `__typename` in their documents — the index + # itself identifies the type — so `nil` is included to allow those documents through. + class AbstractTypeFilter + def call(field:, query:, args:, lookahead:, context:) + type = field.type.unwrap_fully + return query unless type.abstract? + + # Note: subtypes returns all concrete subtypes at any depth — intermediate abstract + # types in the hierarchy are not included, even though they may share the same index. + subtypes = type.subtypes + return query unless type.other_types_in_index.any? { |t| !subtypes.include?(t) } + + query.merge_with(internal_filters: [{ + "__typename" => {query.schema_element_names.equal_to_any_of => [nil] + subtypes.map(&:name)} + }]) + end + end + end + end +end diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/query_adapter.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/query_adapter.rb index d69ac50ca..da446dd25 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/query_adapter.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/resolvers/query_adapter.rb @@ -68,53 +68,11 @@ def build_new_query_from(field, args, lookahead, context, monotonic_clock_deadli monotonic_clock_deadline: monotonic_clock_deadline ) - # When querying an abstract type (interface/union) that shares an index with sibling types, - # we must filter by __typename to only return documents of the queried type's subtypes. - # Example: Store interface and ThirdPartyWholesale both implement DistributionChannel - # and share the distribution_channels index. When querying `stores`, we must filter to - # only include PhysicalStore, OnlineStore, and MobileStore documents. - initial_query = add_typename_filter_if_needed(initial_query, unwrapped_type, context) - @datastore_query_adapters.reduce(initial_query) do |query, adapter| adapter.call(query: query, field: field, args: args, lookahead: lookahead, context: context) end end - def add_typename_filter_if_needed(query, type, context) - return query unless type.abstract? - - subtypes = type.subtypes - - # Check if any of the indexes being searched contain documents from non-subtypes - # (i.e., sibling types that share the same index but shouldn't be returned). - # Only apply __typename filtering if needed to disambiguate. - return query unless query.search_index_definitions.any? do |index_def| - index_has_sibling_types?(context.fetch(:elastic_graph_schema), index_def, type, subtypes) - end - - # Allow documents without __typename to pass through (they'll be resolved by index name). - query.merge_with(internal_filters: [{ - query.schema_element_names.any_of => [ - {"__typename" => {query.schema_element_names.equal_to_any_of => subtypes.map(&:name)}}, - {"__typename" => {query.schema_element_names.equal_to_any_of => [nil]}} - ] - }]) - end - - # Checks if the given index contains documents from types that are NOT subtypes of the queried type. - # This indicates we need __typename filtering to exclude those sibling types. - def index_has_sibling_types?(schema, index_def, queried_type, queried_subtypes) - # Get all types that use this index - types_in_index = schema.indexed_document_types.select do |type| - type.index_definitions.any? { |idx| idx.name == index_def.name } - end - - # Check if any of those types are NOT subtypes of the queried type - types_in_index.any? do |type| - !queried_subtypes.include?(type) && type != queried_type - end - end - def cache_key_for(field, args, lookahead) # Unfortunately, `Lookahead` does not define `==` according to its internal state, # so `l1 == l2` with the same internal state returns false. So we have to pull diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/schema.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/schema.rb index 2fbe0d6dc..ee123bbca 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/schema.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/schema.rb @@ -127,7 +127,7 @@ def document_type_stored_in(index_definition_name) else raise Errors::NotFoundError, "The index definition `#{index_definition_name}` does not appear to exist. Is it misspelled?" end - end + end.first end def field_named(type_name, field_name) @@ -152,6 +152,17 @@ def to_s end alias_method :inspect, :to_s + # Returns a hash mapping each index definition name to all indexed document types that use that index. + # Multiple types may map to the same index when abstract types share an index with their concrete subtypes + # via index inheritance. + def indexed_document_types_by_index_definition_name + @indexed_document_types_by_index_definition_name ||= indexed_document_types.each_with_object({}) do |type, hash| + type.index_definitions.each do |index_def| + (hash[index_def.name] ||= []) << type + end + end.freeze + end + private def build_base_object_class @@ -190,14 +201,6 @@ def build_types_by_name end end - def indexed_document_types_by_index_definition_name - @indexed_document_types_by_index_definition_name ||= indexed_document_types.each_with_object({}) do |type, hash| - type.index_definitions.each do |index_def| - hash[index_def.name] ||= type - end - end.freeze - end - def log_hidden_types hidden_types = @types_by_name.values.select(&:hidden_from_queries?) return if hidden_types.empty? diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb index d35e73e88..8f0bf58e7 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb @@ -117,7 +117,7 @@ def unwrap_fully end end - # Returns the subtypes of this type, if it has any. This is like `#possible_types` provided by the + # Returns all concrete subtypes, at any depth. This is like `#possible_types` provided by the # GraphQL gem, but that includes a type itself when you ask for the possible types of a non-abstract type. def subtypes @subtypes ||= @schema @@ -126,6 +126,15 @@ def subtypes .map { |t| @schema.type_from(t) } - [self] end + # Returns the set of other indexed document types that share any of this type's search indexes. + # Used to determine whether `__typename` filtering is needed when querying an abstract type + # that shares an index with types that fall outside the set of this type's subtypes. + def other_types_in_index + @other_types_in_index ||= search_index_definitions.flat_map do |index_def| + @schema.indexed_document_types_by_index_definition_name.fetch(index_def.name, []) + end.reject { |t| t == self }.to_set + end + def field_named(field_name) @fields_by_name.fetch(field_name) rescue KeyError => e diff --git a/elasticgraph-graphql/sig/elastic_graph/graphql/schema.rbs b/elasticgraph-graphql/sig/elastic_graph/graphql/schema.rbs index ecdd631a2..82cdab2aa 100644 --- a/elasticgraph-graphql/sig/elastic_graph/graphql/schema.rbs +++ b/elasticgraph-graphql/sig/elastic_graph/graphql/schema.rbs @@ -32,6 +32,7 @@ module ElasticGraph def document_type_stored_in: (::String) -> Type def field_named: (::String, ::String) -> Field def indexed_document_types: () -> ::Array[Type] + def indexed_document_types_by_index_definition_name: () -> ::Hash[::String, ::Array[Type]] def log_hidden_types: (Logger) -> void end end diff --git a/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs b/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs index a3d840c2f..c3abb6b1f 100644 --- a/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs +++ b/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs @@ -9,6 +9,7 @@ module ElasticGraph attr_reader graphql_type: ::GraphQL::Schema::_Type attr_reader grouping_missing_value_placeholder: ::String? | ::Numeric? def search_index_definitions: () -> ::Array[DatastoreCore::_IndexDefinition] + def other_types_in_index: () -> ::Set[Type] def unwrap_fully: () -> Type def field_named: (::String) -> Field def fields_by_name_in_index: () -> ::Hash[::String, ::Array[Field]] diff --git a/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb new file mode 100644 index 000000000..1ebc6a324 --- /dev/null +++ b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb @@ -0,0 +1,139 @@ +# Copyright 2024 - 2026 Block, Inc. +# +# Use of this source code is governed by an MIT-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/MIT. +# +# frozen_string_literal: true + +require "elastic_graph/graphql/query_adapter/abstract_type_filter" + +module ElasticGraph + class GraphQL + class QueryAdapter + RSpec.describe AbstractTypeFilter, :query_adapter do + attr_accessor :schema_artifacts + + before(:context) do + self.schema_artifacts = generate_schema_artifacts do |schema| + # A concrete type with its own dedicated index. + schema.object_type "Widget" do |t| + t.field "id", "ID!" + t.root_query_fields plural: "widgets" + t.index "widgets" + end + + # A union whose subtypes all share one index — no __typename filter needed. + schema.object_type "Person" do |t| + t.field "id", "ID!" + end + + schema.object_type "Company" do |t| + t.field "id", "ID!" + end + + schema.union_type "Inventor" do |t| + t.subtypes "Person", "Company" + t.root_query_fields plural: "inventors" + t.index "inventors" + end + + # An interface hierarchy where `Store` shares the `channels` index with `Wholesaler`, + # requiring a __typename filter when querying stores. + # `PhysicalStore` has its own dedicated index, so its documents will not have __typename. + schema.interface_type "Channel" do |t| + t.field "id", "ID!" + t.root_query_fields plural: "channels" + t.index "channels" + end + + schema.object_type "Wholesaler" do |t| + t.implements "Channel" + t.field "id", "ID!" + end + + schema.interface_type "Store" do |t| + t.implements "Channel" + t.field "id", "ID!" + t.root_query_fields plural: "stores" + end + + schema.object_type "OnlineStore" do |t| + t.implements "Store" + t.field "id", "ID!" + end + + schema.object_type "PhysicalStore" do |t| + t.implements "Store" + t.field "id", "ID!" + t.index "physical_stores" + end + end + end + + context "when querying a concrete type" do + it "does not apply a __typename filter" do + query = datastore_query_for(:Query, :widgets, <<~QUERY) + query { widgets { edges { node { id } } } } + QUERY + + expect(query.internal_filters).to be_empty + end + end + + context "when querying an abstract type whose subtypes all share one index" do + it "does not apply a __typename filter" do + query = datastore_query_for(:Query, :inventors, <<~QUERY) + query { inventors { edges { node { ... on Person { id } ... on Company { id } } } } } + QUERY + + expect(query.internal_filters).to be_empty + end + end + + context "when querying an abstract type that shares an index with a sibling type" do + it "applies a __typename filter scoped to the queried type's concrete subtypes, including nil for subtypes with dedicated indexes" do + query = datastore_query_for(:Query, :stores, <<~QUERY) + query { stores { edges { node { id } } } } + QUERY + + typename_filter = query.internal_filters.find { |f| f.key?("__typename") } + expect(typename_filter.dig("__typename", "equal_to_any_of")).to contain_exactly(nil, "OnlineStore", "PhysicalStore") + end + + it "applies a __typename filter when querying the root abstract type" do + query = datastore_query_for(:Query, :channels, <<~QUERY) + query { channels { edges { node { id } } } } + QUERY + + expect(query.internal_filters).not_to be_empty + end + end + + context "when calling other_types_in_index on a concrete type" do + it "excludes the type itself from the result" do + schema = build_graphql(schema_artifacts: schema_artifacts).schema + physical_store = schema.type_named("PhysicalStore") + + expect(physical_store.other_types_in_index).not_to include(physical_store) + end + end + + private + + def graphql_and_datastore_queries_by_field_for(graphql_query, **graphql_opts) + super(graphql_query, schema_artifacts: schema_artifacts, **graphql_opts) + end + + def datastore_query_for(type, field, graphql_query) + super( + schema_artifacts: schema_artifacts, + graphql_query: graphql_query, + type: type, + field: field + ) + end + end + end + end +end From 3263c734002a90d2c67e0dba1cb05b5e63fa5881 Mon Sep 17 00:00:00 2001 From: Marc Daniels Date: Fri, 24 Apr 2026 21:27:39 -0400 Subject: [PATCH 3/9] Address PR review feedback: trim schema, add tests, improve docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove MobileStore (redundant with OnlineStore) and untested fields from the DistributionChannel hierarchy in widgets.rb - Remove stale `stores` index from test and development settings files - Add unit test for requested_fields.rb unwrap_fully fix (abstract nodes) - Update NamedInventor comment to explain index inheritance intent - Add comment explaining intentional two-level Retail/Store nesting - Fix typo: "interfae" → "interface" in widgets.rb Generated with Claude Code --- config/schema/artifacts/data_warehouse.yaml | 16 +- config/schema/artifacts/datastore_config.yaml | 24 - config/schema/artifacts/json_schemas.yaml | 87 -- .../artifacts/json_schemas_by_version/v1.yaml | 129 --- config/schema/artifacts/runtime_metadata.yaml | 571 ------------- config/schema/artifacts/schema.graphql | 770 ----------------- .../artifacts_with_apollo/data_warehouse.yaml | 16 +- .../datastore_config.yaml | 24 - .../artifacts_with_apollo/json_schemas.yaml | 87 -- .../json_schemas_by_version/v1.yaml | 129 --- .../runtime_metadata.yaml | 571 ------------- .../artifacts_with_apollo/schema.graphql | 772 +----------------- config/schema/widgets.rb | 28 +- config/settings/development_with_apollo.yaml | 1 - config/settings/test.yaml.template | 1 - .../spec/acceptance/hidden_types_spec.rb | 2 +- .../spec/acceptance/search_spec.rb | 26 +- .../query_adapter/requested_fields_spec.rb | 17 +- .../spec_support/factories/widgets.rb | 17 - 19 files changed, 37 insertions(+), 3251 deletions(-) diff --git a/config/schema/artifacts/data_warehouse.yaml b/config/schema/artifacts/data_warehouse.yaml index 057e7ea6a..e6d7bec07 100644 --- a/config/schema/artifacts/data_warehouse.yaml +++ b/config/schema/artifacts/data_warehouse.yaml @@ -35,18 +35,9 @@ tables: table_schema: |- CREATE TABLE IF NOT EXISTS distribution_channels ( id STRING, - url STRING, - platform STRING, established_on DATE, active BOOLEAN, - customer_facing BOOLEAN, - __typename STRING, - address STRING, - square_footage INT, - vehicle_type STRING, - current_location STRING, - partner_name STRING, - contract_terms STRING + __typename STRING ) electrical_parts: table_schema: |- @@ -87,11 +78,8 @@ tables: table_schema: |- CREATE TABLE IF NOT EXISTS physical_stores ( id STRING, - address STRING, - square_footage INT, established_on DATE, - active BOOLEAN, - customer_facing BOOLEAN + active BOOLEAN ) sponsors: table_schema: |- diff --git a/config/schema/artifacts/datastore_config.yaml b/config/schema/artifacts/datastore_config.yaml index 02d7206a2..3ca61c0c5 100644 --- a/config/schema/artifacts/datastore_config.yaml +++ b/config/schema/artifacts/datastore_config.yaml @@ -1601,29 +1601,11 @@ indices: properties: id: type: keyword - url: - type: keyword - platform: - type: keyword established_on: type: date format: strict_date active: type: boolean - customer_facing: - type: boolean - address: - type: keyword - square_footage: - type: integer - vehicle_type: - type: keyword - current_location: - type: keyword - partner_name: - type: keyword - contract_terms: - type: keyword __typename: type: keyword __sources: @@ -1765,17 +1747,11 @@ indices: properties: id: type: keyword - address: - type: keyword - square_footage: - type: integer established_on: type: date format: strict_date active: type: boolean - customer_facing: - type: boolean __sources: type: keyword __versions: diff --git a/config/schema/artifacts/json_schemas.yaml b/config/schema/artifacts/json_schemas.yaml index af47f2cd5..3f0a6f2a3 100644 --- a/config/schema/artifacts/json_schemas.yaml +++ b/config/schema/artifacts/json_schemas.yaml @@ -28,7 +28,6 @@ json_schema_version: 1 - ElectricalPart - Manufacturer - MechanicalPart - - MobileStore - OnlineStore - Person - PhysicalStore @@ -425,46 +424,6 @@ json_schema_version: 1 - created_at - material - manufacturer_id - MobileStore: - type: object - properties: - id: - allOf: - - "$ref": "#/$defs/ID" - - maxLength: 8191 - vehicle_type: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - current_location: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - established_on: - anyOf: - - "$ref": "#/$defs/Date" - - type: 'null' - active: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - __typename: - type: string - const: MobileStore - default: MobileStore - required: - - id - - vehicle_type - - current_location - - established_on - - active - - customer_facing Money: type: object properties: @@ -496,16 +455,6 @@ json_schema_version: 1 allOf: - "$ref": "#/$defs/ID" - maxLength: 8191 - url: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - platform: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' established_on: anyOf: - "$ref": "#/$defs/Date" @@ -514,21 +463,14 @@ json_schema_version: 1 anyOf: - "$ref": "#/$defs/Boolean" - type: 'null' - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' __typename: type: string const: OnlineStore default: OnlineStore required: - id - - url - - platform - established_on - active - - customer_facing Person: type: object properties: @@ -563,14 +505,6 @@ json_schema_version: 1 allOf: - "$ref": "#/$defs/ID" - maxLength: 8191 - address: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - square_footage: - anyOf: - - "$ref": "#/$defs/Int" - - type: 'null' established_on: anyOf: - "$ref": "#/$defs/Date" @@ -579,21 +513,14 @@ json_schema_version: 1 anyOf: - "$ref": "#/$defs/Boolean" - type: 'null' - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' __typename: type: string const: PhysicalStore default: PhysicalStore required: - id - - address - - square_footage - established_on - active - - customer_facing Player: type: object properties: @@ -952,18 +879,6 @@ json_schema_version: 1 anyOf: - "$ref": "#/$defs/Boolean" - type: 'null' - partner_name: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - contract_terms: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' __typename: type: string const: ThirdPartyWholesale @@ -971,8 +886,6 @@ json_schema_version: 1 required: - id - active - - partner_name - - contract_terms Untyped: type: - array diff --git a/config/schema/artifacts/json_schemas_by_version/v1.yaml b/config/schema/artifacts/json_schemas_by_version/v1.yaml index 3ba2591d9..bb5079fc4 100644 --- a/config/schema/artifacts/json_schemas_by_version/v1.yaml +++ b/config/schema/artifacts/json_schemas_by_version/v1.yaml @@ -28,7 +28,6 @@ json_schema_version: 1 - ElectricalPart - Manufacturer - MechanicalPart - - MobileStore - OnlineStore - Person - PhysicalStore @@ -539,64 +538,6 @@ json_schema_version: 1 - created_at - material - manufacturer_id - MobileStore: - type: object - properties: - id: - allOf: - - "$ref": "#/$defs/ID" - - maxLength: 8191 - ElasticGraph: - type: ID! - nameInIndex: id - vehicle_type: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - ElasticGraph: - type: String! - nameInIndex: vehicle_type - current_location: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - ElasticGraph: - type: String - nameInIndex: current_location - established_on: - anyOf: - - "$ref": "#/$defs/Date" - - type: 'null' - ElasticGraph: - type: Date - nameInIndex: established_on - active: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - ElasticGraph: - type: Boolean - nameInIndex: active - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - ElasticGraph: - type: Boolean - nameInIndex: customer_facing - __typename: - type: string - const: MobileStore - default: MobileStore - required: - - id - - vehicle_type - - current_location - - established_on - - active - - customer_facing Money: type: object properties: @@ -637,22 +578,6 @@ json_schema_version: 1 ElasticGraph: type: ID! nameInIndex: id - url: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - ElasticGraph: - type: String! - nameInIndex: url - platform: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - ElasticGraph: - type: String - nameInIndex: platform established_on: anyOf: - "$ref": "#/$defs/Date" @@ -667,24 +592,14 @@ json_schema_version: 1 ElasticGraph: type: Boolean nameInIndex: active - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - ElasticGraph: - type: Boolean - nameInIndex: customer_facing __typename: type: string const: OnlineStore default: OnlineStore required: - id - - url - - platform - established_on - active - - customer_facing Person: type: object properties: @@ -731,20 +646,6 @@ json_schema_version: 1 ElasticGraph: type: ID! nameInIndex: id - address: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - ElasticGraph: - type: String! - nameInIndex: address - square_footage: - anyOf: - - "$ref": "#/$defs/Int" - - type: 'null' - ElasticGraph: - type: Int - nameInIndex: square_footage established_on: anyOf: - "$ref": "#/$defs/Date" @@ -759,24 +660,14 @@ json_schema_version: 1 ElasticGraph: type: Boolean nameInIndex: active - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - ElasticGraph: - type: Boolean - nameInIndex: customer_facing __typename: type: string const: PhysicalStore default: PhysicalStore required: - id - - address - - square_footage - established_on - active - - customer_facing Player: type: object properties: @@ -1291,24 +1182,6 @@ json_schema_version: 1 ElasticGraph: type: Boolean nameInIndex: active - partner_name: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - ElasticGraph: - type: String - nameInIndex: partner_name - contract_terms: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - ElasticGraph: - type: String - nameInIndex: contract_terms __typename: type: string const: ThirdPartyWholesale @@ -1316,8 +1189,6 @@ json_schema_version: 1 required: - id - active - - partner_name - - contract_terms Untyped: type: - array diff --git a/config/schema/artifacts/runtime_metadata.yaml b/config/schema/artifacts/runtime_metadata.yaml index 24420ca28..082ad511f 100644 --- a/config/schema/artifacts/runtime_metadata.yaml +++ b/config/schema/artifacts/runtime_metadata.yaml @@ -177,30 +177,6 @@ enum_types_by_name: datastore_abbreviation: yd DistributionChannelSortOrderInput: values_by_name: - address_ASC: - sort_field: - direction: asc - field_path: address - address_DESC: - sort_field: - direction: desc - field_path: address - contract_terms_ASC: - sort_field: - direction: asc - field_path: contract_terms - contract_terms_DESC: - sort_field: - direction: desc - field_path: contract_terms - current_location_ASC: - sort_field: - direction: asc - field_path: current_location - current_location_DESC: - sort_field: - direction: desc - field_path: current_location established_on_ASC: sort_field: direction: asc @@ -217,46 +193,6 @@ enum_types_by_name: sort_field: direction: desc field_path: id - partner_name_ASC: - sort_field: - direction: asc - field_path: partner_name - partner_name_DESC: - sort_field: - direction: desc - field_path: partner_name - platform_ASC: - sort_field: - direction: asc - field_path: platform - platform_DESC: - sort_field: - direction: desc - field_path: platform - square_footage_ASC: - sort_field: - direction: asc - field_path: square_footage - square_footage_DESC: - sort_field: - direction: desc - field_path: square_footage - url_ASC: - sort_field: - direction: asc - field_path: url - url_DESC: - sort_field: - direction: desc - field_path: url - vehicle_type_ASC: - sort_field: - direction: asc - field_path: vehicle_type - vehicle_type_DESC: - sort_field: - direction: desc - field_path: vehicle_type ElectricalPartSortOrderInput: values_by_name: created_at_ASC: @@ -929,14 +865,6 @@ enum_types_by_name: field_path: voltage PhysicalStoreSortOrderInput: values_by_name: - address_ASC: - sort_field: - direction: asc - field_path: address - address_DESC: - sort_field: - direction: desc - field_path: address established_on_ASC: sort_field: direction: asc @@ -953,32 +881,8 @@ enum_types_by_name: sort_field: direction: desc field_path: id - square_footage_ASC: - sort_field: - direction: asc - field_path: square_footage - square_footage_DESC: - sort_field: - direction: desc - field_path: square_footage RetailSortOrderInput: values_by_name: - address_ASC: - sort_field: - direction: asc - field_path: address - address_DESC: - sort_field: - direction: desc - field_path: address - current_location_ASC: - sort_field: - direction: asc - field_path: current_location - current_location_DESC: - sort_field: - direction: desc - field_path: current_location established_on_ASC: sort_field: direction: asc @@ -995,38 +899,6 @@ enum_types_by_name: sort_field: direction: desc field_path: id - platform_ASC: - sort_field: - direction: asc - field_path: platform - platform_DESC: - sort_field: - direction: desc - field_path: platform - square_footage_ASC: - sort_field: - direction: asc - field_path: square_footage - square_footage_DESC: - sort_field: - direction: desc - field_path: square_footage - url_ASC: - sort_field: - direction: asc - field_path: url - url_DESC: - sort_field: - direction: desc - field_path: url - vehicle_type_ASC: - sort_field: - direction: asc - field_path: vehicle_type - vehicle_type_DESC: - sort_field: - direction: desc - field_path: vehicle_type SponsorSortOrderInput: values_by_name: id_ASC: @@ -1047,22 +919,6 @@ enum_types_by_name: field_path: name StoreSortOrderInput: values_by_name: - address_ASC: - sort_field: - direction: asc - field_path: address - address_DESC: - sort_field: - direction: desc - field_path: address - current_location_ASC: - sort_field: - direction: asc - field_path: current_location - current_location_DESC: - sort_field: - direction: desc - field_path: current_location established_on_ASC: sort_field: direction: asc @@ -1079,38 +935,6 @@ enum_types_by_name: sort_field: direction: desc field_path: id - platform_ASC: - sort_field: - direction: asc - field_path: platform - platform_DESC: - sort_field: - direction: desc - field_path: platform - square_footage_ASC: - sort_field: - direction: asc - field_path: square_footage - square_footage_DESC: - sort_field: - direction: desc - field_path: square_footage - url_ASC: - sort_field: - direction: asc - field_path: url - url_DESC: - sort_field: - direction: desc - field_path: url - vehicle_type_ASC: - sort_field: - direction: asc - field_path: vehicle_type - vehicle_type_DESC: - sort_field: - direction: desc - field_path: vehicle_type TeamSortOrderInput: values_by_name: country_code_ASC: @@ -2024,28 +1848,10 @@ index_definitions_by_name: fields_by_path: active: source: __self - address: - source: __self - contract_terms: - source: __self - current_location: - source: __self - customer_facing: - source: __self established_on: source: __self id: source: __self - partner_name: - source: __self - platform: - source: __self - square_footage: - source: __self - url: - source: __self - vehicle_type: - source: __self route_with: id electrical_parts: current_sources: @@ -2122,16 +1928,10 @@ index_definitions_by_name: fields_by_path: active: source: __self - address: - source: __self - customer_facing: - source: __self established_on: source: __self id: source: __self - square_footage: - source: __self route_with: id sponsors: current_sources: @@ -3831,39 +3631,12 @@ object_types_by_name: active: resolver: name: get_record_field_value - address: - resolver: - name: get_record_field_value - contract_terms: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - partner_name: - resolver: - name: get_record_field_value - platform: - resolver: - name: get_record_field_value - square_footage: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels DistributionChannelAggregatedValues: @@ -3871,39 +3644,12 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - contract_terms: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - partner_name: - resolver: - name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead DistributionChannelAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: @@ -3973,62 +3719,14 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - contract_terms: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead - partner_name: - resolver: - name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead DistributionChannelHighlights: graphql_fields_by_name: - address: - resolver: - name: get_record_field_value - contract_terms: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value - partner_name: - resolver: - name: get_record_field_value - platform: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value ElectricalPart: graphql_fields_by_name: component_aggregations: @@ -4828,58 +4526,6 @@ object_types_by_name: name: resolver: name: get_record_field_value - MobileStore: - graphql_fields_by_name: - active: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value - established_on: - resolver: - name: get_record_field_value - id: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value - index_definition_names: - - distribution_channels - update_targets: - - data_params: - __typename: - cardinality: one - active: - cardinality: one - current_location: - cardinality: one - customer_facing: - cardinality: one - established_on: - cardinality: one - vehicle_type: - cardinality: one - id_source: id - metadata_params: - relationship: - value: __self - sourceId: - cardinality: one - source_path: id - sourceType: - cardinality: one - source_path: type - version: - cardinality: one - relationship: __self - routing_value_source: id - script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a - type: MobileStore Money: graphql_fields_by_name: amount_cents: @@ -5704,21 +5350,12 @@ object_types_by_name: active: resolver: name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels update_targets: @@ -5727,14 +5364,8 @@ object_types_by_name: cardinality: one active: cardinality: one - customer_facing: - cardinality: one established_on: cardinality: one - platform: - cardinality: one - url: - cardinality: one id_source: id metadata_params: relationship: @@ -5979,35 +5610,20 @@ object_types_by_name: active: resolver: name: get_record_field_value - address: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - square_footage: - resolver: - name: get_record_field_value index_definition_names: - physical_stores update_targets: - data_params: active: cardinality: one - address: - cardinality: one - customer_facing: - cardinality: one established_on: cardinality: one - square_footage: - cardinality: one id_source: id metadata_params: relationship: @@ -6029,21 +5645,12 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead PhysicalStoreAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: @@ -6113,23 +5720,11 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead PhysicalStoreHighlights: graphql_fields_by_name: - address: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value @@ -6388,33 +5983,12 @@ object_types_by_name: active: resolver: name: get_record_field_value - address: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - square_footage: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels RetailAggregatedValues: @@ -6422,33 +5996,12 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead RetailAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: @@ -6518,50 +6071,14 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead RetailHighlights: graphql_fields_by_name: - address: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value SearchHighlight: graphql_fields_by_name: path: @@ -6765,33 +6282,12 @@ object_types_by_name: active: resolver: name: get_record_field_value - address: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - square_footage: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels StoreAggregatedValues: @@ -6799,33 +6295,12 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead StoreAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: @@ -6895,50 +6370,14 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead StoreHighlights: graphql_fields_by_name: - address: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value StringConnection: elasticgraph_category: relay_connection graphql_fields_by_name: @@ -7877,15 +7316,9 @@ object_types_by_name: active: resolver: name: get_record_field_value - contract_terms: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value - partner_name: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels update_targets: @@ -7894,10 +7327,6 @@ object_types_by_name: cardinality: one active: cardinality: one - contract_terms: - cardinality: one - partner_name: - cardinality: one id_source: id metadata_params: relationship: diff --git a/config/schema/artifacts/schema.graphql b/config/schema/artifacts/schema.graphql index 0d7f62648..a717db3f7 100644 --- a/config/schema/artifacts/schema.graphql +++ b/config/schema/artifacts/schema.graphql @@ -2540,26 +2540,6 @@ type DistributionChannelAggregatedValues { """ active: NonNumericAggregatedValues - """ - Computed aggregate values for the `address` field. - """ - address: NonNumericAggregatedValues - - """ - Computed aggregate values for the `contract_terms` field. - """ - contract_terms: NonNumericAggregatedValues - - """ - Computed aggregate values for the `current_location` field. - """ - current_location: NonNumericAggregatedValues - - """ - Computed aggregate values for the `customer_facing` field. - """ - customer_facing: NonNumericAggregatedValues - """ Computed aggregate values for the `established_on` field. """ @@ -2569,31 +2549,6 @@ type DistributionChannelAggregatedValues { Computed aggregate values for the `id` field. """ id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `partner_name` field. - """ - partner_name: NonNumericAggregatedValues - - """ - Computed aggregate values for the `platform` field. - """ - platform: NonNumericAggregatedValues - - """ - Computed aggregate values for the `square_footage` field. - """ - square_footage: IntAggregatedValues - - """ - Computed aggregate values for the `url` field. - """ - url: NonNumericAggregatedValues - - """ - Computed aggregate values for the `vehicle_type` field. - """ - vehicle_type: NonNumericAggregatedValues } """ @@ -2731,13 +2686,6 @@ input DistributionChannelFilterInput { """ active: BooleanFilterInput - """ - Used to filter on the `address` field. - - When `null` or an empty object is passed, matches all documents. - """ - address: StringFilterInput - """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. @@ -2759,27 +2707,6 @@ input DistributionChannelFilterInput { """ any_of: [DistributionChannelFilterInput!] - """ - Used to filter on the `contract_terms` field. - - When `null` or an empty object is passed, matches all documents. - """ - contract_terms: StringFilterInput - - """ - Used to filter on the `current_location` field. - - When `null` or an empty object is passed, matches all documents. - """ - current_location: StringFilterInput - - """ - Used to filter on the `customer_facing` field. - - When `null` or an empty object is passed, matches all documents. - """ - customer_facing: BooleanFilterInput - """ Used to filter on the `established_on` field. @@ -2801,41 +2728,6 @@ input DistributionChannelFilterInput { When `null` or an empty object is passed, matches no documents. """ not: DistributionChannelFilterInput - - """ - Used to filter on the `partner_name` field. - - When `null` or an empty object is passed, matches all documents. - """ - partner_name: StringFilterInput - - """ - Used to filter on the `platform` field. - - When `null` or an empty object is passed, matches all documents. - """ - platform: StringFilterInput - - """ - Used to filter on the `square_footage` field. - - When `null` or an empty object is passed, matches all documents. - """ - square_footage: IntFilterInput - - """ - Used to filter on the `url` field. - - When `null` or an empty object is passed, matches all documents. - """ - url: StringFilterInput - - """ - Used to filter on the `vehicle_type` field. - - When `null` or an empty object is passed, matches all documents. - """ - vehicle_type: StringFilterInput } """ @@ -2847,136 +2739,26 @@ type DistributionChannelGroupedBy { """ active: Boolean - """ - The `address` field value for this group. - """ - address: String - - """ - The `contract_terms` field value for this group. - """ - contract_terms: String - - """ - The `current_location` field value for this group. - """ - current_location: String - - """ - The `customer_facing` field value for this group. - """ - customer_facing: Boolean - """ Offers the different grouping options for the `established_on` value within this group. """ established_on: DateGroupedBy - - """ - The `partner_name` field value for this group. - """ - partner_name: String - - """ - The `platform` field value for this group. - """ - platform: String - - """ - The `square_footage` field value for this group. - """ - square_footage: Int - - """ - The `url` field value for this group. - """ - url: String - - """ - The `vehicle_type` field value for this group. - """ - vehicle_type: String } """ Type used to request desired `DistributionChannel` search highlight fields. """ type DistributionChannelHighlights { - """ - Search highlights for the `address`, providing snippets of the matching text. - """ - address: [String!]! - - """ - Search highlights for the `contract_terms`, providing snippets of the matching text. - """ - contract_terms: [String!]! - - """ - Search highlights for the `current_location`, providing snippets of the matching text. - """ - current_location: [String!]! - """ Search highlights for the `id`, providing snippets of the matching text. """ id: [String!]! - - """ - Search highlights for the `partner_name`, providing snippets of the matching text. - """ - partner_name: [String!]! - - """ - Search highlights for the `platform`, providing snippets of the matching text. - """ - platform: [String!]! - - """ - Search highlights for the `url`, providing snippets of the matching text. - """ - url: [String!]! - - """ - Search highlights for the `vehicle_type`, providing snippets of the matching text. - """ - vehicle_type: [String!]! } """ Enumerates the ways `DistributionChannel`s can be sorted. """ enum DistributionChannelSortOrderInput { - """ - Sorts ascending by the `address` field. - """ - address_ASC - - """ - Sorts descending by the `address` field. - """ - address_DESC - - """ - Sorts ascending by the `contract_terms` field. - """ - contract_terms_ASC - - """ - Sorts descending by the `contract_terms` field. - """ - contract_terms_DESC - - """ - Sorts ascending by the `current_location` field. - """ - current_location_ASC - - """ - Sorts descending by the `current_location` field. - """ - current_location_DESC - """ Sorts ascending by the `established_on` field. """ @@ -2996,56 +2778,6 @@ enum DistributionChannelSortOrderInput { Sorts descending by the `id` field. """ id_DESC - - """ - Sorts ascending by the `partner_name` field. - """ - partner_name_ASC - - """ - Sorts descending by the `partner_name` field. - """ - partner_name_DESC - - """ - Sorts ascending by the `platform` field. - """ - platform_ASC - - """ - Sorts descending by the `platform` field. - """ - platform_DESC - - """ - Sorts ascending by the `square_footage` field. - """ - square_footage_ASC - - """ - Sorts descending by the `square_footage` field. - """ - square_footage_DESC - - """ - Sorts ascending by the `url` field. - """ - url_ASC - - """ - Sorts descending by the `url` field. - """ - url_DESC - - """ - Sorts ascending by the `vehicle_type` field. - """ - vehicle_type_ASC - - """ - Sorts descending by the `vehicle_type` field. - """ - vehicle_type_DESC } type ElectricalPart implements NamedEntity { @@ -5930,15 +5662,6 @@ enum MechanicalPartSortOrderInput { name_DESC } -type MobileStore implements DistributionChannel & Retail & Store { - active: Boolean - current_location: String - customer_facing: Boolean - established_on: Date - id: ID! - vehicle_type: String! -} - type Money { amount_cents: Int currency: String! @@ -8036,11 +7759,8 @@ type NonNumericAggregatedValues { type OnlineStore implements DistributionChannel & Retail & Store { active: Boolean - customer_facing: Boolean established_on: Date id: ID! - platform: String - url: String! } """ @@ -8516,11 +8236,8 @@ type PersonHighlights { type PhysicalStore implements DistributionChannel & Retail & Store { active: Boolean - address: String! - customer_facing: Boolean established_on: Date id: ID! - square_footage: Int } """ @@ -8532,16 +8249,6 @@ type PhysicalStoreAggregatedValues { """ active: NonNumericAggregatedValues - """ - Computed aggregate values for the `address` field. - """ - address: NonNumericAggregatedValues - - """ - Computed aggregate values for the `customer_facing` field. - """ - customer_facing: NonNumericAggregatedValues - """ Computed aggregate values for the `established_on` field. """ @@ -8551,11 +8258,6 @@ type PhysicalStoreAggregatedValues { Computed aggregate values for the `id` field. """ id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `square_footage` field. - """ - square_footage: IntAggregatedValues } """ @@ -8692,13 +8394,6 @@ input PhysicalStoreFilterInput { """ active: BooleanFilterInput - """ - Used to filter on the `address` field. - - When `null` or an empty object is passed, matches all documents. - """ - address: StringFilterInput - """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. @@ -8720,13 +8415,6 @@ input PhysicalStoreFilterInput { """ any_of: [PhysicalStoreFilterInput!] - """ - Used to filter on the `customer_facing` field. - - When `null` or an empty object is passed, matches all documents. - """ - customer_facing: BooleanFilterInput - """ Used to filter on the `established_on` field. @@ -8748,13 +8436,6 @@ input PhysicalStoreFilterInput { When `null` or an empty object is passed, matches no documents. """ not: PhysicalStoreFilterInput - - """ - Used to filter on the `square_footage` field. - - When `null` or an empty object is passed, matches all documents. - """ - square_footage: IntFilterInput } """ @@ -8766,36 +8447,16 @@ type PhysicalStoreGroupedBy { """ active: Boolean - """ - The `address` field value for this group. - """ - address: String - - """ - The `customer_facing` field value for this group. - """ - customer_facing: Boolean - """ Offers the different grouping options for the `established_on` value within this group. """ established_on: DateGroupedBy - - """ - The `square_footage` field value for this group. - """ - square_footage: Int } """ Type used to request desired `PhysicalStore` search highlight fields. """ type PhysicalStoreHighlights { - """ - Search highlights for the `address`, providing snippets of the matching text. - """ - address: [String!]! - """ Search highlights for the `id`, providing snippets of the matching text. """ @@ -8806,16 +8467,6 @@ type PhysicalStoreHighlights { Enumerates the ways `PhysicalStore`s can be sorted. """ enum PhysicalStoreSortOrderInput { - """ - Sorts ascending by the `address` field. - """ - address_ASC - - """ - Sorts descending by the `address` field. - """ - address_DESC - """ Sorts ascending by the `established_on` field. """ @@ -8835,16 +8486,6 @@ enum PhysicalStoreSortOrderInput { Sorts descending by the `id` field. """ id_DESC - - """ - Sorts ascending by the `square_footage` field. - """ - square_footage_ASC - - """ - Sorts descending by the `square_footage` field. - """ - square_footage_DESC } type Player { @@ -11467,21 +11108,6 @@ type RetailAggregatedValues { """ active: NonNumericAggregatedValues - """ - Computed aggregate values for the `address` field. - """ - address: NonNumericAggregatedValues - - """ - Computed aggregate values for the `current_location` field. - """ - current_location: NonNumericAggregatedValues - - """ - Computed aggregate values for the `customer_facing` field. - """ - customer_facing: NonNumericAggregatedValues - """ Computed aggregate values for the `established_on` field. """ @@ -11491,26 +11117,6 @@ type RetailAggregatedValues { Computed aggregate values for the `id` field. """ id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `platform` field. - """ - platform: NonNumericAggregatedValues - - """ - Computed aggregate values for the `square_footage` field. - """ - square_footage: IntAggregatedValues - - """ - Computed aggregate values for the `url` field. - """ - url: NonNumericAggregatedValues - - """ - Computed aggregate values for the `vehicle_type` field. - """ - vehicle_type: NonNumericAggregatedValues } """ @@ -11647,13 +11253,6 @@ input RetailFilterInput { """ active: BooleanFilterInput - """ - Used to filter on the `address` field. - - When `null` or an empty object is passed, matches all documents. - """ - address: StringFilterInput - """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. @@ -11675,20 +11274,6 @@ input RetailFilterInput { """ any_of: [RetailFilterInput!] - """ - Used to filter on the `current_location` field. - - When `null` or an empty object is passed, matches all documents. - """ - current_location: StringFilterInput - - """ - Used to filter on the `customer_facing` field. - - When `null` or an empty object is passed, matches all documents. - """ - customer_facing: BooleanFilterInput - """ Used to filter on the `established_on` field. @@ -11710,34 +11295,6 @@ input RetailFilterInput { When `null` or an empty object is passed, matches no documents. """ not: RetailFilterInput - - """ - Used to filter on the `platform` field. - - When `null` or an empty object is passed, matches all documents. - """ - platform: StringFilterInput - - """ - Used to filter on the `square_footage` field. - - When `null` or an empty object is passed, matches all documents. - """ - square_footage: IntFilterInput - - """ - Used to filter on the `url` field. - - When `null` or an empty object is passed, matches all documents. - """ - url: StringFilterInput - - """ - Used to filter on the `vehicle_type` field. - - When `null` or an empty object is passed, matches all documents. - """ - vehicle_type: StringFilterInput } """ @@ -11749,106 +11306,26 @@ type RetailGroupedBy { """ active: Boolean - """ - The `address` field value for this group. - """ - address: String - - """ - The `current_location` field value for this group. - """ - current_location: String - - """ - The `customer_facing` field value for this group. - """ - customer_facing: Boolean - """ Offers the different grouping options for the `established_on` value within this group. """ established_on: DateGroupedBy - - """ - The `platform` field value for this group. - """ - platform: String - - """ - The `square_footage` field value for this group. - """ - square_footage: Int - - """ - The `url` field value for this group. - """ - url: String - - """ - The `vehicle_type` field value for this group. - """ - vehicle_type: String } """ Type used to request desired `Retail` search highlight fields. """ type RetailHighlights { - """ - Search highlights for the `address`, providing snippets of the matching text. - """ - address: [String!]! - - """ - Search highlights for the `current_location`, providing snippets of the matching text. - """ - current_location: [String!]! - """ Search highlights for the `id`, providing snippets of the matching text. """ id: [String!]! - - """ - Search highlights for the `platform`, providing snippets of the matching text. - """ - platform: [String!]! - - """ - Search highlights for the `url`, providing snippets of the matching text. - """ - url: [String!]! - - """ - Search highlights for the `vehicle_type`, providing snippets of the matching text. - """ - vehicle_type: [String!]! } """ Enumerates the ways `Retail`s can be sorted. """ enum RetailSortOrderInput { - """ - Sorts ascending by the `address` field. - """ - address_ASC - - """ - Sorts descending by the `address` field. - """ - address_DESC - - """ - Sorts ascending by the `current_location` field. - """ - current_location_ASC - - """ - Sorts descending by the `current_location` field. - """ - current_location_DESC - """ Sorts ascending by the `established_on` field. """ @@ -11868,46 +11345,6 @@ enum RetailSortOrderInput { Sorts descending by the `id` field. """ id_DESC - - """ - Sorts ascending by the `platform` field. - """ - platform_ASC - - """ - Sorts descending by the `platform` field. - """ - platform_DESC - - """ - Sorts ascending by the `square_footage` field. - """ - square_footage_ASC - - """ - Sorts descending by the `square_footage` field. - """ - square_footage_DESC - - """ - Sorts ascending by the `url` field. - """ - url_ASC - - """ - Sorts descending by the `url` field. - """ - url_DESC - - """ - Sorts ascending by the `vehicle_type` field. - """ - vehicle_type_ASC - - """ - Sorts descending by the `vehicle_type` field. - """ - vehicle_type_DESC } """ @@ -12723,7 +12160,6 @@ input SponsorshipListFilterInput { interface Store implements DistributionChannel & Retail { active: Boolean - customer_facing: Boolean established_on: Date id: ID! } @@ -12737,21 +12173,6 @@ type StoreAggregatedValues { """ active: NonNumericAggregatedValues - """ - Computed aggregate values for the `address` field. - """ - address: NonNumericAggregatedValues - - """ - Computed aggregate values for the `current_location` field. - """ - current_location: NonNumericAggregatedValues - - """ - Computed aggregate values for the `customer_facing` field. - """ - customer_facing: NonNumericAggregatedValues - """ Computed aggregate values for the `established_on` field. """ @@ -12761,26 +12182,6 @@ type StoreAggregatedValues { Computed aggregate values for the `id` field. """ id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `platform` field. - """ - platform: NonNumericAggregatedValues - - """ - Computed aggregate values for the `square_footage` field. - """ - square_footage: IntAggregatedValues - - """ - Computed aggregate values for the `url` field. - """ - url: NonNumericAggregatedValues - - """ - Computed aggregate values for the `vehicle_type` field. - """ - vehicle_type: NonNumericAggregatedValues } """ @@ -12917,13 +12318,6 @@ input StoreFilterInput { """ active: BooleanFilterInput - """ - Used to filter on the `address` field. - - When `null` or an empty object is passed, matches all documents. - """ - address: StringFilterInput - """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. @@ -12945,20 +12339,6 @@ input StoreFilterInput { """ any_of: [StoreFilterInput!] - """ - Used to filter on the `current_location` field. - - When `null` or an empty object is passed, matches all documents. - """ - current_location: StringFilterInput - - """ - Used to filter on the `customer_facing` field. - - When `null` or an empty object is passed, matches all documents. - """ - customer_facing: BooleanFilterInput - """ Used to filter on the `established_on` field. @@ -12980,34 +12360,6 @@ input StoreFilterInput { When `null` or an empty object is passed, matches no documents. """ not: StoreFilterInput - - """ - Used to filter on the `platform` field. - - When `null` or an empty object is passed, matches all documents. - """ - platform: StringFilterInput - - """ - Used to filter on the `square_footage` field. - - When `null` or an empty object is passed, matches all documents. - """ - square_footage: IntFilterInput - - """ - Used to filter on the `url` field. - - When `null` or an empty object is passed, matches all documents. - """ - url: StringFilterInput - - """ - Used to filter on the `vehicle_type` field. - - When `null` or an empty object is passed, matches all documents. - """ - vehicle_type: StringFilterInput } """ @@ -13019,106 +12371,26 @@ type StoreGroupedBy { """ active: Boolean - """ - The `address` field value for this group. - """ - address: String - - """ - The `current_location` field value for this group. - """ - current_location: String - - """ - The `customer_facing` field value for this group. - """ - customer_facing: Boolean - """ Offers the different grouping options for the `established_on` value within this group. """ established_on: DateGroupedBy - - """ - The `platform` field value for this group. - """ - platform: String - - """ - The `square_footage` field value for this group. - """ - square_footage: Int - - """ - The `url` field value for this group. - """ - url: String - - """ - The `vehicle_type` field value for this group. - """ - vehicle_type: String } """ Type used to request desired `Store` search highlight fields. """ type StoreHighlights { - """ - Search highlights for the `address`, providing snippets of the matching text. - """ - address: [String!]! - - """ - Search highlights for the `current_location`, providing snippets of the matching text. - """ - current_location: [String!]! - """ Search highlights for the `id`, providing snippets of the matching text. """ id: [String!]! - - """ - Search highlights for the `platform`, providing snippets of the matching text. - """ - platform: [String!]! - - """ - Search highlights for the `url`, providing snippets of the matching text. - """ - url: [String!]! - - """ - Search highlights for the `vehicle_type`, providing snippets of the matching text. - """ - vehicle_type: [String!]! } """ Enumerates the ways `Store`s can be sorted. """ enum StoreSortOrderInput { - """ - Sorts ascending by the `address` field. - """ - address_ASC - - """ - Sorts descending by the `address` field. - """ - address_DESC - - """ - Sorts ascending by the `current_location` field. - """ - current_location_ASC - - """ - Sorts descending by the `current_location` field. - """ - current_location_DESC - """ Sorts ascending by the `established_on` field. """ @@ -13138,46 +12410,6 @@ enum StoreSortOrderInput { Sorts descending by the `id` field. """ id_DESC - - """ - Sorts ascending by the `platform` field. - """ - platform_ASC - - """ - Sorts descending by the `platform` field. - """ - platform_DESC - - """ - Sorts ascending by the `square_footage` field. - """ - square_footage_ASC - - """ - Sorts descending by the `square_footage` field. - """ - square_footage_DESC - - """ - Sorts ascending by the `url` field. - """ - url_ASC - - """ - Sorts descending by the `url` field. - """ - url_DESC - - """ - Sorts ascending by the `vehicle_type` field. - """ - vehicle_type_ASC - - """ - Sorts descending by the `vehicle_type` field. - """ - vehicle_type_DESC } """ @@ -15734,9 +14966,7 @@ input TextFilterInput { type ThirdPartyWholesale implements DistributionChannel { active: Boolean - contract_terms: String id: ID! - partner_name: String } """ diff --git a/config/schema/artifacts_with_apollo/data_warehouse.yaml b/config/schema/artifacts_with_apollo/data_warehouse.yaml index 057e7ea6a..e6d7bec07 100644 --- a/config/schema/artifacts_with_apollo/data_warehouse.yaml +++ b/config/schema/artifacts_with_apollo/data_warehouse.yaml @@ -35,18 +35,9 @@ tables: table_schema: |- CREATE TABLE IF NOT EXISTS distribution_channels ( id STRING, - url STRING, - platform STRING, established_on DATE, active BOOLEAN, - customer_facing BOOLEAN, - __typename STRING, - address STRING, - square_footage INT, - vehicle_type STRING, - current_location STRING, - partner_name STRING, - contract_terms STRING + __typename STRING ) electrical_parts: table_schema: |- @@ -87,11 +78,8 @@ tables: table_schema: |- CREATE TABLE IF NOT EXISTS physical_stores ( id STRING, - address STRING, - square_footage INT, established_on DATE, - active BOOLEAN, - customer_facing BOOLEAN + active BOOLEAN ) sponsors: table_schema: |- diff --git a/config/schema/artifacts_with_apollo/datastore_config.yaml b/config/schema/artifacts_with_apollo/datastore_config.yaml index 02d7206a2..3ca61c0c5 100644 --- a/config/schema/artifacts_with_apollo/datastore_config.yaml +++ b/config/schema/artifacts_with_apollo/datastore_config.yaml @@ -1601,29 +1601,11 @@ indices: properties: id: type: keyword - url: - type: keyword - platform: - type: keyword established_on: type: date format: strict_date active: type: boolean - customer_facing: - type: boolean - address: - type: keyword - square_footage: - type: integer - vehicle_type: - type: keyword - current_location: - type: keyword - partner_name: - type: keyword - contract_terms: - type: keyword __typename: type: keyword __sources: @@ -1765,17 +1747,11 @@ indices: properties: id: type: keyword - address: - type: keyword - square_footage: - type: integer established_on: type: date format: strict_date active: type: boolean - customer_facing: - type: boolean __sources: type: keyword __versions: diff --git a/config/schema/artifacts_with_apollo/json_schemas.yaml b/config/schema/artifacts_with_apollo/json_schemas.yaml index af47f2cd5..3f0a6f2a3 100644 --- a/config/schema/artifacts_with_apollo/json_schemas.yaml +++ b/config/schema/artifacts_with_apollo/json_schemas.yaml @@ -28,7 +28,6 @@ json_schema_version: 1 - ElectricalPart - Manufacturer - MechanicalPart - - MobileStore - OnlineStore - Person - PhysicalStore @@ -425,46 +424,6 @@ json_schema_version: 1 - created_at - material - manufacturer_id - MobileStore: - type: object - properties: - id: - allOf: - - "$ref": "#/$defs/ID" - - maxLength: 8191 - vehicle_type: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - current_location: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - established_on: - anyOf: - - "$ref": "#/$defs/Date" - - type: 'null' - active: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - __typename: - type: string - const: MobileStore - default: MobileStore - required: - - id - - vehicle_type - - current_location - - established_on - - active - - customer_facing Money: type: object properties: @@ -496,16 +455,6 @@ json_schema_version: 1 allOf: - "$ref": "#/$defs/ID" - maxLength: 8191 - url: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - platform: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' established_on: anyOf: - "$ref": "#/$defs/Date" @@ -514,21 +463,14 @@ json_schema_version: 1 anyOf: - "$ref": "#/$defs/Boolean" - type: 'null' - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' __typename: type: string const: OnlineStore default: OnlineStore required: - id - - url - - platform - established_on - active - - customer_facing Person: type: object properties: @@ -563,14 +505,6 @@ json_schema_version: 1 allOf: - "$ref": "#/$defs/ID" - maxLength: 8191 - address: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - square_footage: - anyOf: - - "$ref": "#/$defs/Int" - - type: 'null' established_on: anyOf: - "$ref": "#/$defs/Date" @@ -579,21 +513,14 @@ json_schema_version: 1 anyOf: - "$ref": "#/$defs/Boolean" - type: 'null' - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' __typename: type: string const: PhysicalStore default: PhysicalStore required: - id - - address - - square_footage - established_on - active - - customer_facing Player: type: object properties: @@ -952,18 +879,6 @@ json_schema_version: 1 anyOf: - "$ref": "#/$defs/Boolean" - type: 'null' - partner_name: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - contract_terms: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' __typename: type: string const: ThirdPartyWholesale @@ -971,8 +886,6 @@ json_schema_version: 1 required: - id - active - - partner_name - - contract_terms Untyped: type: - array diff --git a/config/schema/artifacts_with_apollo/json_schemas_by_version/v1.yaml b/config/schema/artifacts_with_apollo/json_schemas_by_version/v1.yaml index 3ba2591d9..bb5079fc4 100644 --- a/config/schema/artifacts_with_apollo/json_schemas_by_version/v1.yaml +++ b/config/schema/artifacts_with_apollo/json_schemas_by_version/v1.yaml @@ -28,7 +28,6 @@ json_schema_version: 1 - ElectricalPart - Manufacturer - MechanicalPart - - MobileStore - OnlineStore - Person - PhysicalStore @@ -539,64 +538,6 @@ json_schema_version: 1 - created_at - material - manufacturer_id - MobileStore: - type: object - properties: - id: - allOf: - - "$ref": "#/$defs/ID" - - maxLength: 8191 - ElasticGraph: - type: ID! - nameInIndex: id - vehicle_type: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - ElasticGraph: - type: String! - nameInIndex: vehicle_type - current_location: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - ElasticGraph: - type: String - nameInIndex: current_location - established_on: - anyOf: - - "$ref": "#/$defs/Date" - - type: 'null' - ElasticGraph: - type: Date - nameInIndex: established_on - active: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - ElasticGraph: - type: Boolean - nameInIndex: active - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - ElasticGraph: - type: Boolean - nameInIndex: customer_facing - __typename: - type: string - const: MobileStore - default: MobileStore - required: - - id - - vehicle_type - - current_location - - established_on - - active - - customer_facing Money: type: object properties: @@ -637,22 +578,6 @@ json_schema_version: 1 ElasticGraph: type: ID! nameInIndex: id - url: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - ElasticGraph: - type: String! - nameInIndex: url - platform: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - ElasticGraph: - type: String - nameInIndex: platform established_on: anyOf: - "$ref": "#/$defs/Date" @@ -667,24 +592,14 @@ json_schema_version: 1 ElasticGraph: type: Boolean nameInIndex: active - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - ElasticGraph: - type: Boolean - nameInIndex: customer_facing __typename: type: string const: OnlineStore default: OnlineStore required: - id - - url - - platform - established_on - active - - customer_facing Person: type: object properties: @@ -731,20 +646,6 @@ json_schema_version: 1 ElasticGraph: type: ID! nameInIndex: id - address: - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - ElasticGraph: - type: String! - nameInIndex: address - square_footage: - anyOf: - - "$ref": "#/$defs/Int" - - type: 'null' - ElasticGraph: - type: Int - nameInIndex: square_footage established_on: anyOf: - "$ref": "#/$defs/Date" @@ -759,24 +660,14 @@ json_schema_version: 1 ElasticGraph: type: Boolean nameInIndex: active - customer_facing: - anyOf: - - "$ref": "#/$defs/Boolean" - - type: 'null' - ElasticGraph: - type: Boolean - nameInIndex: customer_facing __typename: type: string const: PhysicalStore default: PhysicalStore required: - id - - address - - square_footage - established_on - active - - customer_facing Player: type: object properties: @@ -1291,24 +1182,6 @@ json_schema_version: 1 ElasticGraph: type: Boolean nameInIndex: active - partner_name: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - ElasticGraph: - type: String - nameInIndex: partner_name - contract_terms: - anyOf: - - allOf: - - "$ref": "#/$defs/String" - - maxLength: 8191 - - type: 'null' - ElasticGraph: - type: String - nameInIndex: contract_terms __typename: type: string const: ThirdPartyWholesale @@ -1316,8 +1189,6 @@ json_schema_version: 1 required: - id - active - - partner_name - - contract_terms Untyped: type: - array diff --git a/config/schema/artifacts_with_apollo/runtime_metadata.yaml b/config/schema/artifacts_with_apollo/runtime_metadata.yaml index 6b85eb20a..4fd4d59a5 100644 --- a/config/schema/artifacts_with_apollo/runtime_metadata.yaml +++ b/config/schema/artifacts_with_apollo/runtime_metadata.yaml @@ -177,30 +177,6 @@ enum_types_by_name: datastore_abbreviation: yd DistributionChannelSortOrderInput: values_by_name: - address_ASC: - sort_field: - direction: asc - field_path: address - address_DESC: - sort_field: - direction: desc - field_path: address - contract_terms_ASC: - sort_field: - direction: asc - field_path: contract_terms - contract_terms_DESC: - sort_field: - direction: desc - field_path: contract_terms - current_location_ASC: - sort_field: - direction: asc - field_path: current_location - current_location_DESC: - sort_field: - direction: desc - field_path: current_location established_on_ASC: sort_field: direction: asc @@ -217,46 +193,6 @@ enum_types_by_name: sort_field: direction: desc field_path: id - partner_name_ASC: - sort_field: - direction: asc - field_path: partner_name - partner_name_DESC: - sort_field: - direction: desc - field_path: partner_name - platform_ASC: - sort_field: - direction: asc - field_path: platform - platform_DESC: - sort_field: - direction: desc - field_path: platform - square_footage_ASC: - sort_field: - direction: asc - field_path: square_footage - square_footage_DESC: - sort_field: - direction: desc - field_path: square_footage - url_ASC: - sort_field: - direction: asc - field_path: url - url_DESC: - sort_field: - direction: desc - field_path: url - vehicle_type_ASC: - sort_field: - direction: asc - field_path: vehicle_type - vehicle_type_DESC: - sort_field: - direction: desc - field_path: vehicle_type ElectricalPartSortOrderInput: values_by_name: created_at_ASC: @@ -929,14 +865,6 @@ enum_types_by_name: field_path: voltage PhysicalStoreSortOrderInput: values_by_name: - address_ASC: - sort_field: - direction: asc - field_path: address - address_DESC: - sort_field: - direction: desc - field_path: address established_on_ASC: sort_field: direction: asc @@ -953,32 +881,8 @@ enum_types_by_name: sort_field: direction: desc field_path: id - square_footage_ASC: - sort_field: - direction: asc - field_path: square_footage - square_footage_DESC: - sort_field: - direction: desc - field_path: square_footage RetailSortOrderInput: values_by_name: - address_ASC: - sort_field: - direction: asc - field_path: address - address_DESC: - sort_field: - direction: desc - field_path: address - current_location_ASC: - sort_field: - direction: asc - field_path: current_location - current_location_DESC: - sort_field: - direction: desc - field_path: current_location established_on_ASC: sort_field: direction: asc @@ -995,38 +899,6 @@ enum_types_by_name: sort_field: direction: desc field_path: id - platform_ASC: - sort_field: - direction: asc - field_path: platform - platform_DESC: - sort_field: - direction: desc - field_path: platform - square_footage_ASC: - sort_field: - direction: asc - field_path: square_footage - square_footage_DESC: - sort_field: - direction: desc - field_path: square_footage - url_ASC: - sort_field: - direction: asc - field_path: url - url_DESC: - sort_field: - direction: desc - field_path: url - vehicle_type_ASC: - sort_field: - direction: asc - field_path: vehicle_type - vehicle_type_DESC: - sort_field: - direction: desc - field_path: vehicle_type SponsorSortOrderInput: values_by_name: id_ASC: @@ -1047,22 +919,6 @@ enum_types_by_name: field_path: name StoreSortOrderInput: values_by_name: - address_ASC: - sort_field: - direction: asc - field_path: address - address_DESC: - sort_field: - direction: desc - field_path: address - current_location_ASC: - sort_field: - direction: asc - field_path: current_location - current_location_DESC: - sort_field: - direction: desc - field_path: current_location established_on_ASC: sort_field: direction: asc @@ -1079,38 +935,6 @@ enum_types_by_name: sort_field: direction: desc field_path: id - platform_ASC: - sort_field: - direction: asc - field_path: platform - platform_DESC: - sort_field: - direction: desc - field_path: platform - square_footage_ASC: - sort_field: - direction: asc - field_path: square_footage - square_footage_DESC: - sort_field: - direction: desc - field_path: square_footage - url_ASC: - sort_field: - direction: asc - field_path: url - url_DESC: - sort_field: - direction: desc - field_path: url - vehicle_type_ASC: - sort_field: - direction: asc - field_path: vehicle_type - vehicle_type_DESC: - sort_field: - direction: desc - field_path: vehicle_type TeamSortOrderInput: values_by_name: country_code_ASC: @@ -2053,28 +1877,10 @@ index_definitions_by_name: fields_by_path: active: source: __self - address: - source: __self - contract_terms: - source: __self - current_location: - source: __self - customer_facing: - source: __self established_on: source: __self id: source: __self - partner_name: - source: __self - platform: - source: __self - square_footage: - source: __self - url: - source: __self - vehicle_type: - source: __self route_with: id electrical_parts: current_sources: @@ -2151,16 +1957,10 @@ index_definitions_by_name: fields_by_path: active: source: __self - address: - source: __self - customer_facing: - source: __self established_on: source: __self id: source: __self - square_footage: - source: __self route_with: id sponsors: current_sources: @@ -3933,39 +3733,12 @@ object_types_by_name: active: resolver: name: get_record_field_value - address: - resolver: - name: get_record_field_value - contract_terms: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - partner_name: - resolver: - name: get_record_field_value - platform: - resolver: - name: get_record_field_value - square_footage: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels DistributionChannelAggregatedValues: @@ -3973,39 +3746,12 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - contract_terms: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - partner_name: - resolver: - name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead DistributionChannelAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: @@ -4075,62 +3821,14 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - contract_terms: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead - partner_name: - resolver: - name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead DistributionChannelHighlights: graphql_fields_by_name: - address: - resolver: - name: get_record_field_value - contract_terms: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value - partner_name: - resolver: - name: get_record_field_value - platform: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value ElectricalPart: graphql_fields_by_name: component_aggregations: @@ -4930,58 +4628,6 @@ object_types_by_name: name: resolver: name: get_record_field_value - MobileStore: - graphql_fields_by_name: - active: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value - established_on: - resolver: - name: get_record_field_value - id: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value - index_definition_names: - - distribution_channels - update_targets: - - data_params: - __typename: - cardinality: one - active: - cardinality: one - current_location: - cardinality: one - customer_facing: - cardinality: one - established_on: - cardinality: one - vehicle_type: - cardinality: one - id_source: id - metadata_params: - relationship: - value: __self - sourceId: - cardinality: one - source_path: id - sourceType: - cardinality: one - source_path: type - version: - cardinality: one - relationship: __self - routing_value_source: id - script_id: update_index_data_1fdfaf1c9261c96019decc89b515bd9a - type: MobileStore Money: graphql_fields_by_name: amount_cents: @@ -5827,21 +5473,12 @@ object_types_by_name: active: resolver: name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels update_targets: @@ -5850,14 +5487,8 @@ object_types_by_name: cardinality: one active: cardinality: one - customer_facing: - cardinality: one established_on: cardinality: one - platform: - cardinality: one - url: - cardinality: one id_source: id metadata_params: relationship: @@ -6102,35 +5733,20 @@ object_types_by_name: active: resolver: name: get_record_field_value - address: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - square_footage: - resolver: - name: get_record_field_value index_definition_names: - physical_stores update_targets: - data_params: active: cardinality: one - address: - cardinality: one - customer_facing: - cardinality: one established_on: cardinality: one - square_footage: - cardinality: one id_source: id metadata_params: relationship: @@ -6152,21 +5768,12 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead PhysicalStoreAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: @@ -6236,23 +5843,11 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead PhysicalStoreHighlights: graphql_fields_by_name: - address: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value @@ -6517,33 +6112,12 @@ object_types_by_name: active: resolver: name: get_record_field_value - address: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - square_footage: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels RetailAggregatedValues: @@ -6551,33 +6125,12 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead RetailAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: @@ -6647,50 +6200,14 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead RetailHighlights: graphql_fields_by_name: - address: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value SearchHighlight: graphql_fields_by_name: path: @@ -6894,33 +6411,12 @@ object_types_by_name: active: resolver: name: get_record_field_value - address: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value - customer_facing: - resolver: - name: get_record_field_value established_on: resolver: name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - square_footage: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels StoreAggregatedValues: @@ -6928,33 +6424,12 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead id: resolver: name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead StoreAggregation: elasticgraph_category: indexed_aggregation graphql_fields_by_name: @@ -7024,50 +6499,14 @@ object_types_by_name: active: resolver: name: object_with_lookahead - address: - resolver: - name: object_with_lookahead - current_location: - resolver: - name: object_with_lookahead - customer_facing: - resolver: - name: object_with_lookahead established_on: resolver: name: object_with_lookahead - platform: - resolver: - name: object_with_lookahead - square_footage: - resolver: - name: object_with_lookahead - url: - resolver: - name: object_with_lookahead - vehicle_type: - resolver: - name: object_with_lookahead StoreHighlights: graphql_fields_by_name: - address: - resolver: - name: get_record_field_value - current_location: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value - platform: - resolver: - name: get_record_field_value - url: - resolver: - name: get_record_field_value - vehicle_type: - resolver: - name: get_record_field_value StringConnection: elasticgraph_category: relay_connection graphql_fields_by_name: @@ -8006,15 +7445,9 @@ object_types_by_name: active: resolver: name: get_record_field_value - contract_terms: - resolver: - name: get_record_field_value id: resolver: name: get_record_field_value - partner_name: - resolver: - name: get_record_field_value index_definition_names: - distribution_channels update_targets: @@ -8023,10 +7456,6 @@ object_types_by_name: cardinality: one active: cardinality: one - contract_terms: - cardinality: one - partner_name: - cardinality: one id_source: id metadata_params: relationship: diff --git a/config/schema/artifacts_with_apollo/schema.graphql b/config/schema/artifacts_with_apollo/schema.graphql index 8f455456e..bf57a0c9e 100644 --- a/config/schema/artifacts_with_apollo/schema.graphql +++ b/config/schema/artifacts_with_apollo/schema.graphql @@ -2807,26 +2807,6 @@ type DistributionChannelAggregatedValues { """ active: NonNumericAggregatedValues - """ - Computed aggregate values for the `address` field. - """ - address: NonNumericAggregatedValues - - """ - Computed aggregate values for the `contract_terms` field. - """ - contract_terms: NonNumericAggregatedValues - - """ - Computed aggregate values for the `current_location` field. - """ - current_location: NonNumericAggregatedValues - - """ - Computed aggregate values for the `customer_facing` field. - """ - customer_facing: NonNumericAggregatedValues - """ Computed aggregate values for the `established_on` field. """ @@ -2836,31 +2816,6 @@ type DistributionChannelAggregatedValues { Computed aggregate values for the `id` field. """ id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `partner_name` field. - """ - partner_name: NonNumericAggregatedValues - - """ - Computed aggregate values for the `platform` field. - """ - platform: NonNumericAggregatedValues - - """ - Computed aggregate values for the `square_footage` field. - """ - square_footage: IntAggregatedValues - - """ - Computed aggregate values for the `url` field. - """ - url: NonNumericAggregatedValues - - """ - Computed aggregate values for the `vehicle_type` field. - """ - vehicle_type: NonNumericAggregatedValues } """ @@ -2998,13 +2953,6 @@ input DistributionChannelFilterInput { """ active: BooleanFilterInput - """ - Used to filter on the `address` field. - - When `null` or an empty object is passed, matches all documents. - """ - address: StringFilterInput - """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. @@ -3026,27 +2974,6 @@ input DistributionChannelFilterInput { """ any_of: [DistributionChannelFilterInput!] - """ - Used to filter on the `contract_terms` field. - - When `null` or an empty object is passed, matches all documents. - """ - contract_terms: StringFilterInput - - """ - Used to filter on the `current_location` field. - - When `null` or an empty object is passed, matches all documents. - """ - current_location: StringFilterInput - - """ - Used to filter on the `customer_facing` field. - - When `null` or an empty object is passed, matches all documents. - """ - customer_facing: BooleanFilterInput - """ Used to filter on the `established_on` field. @@ -3068,41 +2995,6 @@ input DistributionChannelFilterInput { When `null` or an empty object is passed, matches no documents. """ not: DistributionChannelFilterInput - - """ - Used to filter on the `partner_name` field. - - When `null` or an empty object is passed, matches all documents. - """ - partner_name: StringFilterInput - - """ - Used to filter on the `platform` field. - - When `null` or an empty object is passed, matches all documents. - """ - platform: StringFilterInput - - """ - Used to filter on the `square_footage` field. - - When `null` or an empty object is passed, matches all documents. - """ - square_footage: IntFilterInput - - """ - Used to filter on the `url` field. - - When `null` or an empty object is passed, matches all documents. - """ - url: StringFilterInput - - """ - Used to filter on the `vehicle_type` field. - - When `null` or an empty object is passed, matches all documents. - """ - vehicle_type: StringFilterInput } """ @@ -3114,136 +3006,26 @@ type DistributionChannelGroupedBy { """ active: Boolean - """ - The `address` field value for this group. - """ - address: String - - """ - The `contract_terms` field value for this group. - """ - contract_terms: String - - """ - The `current_location` field value for this group. - """ - current_location: String - - """ - The `customer_facing` field value for this group. - """ - customer_facing: Boolean - """ Offers the different grouping options for the `established_on` value within this group. """ established_on: DateGroupedBy - - """ - The `partner_name` field value for this group. - """ - partner_name: String - - """ - The `platform` field value for this group. - """ - platform: String - - """ - The `square_footage` field value for this group. - """ - square_footage: Int - - """ - The `url` field value for this group. - """ - url: String - - """ - The `vehicle_type` field value for this group. - """ - vehicle_type: String } """ Type used to request desired `DistributionChannel` search highlight fields. """ type DistributionChannelHighlights { - """ - Search highlights for the `address`, providing snippets of the matching text. - """ - address: [String!]! - - """ - Search highlights for the `contract_terms`, providing snippets of the matching text. - """ - contract_terms: [String!]! - - """ - Search highlights for the `current_location`, providing snippets of the matching text. - """ - current_location: [String!]! - """ Search highlights for the `id`, providing snippets of the matching text. """ id: [String!]! - - """ - Search highlights for the `partner_name`, providing snippets of the matching text. - """ - partner_name: [String!]! - - """ - Search highlights for the `platform`, providing snippets of the matching text. - """ - platform: [String!]! - - """ - Search highlights for the `url`, providing snippets of the matching text. - """ - url: [String!]! - - """ - Search highlights for the `vehicle_type`, providing snippets of the matching text. - """ - vehicle_type: [String!]! } """ Enumerates the ways `DistributionChannel`s can be sorted. """ enum DistributionChannelSortOrderInput { - """ - Sorts ascending by the `address` field. - """ - address_ASC - - """ - Sorts descending by the `address` field. - """ - address_DESC - - """ - Sorts ascending by the `contract_terms` field. - """ - contract_terms_ASC - - """ - Sorts descending by the `contract_terms` field. - """ - contract_terms_DESC - - """ - Sorts ascending by the `current_location` field. - """ - current_location_ASC - - """ - Sorts descending by the `current_location` field. - """ - current_location_DESC - """ Sorts ascending by the `established_on` field. """ @@ -3263,56 +3045,6 @@ enum DistributionChannelSortOrderInput { Sorts descending by the `id` field. """ id_DESC - - """ - Sorts ascending by the `partner_name` field. - """ - partner_name_ASC - - """ - Sorts descending by the `partner_name` field. - """ - partner_name_DESC - - """ - Sorts ascending by the `platform` field. - """ - platform_ASC - - """ - Sorts descending by the `platform` field. - """ - platform_DESC - - """ - Sorts ascending by the `square_footage` field. - """ - square_footage_ASC - - """ - Sorts descending by the `square_footage` field. - """ - square_footage_DESC - - """ - Sorts ascending by the `url` field. - """ - url_ASC - - """ - Sorts descending by the `url` field. - """ - url_DESC - - """ - Sorts ascending by the `vehicle_type` field. - """ - vehicle_type_ASC - - """ - Sorts descending by the `vehicle_type` field. - """ - vehicle_type_DESC } type ElectricalPart implements NamedEntity @key(fields: "id") { @@ -6212,15 +5944,6 @@ enum MechanicalPartSortOrderInput { name_DESC } -type MobileStore implements DistributionChannel & Retail & Store @key(fields: "id") { - active: Boolean - current_location: String - customer_facing: Boolean - established_on: Date - id: ID! - vehicle_type: String! -} - type Money { amount_cents: Int currency: String! @@ -8318,11 +8041,8 @@ type NonNumericAggregatedValues @shareable { type OnlineStore implements DistributionChannel & Retail & Store @key(fields: "id") { active: Boolean - customer_facing: Boolean established_on: Date id: ID! - platform: String - url: String! } """ @@ -8798,11 +8518,8 @@ type PersonHighlights { type PhysicalStore implements DistributionChannel & Retail & Store @key(fields: "id") { active: Boolean - address: String! - customer_facing: Boolean established_on: Date id: ID! - square_footage: Int } """ @@ -8814,16 +8531,6 @@ type PhysicalStoreAggregatedValues { """ active: NonNumericAggregatedValues - """ - Computed aggregate values for the `address` field. - """ - address: NonNumericAggregatedValues - - """ - Computed aggregate values for the `customer_facing` field. - """ - customer_facing: NonNumericAggregatedValues - """ Computed aggregate values for the `established_on` field. """ @@ -8833,11 +8540,6 @@ type PhysicalStoreAggregatedValues { Computed aggregate values for the `id` field. """ id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `square_footage` field. - """ - square_footage: IntAggregatedValues } """ @@ -8974,13 +8676,6 @@ input PhysicalStoreFilterInput { """ active: BooleanFilterInput - """ - Used to filter on the `address` field. - - When `null` or an empty object is passed, matches all documents. - """ - address: StringFilterInput - """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. @@ -9002,13 +8697,6 @@ input PhysicalStoreFilterInput { """ any_of: [PhysicalStoreFilterInput!] - """ - Used to filter on the `customer_facing` field. - - When `null` or an empty object is passed, matches all documents. - """ - customer_facing: BooleanFilterInput - """ Used to filter on the `established_on` field. @@ -9030,13 +8718,6 @@ input PhysicalStoreFilterInput { When `null` or an empty object is passed, matches no documents. """ not: PhysicalStoreFilterInput - - """ - Used to filter on the `square_footage` field. - - When `null` or an empty object is passed, matches all documents. - """ - square_footage: IntFilterInput } """ @@ -9048,36 +8729,16 @@ type PhysicalStoreGroupedBy { """ active: Boolean - """ - The `address` field value for this group. - """ - address: String - - """ - The `customer_facing` field value for this group. - """ - customer_facing: Boolean - """ Offers the different grouping options for the `established_on` value within this group. """ established_on: DateGroupedBy - - """ - The `square_footage` field value for this group. - """ - square_footage: Int } """ Type used to request desired `PhysicalStore` search highlight fields. """ type PhysicalStoreHighlights { - """ - Search highlights for the `address`, providing snippets of the matching text. - """ - address: [String!]! - """ Search highlights for the `id`, providing snippets of the matching text. """ @@ -9088,16 +8749,6 @@ type PhysicalStoreHighlights { Enumerates the ways `PhysicalStore`s can be sorted. """ enum PhysicalStoreSortOrderInput { - """ - Sorts ascending by the `address` field. - """ - address_ASC - - """ - Sorts descending by the `address` field. - """ - address_DESC - """ Sorts ascending by the `established_on` field. """ @@ -9117,16 +8768,6 @@ enum PhysicalStoreSortOrderInput { Sorts descending by the `id` field. """ id_DESC - - """ - Sorts ascending by the `square_footage` field. - """ - square_footage_ASC - - """ - Sorts descending by the `square_footage` field. - """ - square_footage_DESC } type Player { @@ -11790,21 +11431,6 @@ type RetailAggregatedValues { """ active: NonNumericAggregatedValues - """ - Computed aggregate values for the `address` field. - """ - address: NonNumericAggregatedValues - - """ - Computed aggregate values for the `current_location` field. - """ - current_location: NonNumericAggregatedValues - - """ - Computed aggregate values for the `customer_facing` field. - """ - customer_facing: NonNumericAggregatedValues - """ Computed aggregate values for the `established_on` field. """ @@ -11814,26 +11440,6 @@ type RetailAggregatedValues { Computed aggregate values for the `id` field. """ id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `platform` field. - """ - platform: NonNumericAggregatedValues - - """ - Computed aggregate values for the `square_footage` field. - """ - square_footage: IntAggregatedValues - - """ - Computed aggregate values for the `url` field. - """ - url: NonNumericAggregatedValues - - """ - Computed aggregate values for the `vehicle_type` field. - """ - vehicle_type: NonNumericAggregatedValues } """ @@ -11970,13 +11576,6 @@ input RetailFilterInput { """ active: BooleanFilterInput - """ - Used to filter on the `address` field. - - When `null` or an empty object is passed, matches all documents. - """ - address: StringFilterInput - """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. @@ -11998,20 +11597,6 @@ input RetailFilterInput { """ any_of: [RetailFilterInput!] - """ - Used to filter on the `current_location` field. - - When `null` or an empty object is passed, matches all documents. - """ - current_location: StringFilterInput - - """ - Used to filter on the `customer_facing` field. - - When `null` or an empty object is passed, matches all documents. - """ - customer_facing: BooleanFilterInput - """ Used to filter on the `established_on` field. @@ -12033,34 +11618,6 @@ input RetailFilterInput { When `null` or an empty object is passed, matches no documents. """ not: RetailFilterInput - - """ - Used to filter on the `platform` field. - - When `null` or an empty object is passed, matches all documents. - """ - platform: StringFilterInput - - """ - Used to filter on the `square_footage` field. - - When `null` or an empty object is passed, matches all documents. - """ - square_footage: IntFilterInput - - """ - Used to filter on the `url` field. - - When `null` or an empty object is passed, matches all documents. - """ - url: StringFilterInput - - """ - Used to filter on the `vehicle_type` field. - - When `null` or an empty object is passed, matches all documents. - """ - vehicle_type: StringFilterInput } """ @@ -12072,106 +11629,26 @@ type RetailGroupedBy { """ active: Boolean - """ - The `address` field value for this group. - """ - address: String - - """ - The `current_location` field value for this group. - """ - current_location: String - - """ - The `customer_facing` field value for this group. - """ - customer_facing: Boolean - """ Offers the different grouping options for the `established_on` value within this group. """ established_on: DateGroupedBy - - """ - The `platform` field value for this group. - """ - platform: String - - """ - The `square_footage` field value for this group. - """ - square_footage: Int - - """ - The `url` field value for this group. - """ - url: String - - """ - The `vehicle_type` field value for this group. - """ - vehicle_type: String } """ Type used to request desired `Retail` search highlight fields. """ type RetailHighlights { - """ - Search highlights for the `address`, providing snippets of the matching text. - """ - address: [String!]! - - """ - Search highlights for the `current_location`, providing snippets of the matching text. - """ - current_location: [String!]! - """ Search highlights for the `id`, providing snippets of the matching text. """ id: [String!]! - - """ - Search highlights for the `platform`, providing snippets of the matching text. - """ - platform: [String!]! - - """ - Search highlights for the `url`, providing snippets of the matching text. - """ - url: [String!]! - - """ - Search highlights for the `vehicle_type`, providing snippets of the matching text. - """ - vehicle_type: [String!]! } """ Enumerates the ways `Retail`s can be sorted. """ enum RetailSortOrderInput { - """ - Sorts ascending by the `address` field. - """ - address_ASC - - """ - Sorts descending by the `address` field. - """ - address_DESC - - """ - Sorts ascending by the `current_location` field. - """ - current_location_ASC - - """ - Sorts descending by the `current_location` field. - """ - current_location_DESC - """ Sorts ascending by the `established_on` field. """ @@ -12191,46 +11668,6 @@ enum RetailSortOrderInput { Sorts descending by the `id` field. """ id_DESC - - """ - Sorts ascending by the `platform` field. - """ - platform_ASC - - """ - Sorts descending by the `platform` field. - """ - platform_DESC - - """ - Sorts ascending by the `square_footage` field. - """ - square_footage_ASC - - """ - Sorts descending by the `square_footage` field. - """ - square_footage_DESC - - """ - Sorts ascending by the `url` field. - """ - url_ASC - - """ - Sorts descending by the `url` field. - """ - url_DESC - - """ - Sorts ascending by the `vehicle_type` field. - """ - vehicle_type_ASC - - """ - Sorts descending by the `vehicle_type` field. - """ - vehicle_type_DESC } """ @@ -13046,7 +12483,6 @@ input SponsorshipListFilterInput { interface Store implements DistributionChannel & Retail { active: Boolean - customer_facing: Boolean established_on: Date id: ID! } @@ -13060,21 +12496,6 @@ type StoreAggregatedValues { """ active: NonNumericAggregatedValues - """ - Computed aggregate values for the `address` field. - """ - address: NonNumericAggregatedValues - - """ - Computed aggregate values for the `current_location` field. - """ - current_location: NonNumericAggregatedValues - - """ - Computed aggregate values for the `customer_facing` field. - """ - customer_facing: NonNumericAggregatedValues - """ Computed aggregate values for the `established_on` field. """ @@ -13084,26 +12505,6 @@ type StoreAggregatedValues { Computed aggregate values for the `id` field. """ id: NonNumericAggregatedValues - - """ - Computed aggregate values for the `platform` field. - """ - platform: NonNumericAggregatedValues - - """ - Computed aggregate values for the `square_footage` field. - """ - square_footage: IntAggregatedValues - - """ - Computed aggregate values for the `url` field. - """ - url: NonNumericAggregatedValues - - """ - Computed aggregate values for the `vehicle_type` field. - """ - vehicle_type: NonNumericAggregatedValues } """ @@ -13240,13 +12641,6 @@ input StoreFilterInput { """ active: BooleanFilterInput - """ - Used to filter on the `address` field. - - When `null` or an empty object is passed, matches all documents. - """ - address: StringFilterInput - """ Matches records where all of the provided sub-filters evaluate to true. This works just like an AND operator in SQL. @@ -13268,20 +12662,6 @@ input StoreFilterInput { """ any_of: [StoreFilterInput!] - """ - Used to filter on the `current_location` field. - - When `null` or an empty object is passed, matches all documents. - """ - current_location: StringFilterInput - - """ - Used to filter on the `customer_facing` field. - - When `null` or an empty object is passed, matches all documents. - """ - customer_facing: BooleanFilterInput - """ Used to filter on the `established_on` field. @@ -13303,34 +12683,6 @@ input StoreFilterInput { When `null` or an empty object is passed, matches no documents. """ not: StoreFilterInput - - """ - Used to filter on the `platform` field. - - When `null` or an empty object is passed, matches all documents. - """ - platform: StringFilterInput - - """ - Used to filter on the `square_footage` field. - - When `null` or an empty object is passed, matches all documents. - """ - square_footage: IntFilterInput - - """ - Used to filter on the `url` field. - - When `null` or an empty object is passed, matches all documents. - """ - url: StringFilterInput - - """ - Used to filter on the `vehicle_type` field. - - When `null` or an empty object is passed, matches all documents. - """ - vehicle_type: StringFilterInput } """ @@ -13342,106 +12694,26 @@ type StoreGroupedBy { """ active: Boolean - """ - The `address` field value for this group. - """ - address: String - - """ - The `current_location` field value for this group. - """ - current_location: String - - """ - The `customer_facing` field value for this group. - """ - customer_facing: Boolean - """ Offers the different grouping options for the `established_on` value within this group. """ established_on: DateGroupedBy - - """ - The `platform` field value for this group. - """ - platform: String - - """ - The `square_footage` field value for this group. - """ - square_footage: Int - - """ - The `url` field value for this group. - """ - url: String - - """ - The `vehicle_type` field value for this group. - """ - vehicle_type: String } """ Type used to request desired `Store` search highlight fields. """ type StoreHighlights { - """ - Search highlights for the `address`, providing snippets of the matching text. - """ - address: [String!]! - - """ - Search highlights for the `current_location`, providing snippets of the matching text. - """ - current_location: [String!]! - """ Search highlights for the `id`, providing snippets of the matching text. """ id: [String!]! - - """ - Search highlights for the `platform`, providing snippets of the matching text. - """ - platform: [String!]! - - """ - Search highlights for the `url`, providing snippets of the matching text. - """ - url: [String!]! - - """ - Search highlights for the `vehicle_type`, providing snippets of the matching text. - """ - vehicle_type: [String!]! } """ Enumerates the ways `Store`s can be sorted. """ enum StoreSortOrderInput { - """ - Sorts ascending by the `address` field. - """ - address_ASC - - """ - Sorts descending by the `address` field. - """ - address_DESC - - """ - Sorts ascending by the `current_location` field. - """ - current_location_ASC - - """ - Sorts descending by the `current_location` field. - """ - current_location_DESC - """ Sorts ascending by the `established_on` field. """ @@ -13461,46 +12733,6 @@ enum StoreSortOrderInput { Sorts descending by the `id` field. """ id_DESC - - """ - Sorts ascending by the `platform` field. - """ - platform_ASC - - """ - Sorts descending by the `platform` field. - """ - platform_DESC - - """ - Sorts ascending by the `square_footage` field. - """ - square_footage_ASC - - """ - Sorts descending by the `square_footage` field. - """ - square_footage_DESC - - """ - Sorts ascending by the `url` field. - """ - url_ASC - - """ - Sorts descending by the `url` field. - """ - url_DESC - - """ - Sorts ascending by the `vehicle_type` field. - """ - vehicle_type_ASC - - """ - Sorts descending by the `vehicle_type` field. - """ - vehicle_type_DESC } """ @@ -16057,9 +15289,7 @@ input TextFilterInput { type ThirdPartyWholesale implements DistributionChannel @key(fields: "id") { active: Boolean - contract_terms: String id: ID! - partner_name: String } """ @@ -20203,7 +19433,7 @@ In an ElasticGraph schema, this is a union of all indexed types. Not intended for use by clients other than Apollo. """ -union _Entity = Company | Component | Country | ElectricalPart | Manufacturer | MechanicalPart | MobileStore | OnlineStore | Person | PhysicalStore | Sponsor | Team | ThirdPartyWholesale | Widget | WidgetCurrency | WidgetWorkspace +union _Entity = Company | Component | Country | ElectricalPart | Manufacturer | MechanicalPart | OnlineStore | Person | PhysicalStore | Sponsor | Team | ThirdPartyWholesale | Widget | WidgetCurrency | WidgetWorkspace """ An object type required by the [Apollo Federation subgraph diff --git a/config/schema/widgets.rb b/config/schema/widgets.rb index e5fee5896..162ea4785 100644 --- a/config/schema/widgets.rb +++ b/config/schema/widgets.rb @@ -51,14 +51,15 @@ t.subtypes "Person", "Company" end - # Interface type used both as an embedded field and as a root document type. + # Indexed interface type. Person and Company inherit the `named_inventors` index via + # index inheritance rather than declaring it themselves. schema.interface_type "NamedInventor" do |t| t.field "id", "ID!" t.field "name", "String" t.index "named_inventors" end - # Indexed interfae type. + # Indexed interface type. schema.interface_type "NamedEntity" do |t| t.root_query_fields plural: "named_entities" t.field "id", "ID!" @@ -346,7 +347,9 @@ t.index "distribution_channels" end - # Retail branch - multi-level interface inheritance + # Retail and Store form a two-level interface chain under DistributionChannel. This depth is + # intentional: it exercises that __typename filtering works correctly when querying at any + # level of a multi-level hierarchy, not just one level from the root. schema.interface_type "Retail" do |t| t.implements "DistributionChannel" t.root_query_fields plural: "retailers" @@ -360,7 +363,6 @@ t.field "id", "ID!" t.field "active", "Boolean" t.field "established_on", "Date" - t.field "customer_facing", "Boolean" end # ThirdPartyWholesale - concrete type in parallel to Retail branch @@ -368,42 +370,24 @@ t.implements "DistributionChannel" t.field "id", "ID!" t.field "active", "Boolean" - t.field "partner_name", "String" - t.field "contract_terms", "String" end schema.object_type "OnlineStore" do |t| t.implements "Store" t.field "id", "ID!" - t.field "url", "String!" - t.field "platform", "String" # e.g., "Shopify", "WooCommerce" t.field "established_on", "Date" t.field "active", "Boolean" - t.field "customer_facing", "Boolean" end schema.object_type "PhysicalStore" do |t| t.implements "Store" t.field "id", "ID!" - t.field "address", "String!" - t.field "square_footage", "Int" t.field "established_on", "Date" t.field "active", "Boolean" - t.field "customer_facing", "Boolean" t.index "physical_stores" end - schema.object_type "MobileStore" do |t| - t.implements "Store" - t.field "id", "ID!" - t.field "vehicle_type", "String!" # e.g., "food truck", "pop-up cart" - t.field "current_location", "String" - t.field "established_on", "Date" - t.field "active", "Boolean" - t.field "customer_facing", "Boolean" - end - # Note: `Manufacturer` is used in our tests as an example of an indexed type that has no list fields, so we should # not add any list fields to this type in the future. schema.object_type "Manufacturer" do |t| diff --git a/config/settings/development_with_apollo.yaml b/config/settings/development_with_apollo.yaml index cef02dfb4..820386368 100644 --- a/config/settings/development_with_apollo.yaml +++ b/config/settings/development_with_apollo.yaml @@ -26,7 +26,6 @@ datastore: widgets: *main_index_settings widget_workspaces: *main_index_settings sponsors: *main_index_settings - stores: *main_index_settings physical_stores: *main_index_settings distribution_channels: *main_index_settings max_client_retries: 3 diff --git a/config/settings/test.yaml.template b/config/settings/test.yaml.template index df5ec9878..603e8221c 100644 --- a/config/settings/test.yaml.template +++ b/config/settings/test.yaml.template @@ -74,7 +74,6 @@ datastore: "2021-01-01T00:00:00Z": {} widget_workspaces: *main_index_settings sponsors: *main_index_settings - stores: *main_index_settings physical_stores: *main_index_settings distribution_channels: *main_index_settings max_client_retries: 3 diff --git a/elasticgraph-graphql/spec/acceptance/hidden_types_spec.rb b/elasticgraph-graphql/spec/acceptance/hidden_types_spec.rb index 04cf4b928..26fcc2f23 100644 --- a/elasticgraph-graphql/spec/acceptance/hidden_types_spec.rb +++ b/elasticgraph-graphql/spec/acceptance/hidden_types_spec.rb @@ -119,7 +119,7 @@ module ElasticGraph %w[ FloatAggregatedValues IntAggregatedValues JsonSafeLongAggregatedValues LongStringAggregatedValues NonNumericAggregatedValues DateAggregatedValues DateTimeAggregatedValues LocalTimeAggregatedValues - Company Cursor PageInfo Query TextFilterInput GeoLocation MobileStore OnlineStore ThirdPartyWholesale + Company Cursor PageInfo Query TextFilterInput GeoLocation OnlineStore ThirdPartyWholesale DateTimeGroupingOffsetInput DateTimeUnitInput DateTimeTimeOfDayFilterInput DateGroupedBy DateGroupingOffsetInput DateGroupingTruncationUnitInput DateUnitInput DateTimeGroupedBy DateTimeGroupingTruncationUnitInput TimeZone diff --git a/elasticgraph-graphql/spec/acceptance/search_spec.rb b/elasticgraph-graphql/spec/acceptance/search_spec.rb index 4d8e57304..7fd2e215b 100644 --- a/elasticgraph-graphql/spec/acceptance/search_spec.rb +++ b/elasticgraph-graphql/spec/acceptance/search_spec.rb @@ -708,32 +708,28 @@ module ElasticGraph # └── Retail (interface, inherits distribution_channels) # └── Store (interface, inherits distribution_channels) # ├── OnlineStore (concrete, distribution_channels index) - # ├── MobileStore (concrete, distribution_channels index) # └── PhysicalStore (concrete, physical_stores index) # # The key invariant: querying at a sub-interface level (e.g. retailers, stores) must # filter OUT sibling types in the shared index (e.g. ThirdPartyWholesale when querying stores). index_records( - physical_store1 = build(:physical_store, address: "123 Main St, Anytown USA", square_footage: 5000, established_on: "2019-03-10", active: true), - physical_store2 = build(:physical_store, address: "456 Oak Ave, Other City", square_footage: 10000, established_on: "2022-08-05", active: true), - mobile_store1 = build(:mobile_store, vehicle_type: "food truck", current_location: "789 Park Ave, Big City", established_on: "2020-06-15", active: true), - mobile_store2 = build(:mobile_store, vehicle_type: "pop-up cart", current_location: "321 Beach Blvd, Coast Town", established_on: "2021-11-20", active: true), - online_store1 = build(:online_store, url: "https://shop1.example.com", platform: "Shopify", established_on: "2020-01-15", active: true), - online_store2 = build(:online_store, url: "https://shop2.example.com", platform: "WooCommerce", established_on: "2021-06-20", active: true), - build(:third_party_wholesale, partner_name: "Acme Corp", contract_terms: "Net 30", active: true), - wholesale2 = build(:third_party_wholesale, partner_name: "Global Dist", contract_terms: "Net 60", active: false) + physical_store1 = build(:physical_store, established_on: "2019-03-10", active: true), + physical_store2 = build(:physical_store, established_on: "2022-08-05", active: true), + online_store1 = build(:online_store, established_on: "2020-01-15", active: true), + online_store2 = build(:online_store, established_on: "2021-06-20", active: true), + build(:third_party_wholesale, active: true), + wholesale2 = build(:third_party_wholesale, active: false) ) store_fragments = [ "...on PhysicalStore { id __typename established_on }", - "...on MobileStore { id __typename established_on }", "...on OnlineStore { id __typename established_on }" ] all_channel_fragments = store_fragments + ["...on ThirdPartyWholesale { id __typename active }"] - store_typenames = %w[PhysicalStore PhysicalStore MobileStore MobileStore OnlineStore OnlineStore] + store_typenames = %w[PhysicalStore PhysicalStore OnlineStore OnlineStore] - # Querying at the top-level DistributionChannel interface returns all 4 concrete types, + # Querying at the top-level DistributionChannel interface returns all 3 concrete types, # including ThirdPartyWholesale. channels = list_distribution_channels_with(*all_channel_fragments) expect(channels.map { |c| c["__typename"] }).to contain_exactly( @@ -758,7 +754,6 @@ module ElasticGraph # At retailers: established_on filter applies, and ThirdPartyWholesale is still excluded. retailers_after_2020 = list_retailers_with(*store_fragments, filter: {established_on: {gte: "2020-01-01"}}) expect(retailers_after_2020.map { |r| r["id"] }).to contain_exactly( - mobile_store1.fetch(:id), mobile_store2.fetch(:id), online_store1.fetch(:id), online_store2.fetch(:id), physical_store2.fetch(:id) ) @@ -768,9 +763,7 @@ module ElasticGraph expect(stores_sorted.map { |s| s["id"] }).to eq([ physical_store1.fetch(:id), online_store1.fetch(:id), - mobile_store1.fetch(:id), online_store2.fetch(:id), - mobile_store2.fetch(:id), physical_store2.fetch(:id) ]) @@ -786,10 +779,9 @@ module ElasticGraph # Filter by ID spans indices and respects the __typename scope at each query level. stores_by_id = list_stores_with( *store_fragments, - filter: {id: {equal_to_any_of: [mobile_store1.fetch(:id), physical_store1.fetch(:id), online_store1.fetch(:id)]}} + filter: {id: {equal_to_any_of: [physical_store1.fetch(:id), online_store1.fetch(:id)]}} ) expect(stores_by_id.map { |s| [s["id"], s["__typename"]] }).to contain_exactly( - [mobile_store1.fetch(:id), "MobileStore"], [physical_store1.fetch(:id), "PhysicalStore"], [online_store1.fetch(:id), "OnlineStore"] ) diff --git a/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/requested_fields_spec.rb b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/requested_fields_spec.rb index b94381d27..e44e01ff3 100644 --- a/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/requested_fields_spec.rb +++ b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/requested_fields_spec.rb @@ -43,7 +43,7 @@ class QueryAdapter t.field "name", "String" end - # Indexed interfae type. + # Indexed interface type. schema.interface_type "NamedEntity" do |t| t.root_query_fields plural: "named_entities" t.field "id", "ID" @@ -369,6 +369,21 @@ class QueryAdapter expect(query.request_all_highlights).to be false end + it "requests __typename when using `nodes` on an abstract indexed type" do + query = datastore_query_for(:Query, :named_entities, <<~QUERY) + query { + named_entities { + nodes { + id + name + } + } + } + QUERY + + expect(query.requested_fields).to include("__typename") + end + it "ignores relay connection sub-fields that are not directly under `edges.node` (e.g. `page_info`)" do query = datastore_query_for(:Query, :widgets, <<~QUERY) query { diff --git a/spec_support/lib/elastic_graph/spec_support/factories/widgets.rb b/spec_support/lib/elastic_graph/spec_support/factories/widgets.rb index f63ff2ba5..c8c94efe6 100644 --- a/spec_support/lib/elastic_graph/spec_support/factories/widgets.rb +++ b/spec_support/lib/elastic_graph/spec_support/factories/widgets.rb @@ -215,35 +215,18 @@ factory :online_store, parent: :indexed_type do __typename { "OnlineStore" } - url { "https://#{Faker::Internet.domain_name}" } - platform { Faker::Base.sample(["Shopify", "WooCommerce", "Magento", "Custom"]) } established_on { Faker::Date.between(from: recent_date - 365, to: recent_date).iso8601 } active { true } - customer_facing { true } end factory :physical_store, parent: :indexed_type do __typename { "PhysicalStore" } - address { Faker::Address.full_address } - square_footage { Faker::Number.between(from: 500, to: 50000) } established_on { Faker::Date.between(from: recent_date - 365, to: recent_date).iso8601 } active { true } - customer_facing { true } - end - - factory :mobile_store, parent: :indexed_type do - __typename { "MobileStore" } - vehicle_type { Faker::Base.sample(["food truck", "pop-up cart", "mobile kiosk", "trailer"]) } - current_location { Faker::Address.full_address } - established_on { Faker::Date.between(from: recent_date - 365, to: recent_date).iso8601 } - active { true } - customer_facing { true } end factory :third_party_wholesale, parent: :indexed_type do __typename { "ThirdPartyWholesale" } - partner_name { Faker::Company.name } - contract_terms { Faker::Base.sample(["Net 30", "Net 60", "Net 90", "COD"]) } active { true } end end From d7873bb7a76f78542bf0266d15cacd6f0fedb323 Mon Sep 17 00:00:00 2001 From: Marc Daniels Date: Fri, 24 Apr 2026 22:09:22 -0400 Subject: [PATCH 4/9] Rename other_types_in_index to non_subtypes_in_shared_index The new method pre-filters subtypes, making AbstractTypeFilter's guard condition a simple .any? check instead of requiring a block. Generated with Claude Code --- .../query_adapter/abstract_type_filter.rb | 6 ++---- .../lib/elastic_graph/graphql/schema/type.rb | 17 ++++++++++------- .../sig/elastic_graph/graphql/schema/type.rbs | 2 +- .../query_adapter/abstract_type_filter_spec.rb | 12 ++++++++---- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb index 9223aab18..f6f7301ee 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb @@ -24,11 +24,9 @@ def call(field:, query:, args:, lookahead:, context:) type = field.type.unwrap_fully return query unless type.abstract? - # Note: subtypes returns all concrete subtypes at any depth — intermediate abstract - # types in the hierarchy are not included, even though they may share the same index. - subtypes = type.subtypes - return query unless type.other_types_in_index.any? { |t| !subtypes.include?(t) } + return query unless type.non_subtypes_in_shared_index.any? + subtypes = type.subtypes # Note: subtypes returns all concrete subtypes at any depth query.merge_with(internal_filters: [{ "__typename" => {query.schema_element_names.equal_to_any_of => [nil] + subtypes.map(&:name)} }]) diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb index 8f0bf58e7..b12e2577c 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb @@ -126,13 +126,16 @@ def subtypes .map { |t| @schema.type_from(t) } - [self] end - # Returns the set of other indexed document types that share any of this type's search indexes. - # Used to determine whether `__typename` filtering is needed when querying an abstract type - # that shares an index with types that fall outside the set of this type's subtypes. - def other_types_in_index - @other_types_in_index ||= search_index_definitions.flat_map do |index_def| - @schema.indexed_document_types_by_index_definition_name.fetch(index_def.name, []) - end.reject { |t| t == self }.to_set + # Returns the set of indexed document types that share any of this type's search indexes + # but are not subtypes of this type. Used to determine whether a `__typename` filter is + # needed when querying an abstract type. + def non_subtypes_in_shared_index + @non_subtypes_in_shared_index ||= begin + all_subtypes = subtypes.to_set # all concrete subtypes at any depth + search_index_definitions.flat_map do |index_def| + @schema.indexed_document_types_by_index_definition_name.fetch(index_def.name, []) + end.reject { |t| t == self || all_subtypes.include?(t) }.to_set + end end def field_named(field_name) diff --git a/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs b/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs index c3abb6b1f..4a4f57f67 100644 --- a/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs +++ b/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs @@ -9,7 +9,7 @@ module ElasticGraph attr_reader graphql_type: ::GraphQL::Schema::_Type attr_reader grouping_missing_value_placeholder: ::String? | ::Numeric? def search_index_definitions: () -> ::Array[DatastoreCore::_IndexDefinition] - def other_types_in_index: () -> ::Set[Type] + def non_subtypes_in_shared_index: () -> ::Set[Type] def unwrap_fully: () -> Type def field_named: (::String) -> Field def fields_by_name_in_index: () -> ::Hash[::String, ::Array[Field]] diff --git a/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb index 1ebc6a324..c61954c88 100644 --- a/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb +++ b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb @@ -110,12 +110,16 @@ class QueryAdapter end end - context "when calling other_types_in_index on a concrete type" do - it "excludes the type itself from the result" do + context "when calling non_subtypes_in_shared_index" do + it "excludes the type itself and its subtypes from the result" do schema = build_graphql(schema_artifacts: schema_artifacts).schema - physical_store = schema.type_named("PhysicalStore") + store = schema.type_named("Store") - expect(physical_store.other_types_in_index).not_to include(physical_store) + result = store.non_subtypes_in_shared_index + expect(result).not_to include(store) + expect(result).not_to include(schema.type_named("OnlineStore")) + expect(result).not_to include(schema.type_named("PhysicalStore")) + expect(result).to include(schema.type_named("Wholesaler")) end end From a8c83908b55413baf0a56c2a9f8e8424d5b908ef Mon Sep 17 00:00:00 2001 From: Marc Daniels Date: Fri, 24 Apr 2026 22:11:38 -0400 Subject: [PATCH 5/9] Remove MobileStore seed data from Rakefile Generated with Claude Code --- Rakefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Rakefile b/Rakefile index 632288a00..0c975932e 100644 --- a/Rakefile +++ b/Rakefile @@ -79,7 +79,6 @@ configure_local_rake_tasks = ->(tasks) do batch.concat(Array.new(10) { FactoryBot.build(:online_store) }) batch.concat(Array.new(10) { FactoryBot.build(:physical_store) }) - batch.concat(Array.new(10) { FactoryBot.build(:mobile_store) }) batch.concat(Array.new(10) { FactoryBot.build(:third_party_wholesale) }) batch.concat(sponsors = Array.new(10) { FactoryBot.build(:sponsor) }) From cdd825d2a87f5ea5b51add4161ea55e17700a329 Mon Sep 17 00:00:00 2001 From: Marc Daniels Date: Fri, 24 Apr 2026 22:51:37 -0400 Subject: [PATCH 6/9] Fix __typename filter not applied to aggregation queries on abstract types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AbstractTypeFilter was checking type.abstract? on the unwrapped field type, but for aggregation fields (e.g. store_aggregations) the unwrapped type is StoreAggregation — a concrete type — so the guard returned early without injecting the filter. This caused ThirdPartyWholesale documents to bleed into store_aggregations and retail_aggregations counts. Fix: resolve the underlying document type via aggregation_source_type for indexed aggregation fields before applying the abstract type check. Generated with Claude Code --- .../graphql/query_adapter/abstract_type_filter.rb | 10 +++++++--- .../lib/elastic_graph/graphql/schema/type.rb | 5 +++++ .../sig/elastic_graph/graphql/schema/type.rbs | 1 + elasticgraph-graphql/spec/acceptance/search_spec.rb | 5 +++++ .../query_adapter/abstract_type_filter_spec.rb | 11 +++++++++++ 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb index f6f7301ee..a0c32a47c 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/abstract_type_filter.rb @@ -22,11 +22,15 @@ class QueryAdapter class AbstractTypeFilter def call(field:, query:, args:, lookahead:, context:) type = field.type.unwrap_fully - return query unless type.abstract? - return query unless type.non_subtypes_in_shared_index.any? + # For indexed aggregation fields, resolve the underlying document type so we can + # apply the same __typename scoping as we do for document queries. + doc_type = type.indexed_aggregation? ? type.aggregation_source_type : type - subtypes = type.subtypes # Note: subtypes returns all concrete subtypes at any depth + return query unless doc_type.abstract? + return query unless doc_type.non_subtypes_in_shared_index.any? + + subtypes = doc_type.subtypes # Note: subtypes returns all concrete subtypes at any depth query.merge_with(internal_filters: [{ "__typename" => {query.schema_element_names.equal_to_any_of => [nil] + subtypes.map(&:name)} }]) diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb index b12e2577c..02c50b17d 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/schema/type.rb @@ -126,6 +126,11 @@ def subtypes .map { |t| @schema.type_from(t) } - [self] end + # For indexed aggregation types, returns the underlying source document type. + def aggregation_source_type + @schema.type_named(@object_runtime_metadata.source_type) + end + # Returns the set of indexed document types that share any of this type's search indexes # but are not subtypes of this type. Used to determine whether a `__typename` filter is # needed when querying an abstract type. diff --git a/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs b/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs index 4a4f57f67..7dc7a24fe 100644 --- a/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs +++ b/elasticgraph-graphql/sig/elastic_graph/graphql/schema/type.rbs @@ -9,6 +9,7 @@ module ElasticGraph attr_reader graphql_type: ::GraphQL::Schema::_Type attr_reader grouping_missing_value_placeholder: ::String? | ::Numeric? def search_index_definitions: () -> ::Array[DatastoreCore::_IndexDefinition] + def aggregation_source_type: () -> Type def non_subtypes_in_shared_index: () -> ::Set[Type] def unwrap_fully: () -> Type def field_named: (::String) -> Field diff --git a/elasticgraph-graphql/spec/acceptance/search_spec.rb b/elasticgraph-graphql/spec/acceptance/search_spec.rb index 7fd2e215b..c4862897b 100644 --- a/elasticgraph-graphql/spec/acceptance/search_spec.rb +++ b/elasticgraph-graphql/spec/acceptance/search_spec.rb @@ -785,6 +785,11 @@ module ElasticGraph [physical_store1.fetch(:id), "PhysicalStore"], [online_store1.fetch(:id), "OnlineStore"] ) + + # Aggregations respect the same __typename scoping as document queries. + store_agg_count = call_graphql_query("query { #{case_correctly("store_aggregations")} { nodes { #{case_correctly("count")} } } }") + .dig("data", case_correctly("store_aggregations"), "nodes", 0, case_correctly("count")) + expect(store_agg_count).to eq(store_typenames.size) end it "supports fetching interface fields" do diff --git a/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb index c61954c88..cabe256c0 100644 --- a/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb +++ b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/abstract_type_filter_spec.rb @@ -98,6 +98,7 @@ class QueryAdapter QUERY typename_filter = query.internal_filters.find { |f| f.key?("__typename") } + expect(typename_filter).not_to be_nil expect(typename_filter.dig("__typename", "equal_to_any_of")).to contain_exactly(nil, "OnlineStore", "PhysicalStore") end @@ -108,6 +109,16 @@ class QueryAdapter expect(query.internal_filters).not_to be_empty end + + it "applies a __typename filter on aggregations of the abstract type" do + query = datastore_query_for(:Query, :store_aggregations, <<~QUERY) + query { store_aggregations { nodes { count } } } + QUERY + + typename_filter = query.internal_filters.find { |f| f.key?("__typename") } + expect(typename_filter).not_to be_nil + expect(typename_filter.dig("__typename", "equal_to_any_of")).to contain_exactly(nil, "OnlineStore", "PhysicalStore") + end end context "when calling non_subtypes_in_shared_index" do From 4f834ffb4d900c87217df5c84acc4244784dcd3a Mon Sep 17 00:00:00 2001 From: Marc Daniels Date: Sat, 25 Apr 2026 14:18:54 -0400 Subject: [PATCH 7/9] Improve requested_fields comment and test for __typename on nodes The existing comment didn't explain why list-wrapping matters (it only arises because index inheritance enables subtypes to share an index, making __typename necessary for type resolution). The test used NamedEntity whose subtypes all have dedicated indexes, so __typename wasn't actually needed for the scenario the test was meant to cover. Update the comment to mention index inheritance and add a dedicated Creator interface with index-inheriting subtypes (Author, Scientist) to the test schema so the test exercises the real scenario. Generated with Claude Code --- .../graphql/query_adapter/requested_fields.rb | 2 +- .../query_adapter/requested_fields_spec.rb | 31 ++++++++++++++++--- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/requested_fields.rb b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/requested_fields.rb index 7e50e4ca5..3dc12a4d3 100644 --- a/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/requested_fields.rb +++ b/elasticgraph-graphql/lib/elastic_graph/graphql/query_adapter/requested_fields.rb @@ -88,7 +88,7 @@ def requested_fields_under(node, index_field_paths, path_prefix: "") # For abstract types (unions/interfaces), we need __typename to resolve the concrete type. # We must fully unwrap the type to check the innermost type, since the field type could be - # wrapped in non-null or list wrappers (e.g., `[NamedInventor!]!`). + # wrapped in non-null or list wrappers (e.g., `[NamedInventor!]!` on a `nodes` relay connection field). fields << "#{path_prefix}__typename" if field_for(node.field)&.type&.unwrap_fully&.abstract? fields end diff --git a/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/requested_fields_spec.rb b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/requested_fields_spec.rb index e44e01ff3..e3f39b72d 100644 --- a/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/requested_fields_spec.rb +++ b/elasticgraph-graphql/spec/unit/elastic_graph/graphql/query_adapter/requested_fields_spec.rb @@ -43,6 +43,29 @@ class QueryAdapter t.field "name", "String" end + # Indexed interface type used solely as a root document type (not embedded anywhere). + # Author and Scientist inherit the `creators` index via index inheritance rather than + # declaring it themselves. + schema.interface_type "Creator" do |t| + t.field "id", "ID!" + t.field "name", "String" + t.index "creators" + end + + schema.object_type "Author" do |t| + t.implements "Creator" + t.field "id", "ID!" + t.field "name", "String" + t.field "genre", "String" + end + + schema.object_type "Scientist" do |t| + t.implements "Creator" + t.field "id", "ID!" + t.field "name", "String" + t.field "field_of_study", "String" + end + # Indexed interface type. schema.interface_type "NamedEntity" do |t| t.root_query_fields plural: "named_entities" @@ -370,12 +393,12 @@ class QueryAdapter end it "requests __typename when using `nodes` on an abstract indexed type" do - query = datastore_query_for(:Query, :named_entities, <<~QUERY) + query = datastore_query_for(:Query, :creators, <<~QUERY) query { - named_entities { + creators { nodes { - id - name + ... on Author { genre } + ... on Scientist { field_of_study } } } } From facfeedfecec72f337cdec2c9ba9a7835e4a32bb Mon Sep 17 00:00:00 2001 From: Marc Daniels Date: Sat, 25 Apr 2026 14:36:56 -0400 Subject: [PATCH 8/9] docs(ai-memory): document index inheritance architecture Generated with Claude Code --- ai-memory/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ai-memory/README.md b/ai-memory/README.md index b901957b5..41ecc9b6f 100644 --- a/ai-memory/README.md +++ b/ai-memory/README.md @@ -301,6 +301,16 @@ The project is a monorepo composed of many gems. Each gem typically resides in i - **Dependencies**: `elasticgraph-graphql`, `elasticgraph-indexer`, `elasticgraph-schema_artifacts`, `elasticgraph-support`, `graphql`, `graphql-c_parser`, `rake`. - **Provides**: The schema definition framework and artifact generation capabilities. +### Index Inheritance + +Abstract types (interfaces and unions) can declare an index that their concrete subtypes inherit, rather than each subtype declaring its own. Multiple concrete types then share a single datastore index. A subtype may still declare its own dedicated index, which overrides the inherited one — those documents are stored in a separate index and do not have `__typename` stored in them. + +**`__typename` injection (indexer)**: When a record is indexed into a shared (inherited) index, the indexer automatically injects `__typename` into the document so the datastore can distinguish between concrete types at query time. + +**Query-time scoping**: When an abstract type shares an index with types outside its subtype hierarchy, `QueryAdapter::AbstractTypeFilter` automatically injects an internal `__typename` filter scoped to the queried type's concrete subtypes. + +**Key files**: `schema_definition/indexing/index.rb`, `schema_definition/mixins/has_indices.rb`, `schema_definition/schema_elements/type_with_subfields.rb`, `indexer/record_preparer.rb`, `graphql/query_adapter/abstract_type_filter.rb`, `graphql/schema/type.rb`. + ## Other Key Information This section highlights other important aspects of the ElasticGraph project: From 2d59beab139100b5c34b0fe81c19438bf580744c Mon Sep 17 00:00:00 2001 From: Marc Daniels Date: Sun, 26 Apr 2026 11:36:18 -0400 Subject: [PATCH 9/9] docs: improve YARD docs for index inheritance Update HasIndices#index, HasIndices#directly_queryable?, API#interface_type, and ImplementsInterfaces#implements to document index inheritance behavior: declaring an index on an abstract type creates a shared index that concrete subtypes inherit automatically, with examples showing both the shared-index pattern and the dedicated- index override. Generated with Claude Code --- .../elastic_graph/schema_definition/api.rb | 33 +++++++++++++ .../schema_definition/mixins/has_indices.rb | 46 +++++++++++++++++-- .../mixins/implements_interfaces.rb | 5 ++ 3 files changed, 80 insertions(+), 4 deletions(-) diff --git a/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/api.rb b/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/api.rb index 4b61944c2..912f28a15 100644 --- a/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/api.rb +++ b/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/api.rb @@ -139,6 +139,10 @@ def object_type(name, &block) # one or more fields that concrete implementations of the interface must also define. Each implementation can be an # {SchemaElements::ObjectType} or {SchemaElements::InterfaceType}. # + # @note An interface type can declare an index with {Mixins::HasIndices#index}. All concrete types that implement + # the interface will automatically share that index unless they declare their own. This is the primary way to define a + # _mixed-type index_ where multiple concrete types coexist in a single datastore index. + # # @param name [String] name of the interface # @yield [SchemaElements::InterfaceType] interface type object # @return [void] @@ -164,6 +168,35 @@ def object_type(name, &block) # t.field "pointsPerGame", "Float" # end # end + # + # @example Define an indexed interface so subtypes share a single index + # ElasticGraph.define_schema do |schema| + # schema.interface_type "Athlete" do |t| + # t.field "id", "ID!" + # t.field "name", "String" + # t.field "team", "String" + # t.root_query_fields plural: "athletes" + # t.index "athletes" + # end + # + # # Inherits the `athletes` index automatically. + # schema.object_type "BaseballPlayer" do |t| + # t.implements "Athlete" + # t.field "id", "ID!" + # t.field "name", "String" + # t.field "team", "String" + # t.field "battingAvg", "Float" + # end + # + # # Also inherits the `athletes` index. + # schema.object_type "BasketballPlayer" do |t| + # t.implements "Athlete" + # t.field "id", "ID!" + # t.field "name", "String" + # t.field "team", "String" + # t.field "pointsPerGame", "Float" + # end + # end def interface_type(name, &block) @state.register_object_interface_or_union_type @factory.new_interface_type(name.to_s, &block) nil diff --git a/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/mixins/has_indices.rb b/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/mixins/has_indices.rb index bdc63a137..df242f6ad 100644 --- a/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/mixins/has_indices.rb +++ b/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/mixins/has_indices.rb @@ -29,12 +29,19 @@ def initialize(*args, **options) initialize_has_indices { yield self } end - # Converts the current type from being an _embedded_ type (that is, a type that is embedded within another indexed type) to an - # _indexed_ type that resides in the named index definition. Indexed types are directly indexed into the datastore, and will be - # queryable from the root `Query` type. + # Declares a datastore index for the current type. The behavior depends on whether this is called + # on a concrete type or an abstract type: + # + # - On a concrete `object_type`: converts it from an _embedded_ type to an _indexed_ type that is + # directly queryable from the root `Query` type. + # - On an abstract `interface_type` or `union_type`: declares a _shared index_ that all concrete + # subtypes automatically inherit. Subtypes that inherit an index do not need to call `t.index` + # themselves — they share the same physical index. A concrete subtype can still call `t.index` + # with a different name to opt out of inheritance and get a dedicated index instead. # # @note Use {#root_query_fields} on indexed types to name the field that will be exposed on `Query`. # @note Indexed types must also define an `id` field, which ElasticGraph will use as the primary key. + # When an abstract type declares the index, each concrete subtype must also define `id`. # @note Datastore index settings can also be defined (or overridden) in an environment-specific settings YAML file. Index settings # that you want to configure differently for different environments (such as `index.number_of_shards`—-production and staging # will probably need different numbers!) should be configured in the per-environment YAML configuration files rather than here. @@ -46,7 +53,7 @@ def initialize(*args, **options) # @yield [Indexing::Index] the index, so it can be customized further # @return [void] # - # @example Define a `campaigns` index + # @example Define a `campaigns` index on a concrete type # ElasticGraph.define_schema do |schema| # schema.object_type "Campaign" do |t| # t.field "id", "ID" @@ -62,6 +69,34 @@ def initialize(*args, **options) # end # end # end + # + # @example Declare a shared index on an interface so subtypes inherit it + # ElasticGraph.define_schema do |schema| + # schema.interface_type "Vehicle" do |t| + # t.field "id", "ID" + # t.field "make", "String" + # t.root_query_fields plural: "vehicles" + # # Car and Motorcycle will share this index automatically. + # t.index "vehicles" + # end + # + # # Inherits the `vehicles` index — no need to call `t.index`. + # schema.object_type "Car" do |t| + # t.implements "Vehicle" + # t.field "id", "ID" + # t.field "make", "String" + # t.field "numDoors", "Int" + # end + # + # # Opts out of the shared index and gets its own dedicated index instead. + # schema.object_type "Motorcycle" do |t| + # t.implements "Vehicle" + # t.field "id", "ID" + # t.field "make", "String" + # t.field "engineCC", "Int" + # t.index "motorcycles" + # end + # end def index(name, **settings, &block) unless @can_configure_index raise Errors::SchemaError, "Cannot define an index on `#{self.name}` after initialization is complete. " \ @@ -133,6 +168,9 @@ def root_document_type? end # @return [Boolean] true if this type is directly queryable via a type-specific field on the root `Query` type. + # @note A concrete subtype that inherits an index from an abstract parent is NOT directly queryable on its own — + # only the abstract type that declared the index is. Use {#root_document_type?} to check whether a type + # participates in any index (own or inherited). def directly_queryable? has_own_index_def? end diff --git a/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/mixins/implements_interfaces.rb b/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/mixins/implements_interfaces.rb index 837ba3680..1e5c1a708 100644 --- a/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/mixins/implements_interfaces.rb +++ b/elasticgraph-schema_definition/lib/elastic_graph/schema_definition/mixins/implements_interfaces.rb @@ -16,6 +16,11 @@ module ImplementsInterfaces # Declares that the current type implements the specified interface, making the current type a subtype of the interface. The # current type must define all of the fields of the named interface, with the exact same field types. # + # @note If the named interface has declared an index (via {Mixins::HasIndices#index}), calling `implements` + # causes this type to automatically inherit that index — it will be stored in the same datastore index as all other + # implementers. To override this and use a dedicated index, call {Mixins::HasIndices#index} on this type + # after `implements`. + # # @param interface_names [Array] names of interface types implemented by this type # @return [void] #