Loading GraphQL Playground
{"tabs":[{"name":"Basic Info Queries","allowInProduction":true,"query":"# Welcome to the Yonomi Platform GraphQL Playground!\n#\n# Each time you open the playground or select a new tab, you will need to add \n# a valid JWT token to the 'HTTP HEADERS (1)' variable \"Authorization\" value\n# where it says \"replaceWithToken\". This value must start with \"Bearer \"\n#\n# If you have any issues, please reach out! \n#\n# 🚀 💛\n\nquery basicInfo {\n # Platform Health Status Check\n health {\n ok\n }\n \n # \"me\" is the entry point to any data specific to the current user\n me {\n id\n lastActivityAt\n firstActivityAt\n }\n\n # basic information about your Yonomi Platform tenant\n tenant {\n id\n displayName\n }\n}","endpoint":"https://platform.yonomi.cloud/graphql","headers":{"Authorization":"Bearer replaceWithToken"},"responses":[],"includedInModes":["any"]},{"name":"Account Linking","allowInProduction":true,"query":"# Account Linking\n\n# Query for a list of all available integrations\n\nquery getAllIntegrations {\n integrations {\n edges {\n node {\n id\n displayName\n }\n }\n }\n}\n\n# Generate an Account Linking URL for a specific integration\n#\n# Navigate to the returned url to kickoff the account linking flow for Maya\n# to connect her account with our partner's integration.\n# \n# Be sure to configure an OAuth client for the integration in the partner tab\n\nmutation generateAccountLinkingUrl ($integrationId: ID!) {\n generateAccountLinkingUrl(integrationId: $integrationId) {\n url\n expiresAt\n integration {\n id\n displayName\n }\n }\n}\n\n# Query for linked accounts\n\n# Query linked accounts to see information about accounts that were authorized\n# via the account linking flow\n\nquery linkedAccounts {\n me {\n id\n lastActivityAt\n firstActivityAt\n linkedAccounts {\n edges {\n node {\n id\n status\n createdAt\n integration {\n id\n displayName\n }\n }\n }\n }\n }\n}\n\n# Remove a linked account\n\n# Remove a previously linked account. This will also remove\n# all associated data and devices associated with the linked account\n\nmutation removeLinkedAccount ($linkedAccountId: ID!) {\n removeLinkedAccount(linkedAccountId: $linkedAccountId) {\n me {\n id\n }\n }\n}\n\n# Generate an Account Relinking URL for a specific account\n#\n# Navigate to the returned url to kickoff the account relinking flow for Maya\n# to reconnect her account with our partner's integration.\n\nmutation generateAccountRelinkingUrl ($linkedAccountId: ID!) {\n generateAccountRelinkingUrl(linkedAccountId: $linkedAccountId) {\n url\n expiresAt\n integration {\n id\n displayName\n }\n }\n}","endpoint":"https://platform.yonomi.cloud/graphql","headers":{"Authorization":"Bearer replaceWithToken"},"responses":[],"includedInModes":["any"],"variables":"{\n \"integrationId\": \"replaceWithIntegrationID\",\n \"linkedAccountId\": \"replaceWithLinkedAccountId\"\n}"},{"name":"My Devices","allowInProduction":true,"query":"# Querying Your Users Devices\n# The main way to find your users devices is from the \"me\" entry node. This is\n# following the relay pagination spec:\n#\n# https://relay.dev/graphql/connections.htm\nquery myDevices {\n me {\n devices {\n pageInfo { hasNextPage }\n edges {\n node {\n ... DeviceDetails\n }\n }\n }\n }\n}\n\n# Query devices for an individual linked account\nquery myDevicesByLinkedAccountId($linkedAccountId: ID!) {\n me {\n devices(linkedAccountId: $linkedAccountId) {\n pageInfo { hasNextPage }\n edges {\n node {\n ... DeviceDetails\n }\n }\n }\n }\n}\n\n# you can use the \"filter\" parameter to only find devices that have at least\n# one matching trait in the filter\nquery allDevicesWithPower {\n me {\n devices (filter: { traits: [POWER] }) {\n pageInfo { hasNextPage }\n edges {\n node {\n ... DeviceDetails\n }\n }\n }\n }\n}\nquery allDevicesWithThermostatSetting {\n me {\n devices (filter: { traits: [THERMOSTAT_SETTING] }) {\n pageInfo { hasNextPage }\n edges {\n node {\n ... DeviceDetails\n }\n }\n }\n }\n}\nquery allDevicesWithPinCodeCredential {\n me {\n devices (filter: { traits: [PIN_CODE_CREDENTIAL] }) {\n pageInfo { hasNextPage }\n edges {\n node {\n ... DeviceDetails\n }\n }\n }\n }\n}\n# fragments can be used to re-use parts of a query\nfragment DeviceDetails on Device {\n id\n displayName\n productInformation {\n description\n manufacturer\n model\n serialNumber\n }\n createdAt\n traits {\n name instance\n ... on BatteryLevelDeviceTrait {\n state {\n percentage {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n ... on LockDeviceTrait {\n properties { supportsIsJammed }\n state {\n isLocked {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n ... on PowerDeviceTrait {\n properties { supportsDiscreteOnOff }\n state {\n isOn {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n ... on BrightnessDeviceTrait {\n state {\n brightness {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n ... on ColorDeviceTrait {\n state {\n color {\n reported { value { h s b } sampledAt createdAt }\n desired { value { h s b } delta { h s b } updatedAt }\n }\n }\n }\n ... on ColorTemperatureDeviceTrait {\n state {\n colorTemperature {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n ... on ThermostatSettingDeviceTrait {\n properties {\n availableThermostatModes,\n availableFanModes,\n heatSetPointRange { min, max }\n coolSetPointRange { min, max }\n allowedTargetTemperatureModes,\n allowedTargetTemperatureRangeModes,\n \t}\n state {\n mode {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n targetTemperature {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n ambientTemperature {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n setPointHigh {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n setPointLow {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n ambientHumidity {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n targetHumidity {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n fanMode {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n ... on PinCodeCredentialDeviceTrait {\n state {\n pinCodeCredentials {\n reported {\n # there can be large numbers of pin codes, so this also follows the relay spec:\n # https://relay.dev/graphql/connections.htm\n value {\n pageInfo { hasNextPage }\n edges {\n node {\n name\n pinCode\n schedules\n }\n }\n }\n createdAt\n sampledAt\n }\n desired {\n value {\n pageInfo { hasNextPage }\n edges {\n node {\n name\n pinCode\n schedules\n }\n }\n }\n delta {\n pageInfo { hasNextPage }\n edges {\n node {\n name\n pinCode\n schedules\n }\n }\n }\n updatedAt\n }\n }\n pinCodeCredentialList {\n reported {\n sampledAt\n createdAt\n value {\n edges {\n node {\n name\n pinCode\n alwaysActive\n recurringSchedules {\n duration\n rrule\n }\n temporarySchedules {\n startDatetime\n endDatetime\n }\n }\n }\n }\n }\n desired {\n updatedAt\n value {\n edges {\n node {\n name\n pinCode\n alwaysActive\n recurringSchedules {\n duration\n rrule\n }\n temporarySchedules {\n startDatetime\n endDatetime\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}","endpoint":"https://platform.yonomi.cloud/graphql","headers":{"Authorization":"Bearer replaceWithToken"},"responses":[],"includedInModes":["any"],"variables":"{\n \"linkedAccountId\": \"replaceWithLinkedAccountId\"\n}"},{"name":"Actions","allowInProduction":true,"query":"# Actions\n\n# This mutation executes a power action on the device with the provided\n# deviceId (assuming the device has a Power trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makePowerActionRequest ($deviceId: ID!) {\n\tactionPowerSetOn (deviceId: $deviceId on: true) {\n actionId\n transactionId\n device {\n \t traits {\n name instance\n ... on PowerDeviceTrait {\n state {\n isOn {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n }\n }\n }\n}\n\n# The following actions will be deprecated in the future. They interact with the old Pin Code trait and their state.\n\n# This mutation executes a createPinCodeCredential action on the device with the provided\n# deviceId (assuming the device has a PinCodeCredential trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makeCreatePinCodeCredentialActionRequest ($deviceId: ID!) {\n\tactionPinCodeCredentialCreatePinCodeCredential (\n deviceId: $deviceId\n pinCodeCredential: {\n # add a pin code credential (e.g. \"3948\")\n pinCode: \"\"\n name: \"Pin Code Credential 1\"\n schedules: []\n }\n ) {\n actionId\n device {\n \t traits {\n name instance\n ... on PinCodeCredentialDeviceTrait {\n properties { supportedPinCodeRange { min max } }\n state {\n pinCodeCredentials {\n reported { value { edges { node { pinCode }}} sampledAt createdAt }\n desired { value { edges { node { pinCode }}} updatedAt }\n }\n }\n }\n }\n }\n }\n}\n# This mutation executes an updatePinCodeCredential action on the device with the provided\n# deviceId (assuming the device has a PinCodeCredential trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makeUpdatePinCodeCredentialActionRequest ($deviceId: ID!) {\n\tactionPinCodeCredentialUpdatePinCodeCredential (\n deviceId: $deviceId\n # This is an upsert operation, so the entirety of the pinCodeCredential\n # must be supplied even if only one of the fields (i.e. name)\n # is being updated\n pinCodeCredential: {\n # add the pin code credential to update\n pinCode: \"\"\n name: \"Pin Code Credential 1 new name\"\n # A list of schedules in rrule format\n # https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html\n schedules: [\"DTSTART:20211220T083300Z\\nRRULE:FREQ=DAILY;UNTIL=20221120T083300Z\"]\n }\n ) {\n actionId\n device {\n \t traits {\n name instance\n ... on PinCodeCredentialDeviceTrait {\n properties { supportedPinCodeRange { min max } }\n state {\n pinCodeCredentials {\n reported { value { edges { node { pinCode }}} sampledAt createdAt }\n desired { value { edges { node { pinCode }}} updatedAt }\n }\n }\n }\n }\n }\n }\n}\n# This mutation executes a deletePinCodeCredential action on the device with the provided\n# deviceId (assuming the device has a PinCodeCredential trait) to revoke\n# the ability to use the specified pinCode to access the device\n# and returns the id of the action request along with the device's new desired state\nmutation makeDeletePinCodeCredentialActionRequest ($deviceId: ID!) {\n\tactionPinCodeCredentialDeletePinCodeCredential (\n deviceId: $deviceId\n # the pinCode to delete from this device\n pinCode: \"\"\n ) {\n actionId\n device {\n \t traits {\n name instance\n ... on PinCodeCredentialDeviceTrait {\n properties { supportedPinCodeRange { min max } }\n state {\n pinCodeCredentials {\n reported { value { edges { node { pinCode }}} sampledAt createdAt }\n desired { value { edges { node { pinCode }}} updatedAt }\n }\n }\n }\n }\n }\n }\n}\n\n# This mutation executes an unlock action on the device with the provided\n# deviceId (assuming the device has a Lock trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makeUnlockActionRequest ($deviceId: ID!) {\n\tactionLockSetLocked (deviceId: $deviceId lock: false) {\n actionId\n device {\n \t traits {\n name instance\n ... on LockDeviceTrait {\n properties { supportsIsJammed }\n state {\n isLocked {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n }\n }\n }\n}\n\n# This mutation executes a setThermostatMode action on the device with the provided\n# deviceId (assuming the device has a ThermostatSetting trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makeSetThermostatModeRequest ($deviceId: ID!) {\n\tactionThermostatSettingSetThermostatMode (deviceId: $deviceId mode: COOL) {\n actionId\n device {\n \t traits {\n name instance\n ... on ThermostatSettingDeviceTrait {\n properties { availableThermostatModes availableFanModes }\n state {\n mode {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n }\n }\n }\n}\n\n# This mutation executes a setTargetTemperature action on the device with the provided\n# deviceId (assuming the device has a ThermostatSetting trait) and returns the\n# id of the action request along with the device's new desired state\n# Note that all temperature related trait actions should use Celsius\nmutation makeSetTargetTemperatureRequest ($deviceId: ID!) {\n\tactionThermostatSettingSetTargetTemperature (deviceId: $deviceId targetTemperature: 22) {\n actionId\n device {\n \t traits {\n name instance\n ... on ThermostatSettingDeviceTrait {\n properties { availableThermostatModes availableFanModes }\n state {\n targetTemperature {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n }\n }\n }\n}\n\n# This mutation executes a setFanMode action on the device with the provided\n# deviceId (assuming the device has a ThermostatSetting trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makeSetFanModeRequest ($deviceId: ID!) {\n\tactionThermostatSettingSetFanMode (deviceId: $deviceId fanMode: ECO) {\n actionId\n device {\n \t traits {\n name instance\n ... on ThermostatSettingDeviceTrait {\n properties { availableThermostatModes availableFanModes }\n state {\n fanMode {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n }\n }\n }\n}\n\n# This mutation executes a setTargetTemperatureRange action on the device with the provided\n# deviceId (assuming the device has a ThermostatSetting trait) and returns the\n# id of the action request along with the device's new desired state\n# Note that all temperature related trait actions should use Celsius\nmutation makeSetTargetTemperatureRangeRequest ($deviceId: ID!) {\n\tactionThermostatSettingSetTargetTemperatureRange (deviceId: $deviceId setPointLow: 21 setPointHigh: 24) {\n actionId\n device {\n \t traits {\n name instance\n ... on ThermostatSettingDeviceTrait {\n properties { availableThermostatModes availableFanModes }\n state {\n setPointLow {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n setPointHigh {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n }\n }\n }\n }\n }\n}\n\n# This mutation executes a setThermostatModeAndTargetTemperature action on the device with\n# the provided deviceId (assuming the device has a ThermostatSetting trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makeSetThermostatModeAndTargetTemperatureRequest ($deviceId: ID!) {\n\tactionThermostatSettingSetThermostatModeAndTargetTemperature (deviceId: $deviceId mode: COOL targetTemperature: 20) {\n actionId\n device {\n \t traits {\n name instance\n ... on ThermostatSettingDeviceTrait {\n properties { availableThermostatModes availableFanModes }\n state {\n mode {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n targetTemperature {\n reported { value sampledAt createdAt }\n }\n }\n }\n }\n }\n }\n}\n\n# This mutation executes a setThermostatModeAndTargetTemperatureRange action on the device with\n# the provided deviceId (assuming the device has a ThermostatSetting trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makeSetThermostatModeAndTargetTemperatureRangeRequest ($deviceId: ID!) {\n\tactionThermostatSettingSetThermostatModeAndTargetTemperatureRange (deviceId: $deviceId mode: AUTO range: { setPointLow: 20 setPointHigh: 23 }) {\n actionId\n device {\n \t traits {\n name instance\n ... on ThermostatSettingDeviceTrait {\n properties { availableThermostatModes availableFanModes }\n state {\n mode {\n reported { value sampledAt createdAt }\n desired { value delta updatedAt }\n }\n setPointLow {\n reported { value sampledAt createdAt }\n }\n setPointHigh {\n reported { value sampledAt createdAt }\n }\n }\n }\n }\n }\n }\n}\n\n############ New Pin Code Credential Actions #####################################\n\n# These mutations interact with the updated pinCodeCredentialItem and pinCodeCredentialList\n# Use these mutations to interact with the updated pinCodeCredential schedules including flushed out\n# temporary and recurring schedules.\n\n# This mutation executes a addPinCodeCredential action on the device with the provided\n# deviceId (assuming the device has a PinCodeCredential trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makeAddPinCodeCredentialActionRequest ($deviceId: ID!) {\n\tactionPinCodeCredentialAddPinCodeCredential (\n deviceId: $deviceId\n pinCodeCredential: {\n # add a pin code credential (e.g. \"3948\")\n pinCode: \"\"\n name: \"Pin 1\"\n # Indicates whether the PIN code credential should always permit access.\n alwaysActive: false\n # list of schedules that detail a repeated pattern when the PIN code\n # credential should allow access. (allows access mon-fri at noon for 10 min)\n recurringSchedules: [{ duration: 10, rrule: \"RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,FR;BYHOUR=12\" }]\n # A set of schedules that provide one-time access using this PIN code\n # credential. (the credential is also access between the indicated dates)\n temporarySchedules: [{ startDatetime: \"2022-02-11T17:01:00.000Z\", endDatetime: \"2022-02-11T18:01:00.000Z\" }]\n }\n ) {\n actionId\n device {\n \t traits {\n name instance\n ... on PinCodeCredentialDeviceTrait {\n properties { supportedPinCodeRange { min max } }\n state {\n pinCodeCredentialList {\n reported {\n sampledAt\n createdAt\n value {\n edges {\n node {\n name\n pinCode\n alwaysActive\n recurringSchedules {\n duration\n rrule\n }\n temporarySchedules {\n startDatetime\n endDatetime\n }\n }\n }\n }\n }\n desired {\n updatedAt\n value {\n edges {\n node {\n name\n pinCode\n alwaysActive\n recurringSchedules {\n duration\n rrule\n }\n temporarySchedules {\n startDatetime\n endDatetime\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}\n\n\n# This mutation executes an modifyPinCodeCredential action on the device with the provided\n# deviceId (assuming the device has a PinCodeCredential trait) and returns the\n# id of the action request along with the device's new desired state\nmutation makeModifyPinCodeCredentialActionRequest ($deviceId: ID!) {\n\tactionPinCodeCredentialModifyPinCodeCredential (\n deviceId: $deviceId\n # This is an upsert operation, so the entirety of the pinCodeCredential\n # must be supplied even if only one of the fields (i.e. name)\n # is being updated\n pinCodeCredential: {\n # add a pin code credential (e.g. \"3948\")\n pinCode: \"\"\n name: \"Pin 1\"\n # Indicates that the PIN code credential should always permit access.\n alwaysActive: true\n # list of schedules that detail a repeated pattern when the PIN code\n # credential should allow access.\n recurringSchedules: []\n # A set of schedules that provide one-time access using this PIN code\n # credential.\n temporarySchedules: []\n }\n ) {\n actionId\n device {\n \t traits {\n name\n instance\n ... on PinCodeCredentialDeviceTrait {\n properties { supportedPinCodeRange { min max } }\n state {\n pinCodeCredentialList {\n reported {\n sampledAt\n createdAt\n value {\n edges {\n node {\n name\n pinCode\n alwaysActive\n recurringSchedules {\n duration\n rrule\n }\n temporarySchedules {\n startDatetime\n endDatetime\n }\n }\n }\n }\n }\n desired {\n updatedAt\n value {\n edges {\n node {\n name\n pinCode\n alwaysActive\n recurringSchedules {\n duration\n rrule\n }\n temporarySchedules {\n startDatetime\n endDatetime\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}\n\n# This mutation executes a removePinCodeCredential action on the device with the provided\n# deviceId (assuming the device has a PinCodeCredential trait) to revoke\n# the ability to use the specified pinCode to access the device\n# and returns the id of the action request along with the device's new desired state\nmutation makeRemovePinCodeCredentialActionRequest ($deviceId: ID!) {\n\tactionPinCodeCredentialRemovePinCodeCredential (\n deviceId: $deviceId\n # the pinCode to remove from this device\n pinCode: \"\"\n ) {\n actionId\n device {\n \t traits {\n name\n instance\n ... on PinCodeCredentialDeviceTrait {\n properties { supportedPinCodeRange { min max } }\n state {\n pinCodeCredentialList {\n reported {\n sampledAt\n createdAt\n value {\n edges {\n node {\n name\n pinCode\n alwaysActive\n recurringSchedules {\n duration\n rrule\n }\n temporarySchedules {\n startDatetime\n endDatetime\n }\n }\n }\n }\n }\n desired {\n updatedAt\n value {\n edges {\n node {\n name\n pinCode\n alwaysActive\n recurringSchedules {\n duration\n rrule\n }\n temporarySchedules {\n startDatetime\n endDatetime\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}","endpoint":"https://platform.yonomi.cloud/graphql","headers":{"Authorization":"Bearer replaceWithToken"},"responses":[],"includedInModes":["any"],"variables":"{\n \"deviceId\": \"replaceWithDeviceID\"\n}"},{"name":"Events","allowInProduction":true,"query":"# Device Events\n\n# Query events for my devices.\n\nquery myDevicesEvents {\n me {\n devices {\n pageInfo {\n hasNextPage\n }\n edges {\n node {\n events {\n edges {\n node {\n createdAt\n ...DeviceEvents\n }\n }\n }\n }\n }\n }\n }\n}\n\n# Query events for a device.\n\nquery deviceEvents($deviceId: ID!) {\n device(id: $deviceId) {\n events {\n pageInfo {\n hasNextPage\n }\n edges {\n node {\n createdAt\n ...DeviceEvents\n }\n }\n }\n }\n}\n\n# Query an individual device for STATE events specific to the LOCK trait.\n\nquery deviceTraitStateEvents($deviceId: ID!) {\n device(id: $deviceId) {\n traits {\n ... on LockDeviceTrait {\n events(filter: { eventType: DEVICE_STATE_UPDATED }) {\n edges {\n node {\n __typename\n createdAt\n ...DeviceEvents\n }\n }\n }\n }\n }\n }\n}\n\nfragment DeviceEvents on DeviceEvent {\n ... on DeviceStateUpdatedEvent {\n deviceId\n actionId\n traitName\n traitInstance\n fieldName\n deviceStateSampledAt: sampledAt\n value\n }\n ... on DeviceStateClearedEvent {\n deviceId\n traitName\n traitInstance\n fieldName\n }\n ... on DeviceActionCreatedEvent {\n createdActionId: actionId\n deviceId\n traitName\n traitInstance\n actionParameters\n }\n ... on DeviceActionUpdatedEvent {\n updatedActionId: actionId\n deviceId\n traitName\n traitInstance\n status\n }\n ... on DeviceConfiguredEvent {\n deviceId\n traits\n }\n ... on DeviceNotificationReportedEvent {\n deviceId\n notificationName\n notificationType\n messageComputed\n sampledAt\n createdAt\n actionId\n traitName\n traitInstance\n }\n}","endpoint":"https://platform.yonomi.cloud/graphql","headers":{"Authorization":"Bearer replaceWithToken"},"responses":[],"includedInModes":["any"],"variables":"{\n \"deviceId\": \"replaceWithDeviceID\"\n}"}],"workspaceName":"yonomi-platform","config":{"extensions":{"endpoints":{"yonomi-platform":{"url":"https://platform.yonomi.cloud/graphql","headers":{"Authorization":"Bearer replaceWithToken"}}}}},"canSaveConfig":false,"configString":"{\n \"extensions\": {\n \"endpoints\": {\n \"yonomi-platform\": {\n \"url\": \"https://platform.yonomi.cloud/graphql\",\n \"headers\": {\n \"Authorization\": \"Bearer replaceWithToken\"\n }\n }\n }\n }\n}"}