QUERIES =========== | จะเป็น Function ที่ใช้ในการดึงข้อมูลเพียงอย่างเดียว ประกอบด้วย | BillingAccountProfile ------------------------- สำหรับเข้าถึงข้อมูล Billing Account (ข้อมูลที่เกี่ยวข้องกับการคำนวณปริมาณการใช้บริการและค่าใช้จ่านย) แต่ละ ID รายละเอียดดังนี้ :BillingAccountProfile ( billingaccountid ): Arguments - ``billingaccountid``: *String* คือ รหัสของ Billing Account (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : BillingAccountProfile ตอบกลับเป็น Object Type BillingAccountProfile ประกอบด้วย - ``billingaccountid``: *String* คือ รหัสของ Billing Account - ``name``: *String* คือ ชื่อของ Billing Account - ``mode``: *String* คือ โหมดของ Billing Account - ``allow_apicall``: *Boolean* คือ การอนุญาตใช้งาน API Call (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_connection``: *Boolean* คือ การอนุญาตใช้งาน Device Online (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_datasource``: *Boolean* คือ การอนุญาตใช้งาน Datasource (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_message``: *Boolean* คือ การอนุญาตใช้งาน Real Time Message (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_shadowops``: *Boolean* คือ การอนุญาตใช้งาน Shadow Read/Write (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_store``: *Boolean* คือ การอนุญาตใช้งาน Time Series Data Store (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_trigger``: *Boolean* คือ การอนุญาตใช้งาน Trigger & Action (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_billingaccountprofile.png BillingAccountProjectInfo ----------------------------- สำหรับเข้าถึงข้อมูลรายการ Project ที่สังกัดอยู่ภายใต้ Billing Account ID นั้น ๆ รายละเอียดดังนี้ :BillingAccountProjectInfo ( billingaccountid ): Arguments - ``billingaccountid``: *String* คือ รหัสของ Billing Account (ต้องระบุ) Query Variables ``Authorization`` : User Token Response Type : [ProjectID] ตอบกลับเป็น Array ของ Object Type ProjectID ประกอบด้วย - ``projectid``: *String* คือ รหัสของ Project ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_billingaccountprojectinfo.png BillingAccountResourceUsageProfile ----------------------------------- สำหรับเข้าถึงข้อมูลการจำกัดจำนวนการใช้งานและปริมาณการใช้งาน ณ ปัจจุบันของแต่และ Billing Account ID นั้น ๆ รายละเอียดดังนี้ :BillingAccountResourceUsageProfile ( billingaccountid ): Arguments - ``billingaccountid``: *String* คือ รหัสของ Billing Account (ต้องระบุ) Query Variables ``Authorization`` : User Token Response Type : BillingAccountResourceUsageProfile ตอบกลับเป็น Object Type BillingAccountResourceUsageProfile ประกอบด้วย - ``billingaccountid``: *String* คือ รหัสของ Billing Account - ``max_device_per_billing``: *Int* คือ จำนวน Device สูงสุดที่สามารถสร้างได้ในแต่ละ Billing Account - ``max_member_per_project``: *Int* คือ จำนวนสมาชิกสูงสุดที่สามารถ Invite ได้ในแต่ละ Project - ``max_project_per_billing``: *Int* คือ จำนวน Project สูงสุดที่สามารถสร้างได้ในแต่ละ Billing Account - ``use_device``: *Int* คือ จำนวน Device ที่สร้างไปแล้วในแต่ละ Billing Account - ``use_project``: *Int* คือ จำนวน Project ที่สร้างไปแล้วในแต่ละ Billing Account - ``detail``: *JSON* คือ รายละเอียดการใช้งานแยกตาม Project ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_billingaccountresourceusageprofile.png BillingAccountSubscriptionProfile ----------------------------------- สำหรับเข้าถึงข้อมูล Package Subscription ปัจจุบันของแต่และ Billing Account ID นั้น ๆ รายละเอียดดังนี้ :BillingAccountSubscriptionProfile ( billingaccountid ): Arguments - ``billingaccountid``: *String* คือ รหัสของ Billing Account (ต้องระบุ) Query Variables ``Authorization`` : User Token Response Type : BillingAccountSubscriptionProfile ตอบกลับเป็น Object Type BillingAccountSubscriptionProfile ประกอบด้วย - ``billingaccountid``: *String* คือ รหัสของ Billing Account - ``subscriptionname``: *String* คือ ชื่อของ Subscription - ``billtype``: *String* คือ ประเภทของ Billing (``PREPAID`` หรือ ``POSTPAID``) - ``status``: *String* คือ สถานะการเปิดใช้งาน (``ENABLED`` หรือ ``DISABLED``) - ``packageid``: *String* คือ *String* คือ รหัสของ Package ใช้งาน - ``packagename``: *String* คือ ชื่อของ Package ใช้งาน - ``total_cycle``: *Int* คือ จำนวนรอบการใช้งานได้ทั้งหมด - ``current_cycle``: *Int* คือ จำนวนรอบที่ใช้งานไปแล้ว ณ ปัจจุบัน - ``subscription_start_at``: *String* คือ วันเวลาทรี่เริ่มต้นใช้งาน Subscription - ``current_cycle_start_at``: *String* คือ วันเวลาที่เริ่มรอบการใช้ปัจจุบัน - ``current_cycle_end_at``: *String* คือ วันเวลาที่สิ้นสุดรอบการใช้ปัจจุบัน - ``max_apicall``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน API Call ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_connection``: *Float* คือ จำนวนเวลาสะสมสูงสุดที่ Device Online ได้ ของรอบบิลปัจจุบัน (หน่วยเป็น วินาที) - ``max_datasource``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Datasource ของรอบบิลปัจจุบัน (หน่วยเป็น Byte) - ``max_message``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Real Time Message ของรอบบิลปัจจุบัน (หน่วยเป็น Message) - ``max_shadowops``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Shadow Read/Write ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_store``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Time Series Data Store ของรอบบิลปัจจุบัน (หน่วยเป็น Point-Day) - ``max_trigger``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Trigger & Action ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_device_per_billing``: *Int* คือ จำนวน Device สูงสุดที่สามารถสร้างได้ในแต่ละ Billing Account - ``max_member_per_project``: *Int* คือ จำนวนสมาชิกสูงสุดที่สามารถ Invite ได้ในแต่ละ Project - ``max_project_per_billing``: *Int* คือ จำนวน Project สูงสุดที่สามารถสร้างได้ในแต่ละ Billing Account - ``note``: *String* คือ หมายเหตุ ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_billingaccountsubscriptionprofile.png BillingLog ----------------------------- สำหรับเข้าถึงรายการข้อมูล Log ต่าง ๆ จากระบบในแต่ละ Billing Account ID นั้น ๆ รายละเอียดดังนี้ :BillingLog ( billingaccountid, begintime, endtime, filter, limit, offset, direction ): Arguments - ``billingaccountid``: *String* คือ รหัสของ Billing Account (ต้องระบุ) - ``begintime``: *String* คือ วันที่เริ่มต้นของการเกิดข้อมูล (ต้องระบุ) - ``endtime``: *String* คือ วันที่สิ้นสุดของการเกิดข้อมูล (ต้องระบุ) - ``filter``: *BillingLogFilterKey* คือ Object Type ของตัวกรองที่ใช้ระบุเพิ่มเติมในการค้นหา ประกอบด้วย - ``event``: *[String]* คือ ชื่อเหตุการณ์ที่ทำให้เกิด Log ระบุได้หลายชื่อ - ``level``: *[LogLevel]* คือ ระดับการแจ้ง Log ระบุได้หลายระดับ - ``projectid``: *String* คือ รหัสของ Project ที่เกิด Log - ``limit``: *Int* คือ จำกัดจำนวนข้อมูลที่ดึงออกมา - ``offset``: *Int* คือ ลำดับรายการของข้อมูลที่เริ่มดึงข้อมูล - ``direction``: *SortDirection* คือ การเรียงลำดับข้อมูล (``ASC`` น้อยไปมาก, ``DESC`` มากไปน้อย) Query Variables ``Authorization`` : User Token Response Type : [BillingLog] ตอบกลับเป็น Array ของ Object Type BillingLog ประกอบด้วย - ``time``: *Timestamp* คือ วันเวลาที่เกิด Log - ``billingaccountid``: *String* คือ รหัสของ Billing Account - ``type``: *String* คือ ประเภทของ Log - ``level``: *String* คือ ระดับการแจ้ง Log - ``event``: *String* คือ ชื่อเหตุการณ์ที่ทำให้เกิด Log - ``projects``: *[String]* คือ Array รหัสของ Project - ``data``: *JSON* คือ รายละเอียดข้อมูลของ Log - ``annotation``: *String* คือ ข้อความอธิบาย Log - ``note``: *String* คือ หมายเหตุ ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_billinglog.png BillingMetricUsageProfile ----------------------------------- สำหรับเข้าถึงข้อมูลการใช้งาน Service ต่าง ๆ ในรอบบิลปัจจุบันของแต่และ Billing Account ID นั้น ๆ รายละเอียดดังนี้ :BillingMetricUsageProfile ( billingaccountid ): Arguments - ``billingaccountid``: *String* คือ รหัสของ Billing Account (ต้องระบุ) Query Variables ``Authorization`` : User Token Response Type : BillingMetricUsageProfile ตอบกลับเป็น Object Type BillingMetricUsageProfile ประกอบด้วย - ``billingaccountid``: *String* คือ รหัสของ Billing Account - ``name``: *String* คือ ชื่อของ Billing Account - ``mode``: *String* คือ โหมดของ Billing Account - ``max_apicall``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน API Call ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_connection``: *Float* คือ จำนวนเวลาสะสมสูงสุดที่ Device Online ได้ ของรอบบิลปัจจุบัน (หน่วยเป็น วินาที) - ``max_datasource``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Datasource ของรอบบิลปัจจุบัน (หน่วยเป็น Byte) - ``max_message``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Real Time Message ของรอบบิลปัจจุบัน (หน่วยเป็น Message) - ``max_shadowops``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Shadow Read/Write ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_store``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Time Series Data Store ของรอบบิลปัจจุบัน (หน่วยเป็น Point-Day) - ``max_trigger``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Trigger & Action ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``use_apicall``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน API Call ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``use_connection``: *Float* คือ จำนวนเวลาที่ Device Online ไปแล้ว ของรอบบิลปัจจุบัน (หน่วยเป็น วินาที) - ``use_datasource``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Datasource ของรอบบิลปัจจุบัน (หน่วยเป็น Byte) - ``use_message``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Real Time Message ของรอบบิลปัจจุบัน (หน่วยเป็น Message) - ``use_shadowops``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Shadow Read/Write ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``use_store``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Time Series Data Store ของรอบบิลปัจจุบัน (หน่วยเป็น Point-Day) - ``use_trigger``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Trigger & Action ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``usage_begin_at``: *String* คือ วันเวลาที่รอบบิลเริ่มนับการใช้งาน - ``usage_update_at``: *String* คือ วันเวลาที่มีการอัพเดทข้อมูลล่าสุด ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_billingmetricusageprofile.png Device ------------------------- สำหรับเข้าถึงข้อมูล Device แต่ละตัวด้วย ID รายละเอียดดังนี้ :device ( deviceid ): Arguments - ``deviceid``: *String* คือ รหัสของ Device (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : Device ตอบกลับเป็น Object Type Device ประกอบด้วย - ``alias``: *String* คือ ชื่อของ Device - ``createdtime``: *Timestamp* คือ วันเวลาที่สร้าง Device - ``description``: *String* คือ คำอธิบาย Device - ``deviceid``: *String* คือ รหัสของ Device - ``devicetoken``: [String] คือ รายการ Token ทั้งหมดของ Device - ``devicesecret``: String คือ รหัสลับของ Device - ``groupid``: *String* คือ รหัสของ Group ที่ Device อยู่ภายใต้ - ``groupname``: *String* คือ ชื่อของ Group ที่ Device อยู่ภายใต้ - ``projectid``: *String* คือ รหัสของ Project ที่ Device อยู่ภายใต้ - ``status``: *Int* คือ สถานะการเชื่อมต่อ Platform ของ Device (``0`` offline, ``1`` online) - ``hashtag``: *[String]* คือ แท็กของ Device แบบหลายค่า - ``tags``: *JSON* คือ แท็กของ Device ในรูปแบบ Key Value - ``enabled``: *Boolean* คือ สถานะการเปิดใช้งาน Device (``true`` เปิดการใช้งาน [default], ``false`` ปิดการใช้งาน) - ``banned``: *Boolean* คือ สถานะถูกระงับใช้งานจากระบบ (``true`` ถูกรระงับใช้งาน, ``false`` ไม่ถูกรระงับใช้งาน [default]) - ``credential``: *Credential* คือ ข้อมูลสำหรับยืนยันตัวตน Object Type credential ประกอบด้วย - ``secret``: *String* คือ รหัสลับของ Device ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_device.png DeviceList ------------------------- สำหรับเข้าถึงรายการข้อมูล Device ตามตัวกรองประเภทต่างๆ รายละเอียดดังนี้ :deviceList ( fliter, orderBy, direction, limit, offset ): Arguments - ``fliter``: *DeviceFilterKey* คือ Object Type ของตัวกรองที่ใช้ระบุในการค้นหา ประกอบด้วย - ``projectid``: *String* คือ รหัสของ Project ที่ Device อยู่ภายใต้ (ต้องระบุ) - ``groupid``: *String* คือ รหัสของ Group ที่ Device อยู่ภายใต้ - ``alias``: *String* คือ ชื่อของ Device - ``hashtag``: *[String]* คือ แท็กของ Device แบบหลายค่า - ``tags``: *JSON* คือ แท็กของ Device ในรูปแบบ Key Value - ``status``: *Boolean* สถานะการเชื่อมต่อ Platform ของ Device (``true`` online, ``false`` offline) - ``orderBy``: *[DeviceSortKey]* คือ ตัวเลือกของฟิลด์ที่ระบุให้เป็นตัวเรียงลำดับข้อมูล ประกอบด้วย - ``createdtime`` เรียงตามวันที่เวลาที่สร้าง Device - ``alias`` (เรียงตามชื่อของ Device) - ``deviceid`` (เรียงตามรหัสของ Device) - ``status`` (เรียงตามสถานะการเชื่อมต่อ Platformของ Device) - ``direction``: *OrderDirection* คือ ตัวเลือกของลักษณะการเรียงลำดับ ประกอบด้วย - ``ASC`` (เรียงลำดับจากน้อยไปมาก) - ``DESC`` (เรียงลำดับจากมากไปน้อย) - ``limit``: *Int* คือ จำกัดจำนวนข้อมูลที่จะดึงออกมา - ``offset``: *Int* คือ ลำดับรายการของข้อมูลที่เริ่มดึงข้อมูล Query Variables ``Authorization``: User Token Response Type : [Device] ตอบกลับเป็น Array ของ Object Type Device ประกอบด้วย - ``alias``: *String* คือ ชื่อของ Device - ``createdtime``: *Timestamp* คือ วันเวลาที่สร้าง Device - ``description``: *String* คือ คำอธิบาย Device - ``deviceid``: *String* คือ รหัสของ Device - ``devicesecret``: String คือ รหัสลับของ Device - ``groupid``: *String* คือ รหัสของ Group ที่ Device อยู่ภายใต้ - ``groupname``: *String* คือ ชื่อของ Group ที่ Device อยู่ภายใต้ - ``projectid``: *String* คือ รหัสของ Project ที่ Device อยู่ภายใต้ - ``status``: *Int* คือ สถานะการเชื่อมต่อ Platform ของ Device (``0`` offline, ``1`` online) - ``hashtag``: *[String]* คือ แท็กของ Device แบบหลายค่า - ``tags``: *JSON* คือ แท็กของ Device ในรูปแบบ Key Value - ``enabled``: *Boolean* คือ สถานะการเปิดใช้งาน Device (``true`` เปิดการใช้งาน [default], ``false`` ปิดการใช้งาน) - ``banned``: *Boolean* คือ สถานะถูกระงับใช้งานจากระบบ (``true`` ถูกรระงับใช้งาน, ``false`` ไม่ถูกรระงับใช้งาน [default]) - ``credential``: *Credential* คือ ข้อมูลสำหรับยืนยันตัวตน Object Type credential ประกอบด้วย - ``secret``: *String* คือ รหัสลับของ Device ตัวอย่างการเข้าถึงรายการข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_devicelist.png DeviceToken ------------------------- สำหรับเข้าถึงข้อมูล Token ของ Device รายละเอียดดังนี้ :deviceToken ( deviceid ): Arguments - ``deviceid``: *String* คือ รหัสของ Device (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : DeviceToken ตอบกลับเป็น Object Type DeviceToken ประกอบด้วย - ``deviceid``: *String* คือ รหัสของ Device - ``tokencode``: *String* คือ รหัสของ Token - ``iat``: *String* คือ วันเวลาที่ออก Token (issued at) - ``nbf``: *String* คือ วันเวลาที่ Token จะเริ่มใช้งานได้ (not before) - ``exp``: *String* คือ วันเวลาหมดอายุของ Token (expiration time) - ``expireIn``: *String* คือ อายุของ Token ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_devicetoken.png Feed -------------- สำหรับเข้าถึงฟิลด์ข้อมูลของ Device ที่มีการตั้งค่าให้เก็บข้อมูลลง Time Series Data Store (เก็บข้อมูลย้อนหลัง) รายละเอียดดังนี้ :feed ( feedid ): Arguments - ``feedid``: *String* คือ รหัสของ Feed ซึ่งใช้ค่าเดียวกับ ``deviceid`` (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : Feed ตอบกลับเป็น Object Type Feed ประกอบด้วย - ``feedid``: *String* คือ รหัสของ Feed - ``attributes``: *JSON* คือ รายการฟิลด์ข้อมูล ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_feed.png FeedData -------------- สำหรับเข้าถึงข้อมูลแต่ละฟิลด์ใน Time Series Data Store ของ Device รายละเอียดดังนี้ :feedData ( feedid, attributes, starttime, endtime, aggregator, sampling, pointlimit, format ): Arguments - ``feedid``: *String* คือ รหัสของ Feed ซึ่งใช้ค่าเดียวกับ ``deviceid`` (ต้องระบุค่า) - ``attributes``: *[String]* คือ ชื่่อฟิลด์ที่ต้องการข้อมูล (ถ้าไม่ระบุจะเป็นการดึงข้อมูลทุกฟิลด์) - ``starttime``: *Timestamp* คือ ช่วงเวลาเริ่มต้นที่ต้องการข้อมูล - ``endtime``: *Timestamp* คือ ช่วงเวลาสิ้นสุดที่ต้องการข้อมูล - ``aggregator``: *String* คือ การตั้งค่าการรวมหรือประมวลผลข้อมูลในรูปแบบต่างๆ ก่อนส่งจุดข้อมูลกลับมา - ``sampling``: *String* คือ เงิ่อนไขการดึงตัวอย่างชุดข้อมูล - ``pointlimit``: *Int* คือ จำกัดจำนวนจุดข้อมูล - ``format``: *DataFormat* คือ รูปแบบข้อมูลที่ส่งกลับ (``JSON`` ค่า Default, ``TABLE``, ``CSV``) Query Variables ``Authorization``: User Token Response Type : FeedData ตอบกลับเป็น Object Type FeedData ประกอบด้วย - ``feedid``: *String* คือ รหัสของ Feed - ``data``: *JSON* คือ ข้อมูลในแต่ละฟิลด์ตามรูปแบบที่่เลือกไป ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_feeddata.png Group ------------------------- สำหรับเข้าถึงข้อมูล Group แต่ละ Group ด้วย ID รายละเอียดดังนี้ :group ( groupid ): Arguments - ``groupid``: *String* คือ รหัสของ Group (ต้องระบุ) Query Variables ``Authorization``: User Token Response Type : Group ตอบกลับเป็น Object Type Group ประกอบด้วย - ``groupid``: *String* คือ รหัสของ Group - ``groupname``: *String* คือ ชื่อของ Group - ``projectid``: *String* คือ รหัสของ Project ที่ Group อยู่ภายใต้ - ``createdtime``: *Timestamp* คือ วันเวลาที่สร้าง Group - ``description``: *String* คือ คำอธิบาย Group - ``devicecount``: *Int* คือ จำนวน Device ที่อยู่ภายใต้ Group - ``hashtag``: *[String]* คือ แท็กของ Group แบบหลายค่า - ``tags``: *Json* คือ แท็กของ Group ในรูปแบบ Key Value ตัวอย่างการเข้าถึงข้อมูล Group ดังรูปด้านล่าง .. image:: _static/gql2_group.png GroupList ------------------------- สำหรับเข้าถึงรายการข้อมูล Group ตามตัวกรองประเภทต่างๆ รายละเอียดดังนี้ :groupList ( fliter, orderBy, direction, limit, offset ): Arguments - ``fliter``: *GroupFilterKey* คือ Object Type ของตัวกรองที่ใช้ระบุในการค้นหา ประกอบด้วย - ``projectid``: *String* คือ รหัสของ Project ที่ Group อยู่ภายใต้ (ต้องระบุ) - ``groupname``: *String* คือ ชื่อของ Group - ``hashtag``: *[String]* คือ แท็กของ Group แบบหลายค่า - ``tags``: *TagsInput* คือ แท็กของ Group ในรูปแบบ Key Value - ``orderBy``: *[GroupSortKey]* คือ ตัวเลือกของฟิลด์ที่ระบุให้เป็นตัวเรียงลำดับข้อมูล ประกอบด้วย - ``groupname`` (เรียงตามชื่อของ Group) - ``groupid`` (เรียงตามรหัสของ Group) - ``createdtime`` เรียงตามวันที่เวลาที่สร้าง Device - ``direction``: *OrderDirection* คือ ตัวเลือกของลักษณะการเรียงลำดับ ประกอบด้วย - ``ASC`` (เรียงลำดับจากน้อยไปมาก) - ``DESC`` (เรียงลำดับจากมากไปน้อย) - ``limit``: *Int* คือ จำกัดจำนวนข้อมูลที่จะดึงออกมา - ``offset``: *Int* คือ ลำดับรายการของข้อมูลที่เริ่มดึงข้อมูล Query Variables ``Authorization``: User Token Response Type : [Group] ตอบกลับเป็น Array ของ Object Type Group ประกอบด้วย - ``groupid``: *String* คือ รหัสของ Group - ``groupname``: *String* คือ ชื่อของ Group - ``projectid``: *String* คือ รหัสของ Project ที่ Group อยู่ภายใต้ - ``createdtime``: *Timestamp* คือ วันเวลาที่สร้าง Group - ``description``: *String* คือ คำอธิบาย Group - ``devicecount``: *Int* คือ จำนวน Device ที่อยู่ภายใต้ Group - ``hashtag``: *[String]* คือ แท็กของ Group แบบหลายค่า - ``tags``: *Json* คือ แท็กของ Group ในรูปแบบ Key Value ตัวอย่างการเข้าถึงข้อมูล Group ดังรูปด้านล่าง .. image:: _static/gql2_grouplist.png Hook ------------------------- สำหรับเข้าถึงรายการข้อมูล Event Hook ที่มีการสรา้งไว้ ตามตัวกรองที่กำหนด รายละเอียดดังนี้ :hook ( projectid, hookid ): Arguments - ``projectid``: *String* คือ รหัสของ Project ที่ Hook อยู่ภายใต้ (ต้องระบุ) - ``hookid``: *String* คือ รหัสของ Hook Query Variables ``Authorization``: User Token Response Type : [Hook] ตอบกลับเป็น Array ของ Object Type Hook ประกอบด้วย - ``projectid``: *String* คือ รหัสของ Project ที่ Group อยู่ภายใต้ - ``name``: *String* คือ ชื่อของ Hook - ``hookid``: *String* คือ รหัสของ Hook - ``description``: *String* คือ คำอธิบาย Hook - ``type``: *String* คือ ประเภทของ Hook (ปัจจุบันมีแค่ 1 ประเภท คือ WEBHOOK ผู้ใช้จึงไม่ต้องเลือก) - ``enabled``: *Boolean* คือ สถานะการเปิดใช้งาน Hook (``true`` เปิดการใช้งาน [default], ``false`` ปิดการใช้งาน) - ``param``: *Json* คือ ตัวแปรต่างๆ ที่ใช้ตั้งค่าเพื่อส่งไปยังเว็บปลายทาง ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_hook.png Membership ------------------------- สำหรับเข้าถึงข้อมูลสมาชิกที่มีสิทธิ์เข้าถึงข้อมูลในแต่ละ Project ตามระดับสิทธิ์ที่ได้รับ รายละเอียดดังนี้ :membership ( projectid ): Arguments - ``projectid``: *String* คือ รหัสของ Project (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : [Membership] ตอบกลับเป็น Array ของ Object Type Membership ประกอบด้วย - ``createdtime``: *Timestamp* คือ วันเวลาที่สร้าง Membership - ``level``: *String* คือ ระดับสิทธิ์ของการเป็นสมาชิก มีทั้งหมด 5 ระดับ (ดูรายละเอียดสิทธิ์ได้ที่ :ref:`project-membership`) - ``5`` (Owner) - ``4`` (Master) - ``3`` (Editor) - ``2`` (Viewer) - ``1`` (Guest) - ``projectid``: *String* คือ รหัสของ Project ที่ได้รับสิทธิ์ - ``userid``: *String* คือ รหัสของผู้ใช้ที่ได้รับสิทธิ์ - ``username``: *String* คือ username ของผู้ใช้ที่ได้รับสิทธิ์ ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_projectmembership.png MyBillingAccount ------------------------- สำหรับเข้าถึงข้อมูลรายการ Billing Account ทั้งหมดของผู้ใช้ที่เป็นเข้าของ User Token รายละเอียดดังนี้ :MyBillingAccount (): Arguments ไม่มี ระบบจะตรวจสอบจาก User Token ว่าเป็นผู้ใช้รายไหน Query Variables ``Authorization``: User Token Response Type : [BillingMembershipProfile] ตอบกลับเป็น Array ของ Object Type BillingMembershipProfile ประกอบด้วย - ``billingaccountid``: *String* คือ รหัสของ Billing Account - ``name``: *String* คือ ชื่อของ Billing Account - ``mode``: *String* คือ โหมดของ Billing Account - ``status``: *String* คือ สถานะการเปิดใช้งาน (``ENABLED`` หรือ ``DISABLED``) - ``level``: *Int* คือ ระดับสิทธิ์ในการเข้าถึงข้อมูลได้ มีทั้งหมด 3 ระดับ - ``3`` (Owner) - ``2`` (Master) - ``1`` (Viewer) ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_mybillingaccount.png Project ------------------------- สำหรับเข้าถึงข้อมูล Project ด้วย ID รายละเอียดดังนี้ :project ( projectid ): Arguments (ต้องระบุอย่างน้อย 1 ค่า) - ``projectid``: *String* คือ รหัสของ Project (ต้องระบุค่า) Query Variables ``Authorization`` : User Token Response Type : Project ตอบกลับเป็น Object Type Project ประกอบด้วย - ``projectname``: *String* คือ ชื่อของ Project - ``projectid``: *String* คือ รหัสของ Project - ``createdtime``: *Timestamp* คือ วันเวลาที่สร้าง Project - ``description``: *String* คือ คำอธิบาย Project - ``tags``: *JSON* คือ แท็กของ Project ในรูปแบบ Key Value - ``hashtag``: *[String]* คือ แท็กของ Project แบบหลายค่า - ``numberdevice``: *Int* คือ จำนวน Device ภายใต้ Project - ``numbergroup``: *Int* คือ จำนวน Group ภายใต้ Project - ``numberdeviceonline``: *Int* คือ จำนวน Device ที่เชื่อมต่อ Platform อยู่ ณ ขณะนั้นภายใต้ Project - ``numberdeviceoffline``: *Int* c จำนวน Device ที่ไม่ได้เชื่อมต่อ Platform อยู่ ณ ขณะนั้นภายใต้ Project - ``quota``: *Quota* คือ สถานะของ Service แต่ละรายการที่มีโควต้าพร้อมใช้งาน ซึ่งประกอบด้วย - ``apicall``: *Boolean* คือ บริการ REST API (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``connection``: *Boolean* คือ บริการเชื่อมต่อ Platform ของ Device (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``message``: *Boolean* คือ บริการ Real Time Message ผ่าน MQTT Protocol (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``shadowops``: *Boolean* คือ บริการอ่าน/เขียน Shadow (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``store``: *Boolean* คือ บริการเก็บข้อมูลใน Time Series Data (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``trigger``: *Boolean* คือ บริการ Trigger & Action (Notification) (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``datasource``: *Boolean* คือ ผลรวมขนาด Byte ของข้อมูลที่มีการใช้บริการผ่าน ``apicall`` (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_project.png ProjectBillingAccountInfo ------------------------- สำหรับเข้าถึงข้อมูล Billing Account ของแต่ละ Project รายละเอียดดังนี้ :ProjectBillingAccountInfo ( projectid ): Arguments - ``projectid``: *String* คือ รหัสของ Project (ต้องระบุ) Query Variables ``Authorization`` : User Token Response Type : BillingAccountProfile ตอบกลับเป็น Object Type BillingAccountProfile ประกอบด้วย - ``billingaccountid``: *String* คือ รหัสของ Billing Account - ``name``: *String* คือ ชื่อของ Billing Account - ``mode``: *String* คือ โหมดของ Billing Account - ``allow_apicall``: *Boolean* คือ การอนุญาตใช้งาน API Call (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_connection``: *Boolean* คือ การอนุญาตใช้งาน Device Online (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_datasource``: *Boolean* คือ การอนุญาตใช้งาน Datasource (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_message``: *Boolean* คือ การอนุญาตใช้งาน Real Time Message (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_shadowops``: *Boolean* คือ การอนุญาตใช้งาน Shadow Read/Write (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_store``: *Boolean* คือ การอนุญาตใช้งาน Time Series Data Store (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) - ``allow_trigger``: *Boolean* คือ การอนุญาตใช้งาน Trigger & Action (``true`` ใช้งานได้, ``false`` ใช้งานไม่ได้) ตัวอย่างการเข้าถึงข้อมูล Project Billing ดังรูปด้านล่าง .. image:: _static/gql2_projectbillingaccountinfo.png ProjectBillingAccountSubscriptionProfile ----------------------------------------- สำหรับเข้าถึงข้อมูล Package Subscription ปัจจุบันของแต่และ Project รายละเอียดดังนี้ :ProjectBillingAccountSubscriptionProfile ( projectid ): Arguments - ``projectid``: *String* คือ รหัสของ Project (ต้องระบุ) Query Variables ``Authorization`` : User Token Response Type : BillingAccountSubscriptionProfile ตอบกลับเป็น Object Type BillingAccountSubscriptionProfile ประกอบด้วย - ``billingaccountid``: *String* คือ รหัสของ Billing Account - ``subscriptionname``: *String* คือ ชื่อของ Subscription - ``billtype``: *String* คือ ประเภทของ Billing (``PREPAID`` หรือ ``POSTPAID``) - ``status``: *String* คือ สถานะการเปิดใช้งาน (``ENABLED`` หรือ ``DISABLED``) - ``packageid``: *String* คือ *String* คือ รหัสของ Package ใช้งาน - ``packagename``: *String* คือ ชื่อของ Package ใช้งาน - ``total_cycle``: *Int* คือ จำนวนรอบการใช้งานได้ทั้งหมด - ``current_cycle``: *Int* คือ จำนวนรอบที่ใช้งานไปแล้ว ณ ปัจจุบัน - ``subscription_start_at``: *String* คือ วันเวลาทรี่เริ่มต้นใช้งาน Subscription - ``current_cycle_start_at``: *String* คือ วันเวลาที่เริ่มรอบการใช้ปัจจุบัน - ``current_cycle_end_at``: *String* คือ วันเวลาที่สิ้นสุดรอบการใช้ปัจจุบัน - ``max_apicall``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน API Call ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_connection``: *Float* คือ จำนวนเวลาสะสมสูงสุดที่ Device Online ได้ ของรอบบิลปัจจุบัน (หน่วยเป็น วินาที) - ``max_datasource``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Datasource ของรอบบิลปัจจุบัน (หน่วยเป็น Byte) - ``max_message``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Real Time Message ของรอบบิลปัจจุบัน (หน่วยเป็น Message) - ``max_shadowops``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Shadow Read/Write ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_store``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Time Series Data Store ของรอบบิลปัจจุบัน (หน่วยเป็น Point-Day) - ``max_trigger``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Trigger & Action ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_device_per_billing``: *Int* คือ จำนวน Device สูงสุดที่สามารถสร้างได้ในแต่ละ Billing Account - ``max_member_per_project``: *Int* คือ จำนวนสมาชิกสูงสุดที่สามารถ Invite ได้ในแต่ละ Project - ``max_project_per_billing``: *Int* คือ จำนวน Project สูงสุดที่สามารถสร้างได้ในแต่ละ Billing Account - ``note``: *String* คือ หมายเหตุ ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_projectbillingaccountsubscriptionprofile.png ProjectBillingMetricUsageProfile ----------------------------------- สำหรับเข้าถึงข้อมูลการใช้งาน Service ต่าง ๆ ในรอบบิลปัจจุบันของแต่และ Project รายละเอียดดังนี้ :ProjectBillingMetricUsageProfile ( projectid ): Arguments - ``projectid``: *String* คือ รหัสของ Project (ต้องระบุ) Query Variables ``Authorization`` : User Token Response Type : BillingMetricUsageProfile ตอบกลับเป็น Object Type BillingMetricUsageProfile ประกอบด้วย - ``billingaccountid``: *String* คือ รหัสของ Billing Account - ``name``: *String* คือ ชื่อของ Billing Account - ``mode``: *String* คือ โหมดของ Billing Account - ``max_apicall``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน API Call ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_connection``: *Float* คือ จำนวนเวลาสะสมสูงสุดที่ Device Online ได้ ของรอบบิลปัจจุบัน (หน่วยเป็น วินาที) - ``max_datasource``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Datasource ของรอบบิลปัจจุบัน (หน่วยเป็น Byte) - ``max_message``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Real Time Message ของรอบบิลปัจจุบัน (หน่วยเป็น Message) - ``max_shadowops``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Shadow Read/Write ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``max_store``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Time Series Data Store ของรอบบิลปัจจุบัน (หน่วยเป็น Point-Day) - ``max_trigger``: *Float* คือ จำนวนโควต้าสะสมสูงสุดสำหรับใช้งาน Trigger & Action ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``use_apicall``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน API Call ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``use_connection``: *Float* คือ จำนวนเวลาที่ Device Online ไปแล้ว ของรอบบิลปัจจุบัน (หน่วยเป็น วินาที) - ``use_datasource``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Datasource ของรอบบิลปัจจุบัน (หน่วยเป็น Byte) - ``use_message``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Real Time Message ของรอบบิลปัจจุบัน (หน่วยเป็น Message) - ``use_shadowops``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Shadow Read/Write ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``use_store``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Time Series Data Store ของรอบบิลปัจจุบัน (หน่วยเป็น Point-Day) - ``use_trigger``: *Float* คือ จำนวนโควต้าที่ใช้งานไปแล้วในส่วน Trigger & Action ของรอบบิลปัจจุบัน (หน่วยเป็น Operation) - ``usage_begin_at``: *String* คือ วันเวลาที่รอบบิลเริ่มนับการใช้งาน - ``usage_update_at``: *String* คือ วันเวลาที่มีการอัพเดทข้อมูลล่าสุด ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_projectbillingmetricusageprofile.png ProjectList ------------------------- สำหรับเข้าถึงข้อมูล Project ด้วย ID รายละเอียดดังนี้ :projectList ( fliter, orderBy, direction, limit, offset ): Arguments - ``fliter``: *ProjectPFilterKey* คือ Object Type ของตัวกรองที่ใช้ระบุในการค้นหา ประกอบด้วย - ``projectname``: *String* คือ ชื่อของ Project - ``hashtag``: *[String]* คือ แท็กของ Project แบบหลายค่า - ``tags``: *JSON* คือ แท็กของ Project ในรูปแบบ Key Value - ``orderBy``: *[ProjectSortKey]* คือ ตัวเลือกของฟิลด์ที่ระบุให้เป็นตัวเรียงลำดับข้อมูล ประกอบด้วย - ``projectid`` (เรียงตามรหัสของ Project) - ``projectname`` (เรียงตามชื่อของ Project) - ``createdtime`` เรียงตามวันที่เวลาที่สร้าง Project - ``direction``: *OrderDirection* คือ ตัวเลือกของลักษณะการเรียงลำดับ ประกอบด้วย - ``ASC`` (เรียงลำดับจากน้อยไปมาก) - ``DESC`` (เรียงลำดับจากมากไปน้อย) - ``limit``: *Int* คือ จำกัดจำนวนข้อมูลที่จะดึงออกมา - ``offset``: *Int* คือ ลำดับรายการของข้อมูลที่เริ่มดึงข้อมูล Query Variables ``Authorization`` : User Token Response Type : [Project] ตอบกลับเป็น Array ของ Object Type Project ประกอบด้วย - ``projectname``: *String* คือ ชื่อของ Project - ``projectid``: *String* คือ รหัสของ Project - ``description``: *String* คือ คำอธิบาย Project - ``userlevel``: *String* คือ ระดับสิทธิ์การเข้าถึงข้อมูล Project - ``createdtime``: *Timestamp* คือ วันเวลาที่สร้าง Project - ``tags``: *Json* คือ แท็กของ Project ในรูปแบบ Key Value - ``hashtag``: *[String]* คือ แท็กของ Project แบบหลายค่า - ``numberdevice``: *Int* คือ จำนวน Device ภายใต้ Project - ``numbergroup``: *Int* คือ จำนวน Group ภายใต้ Project - ``numberdeviceonline``: *Int* คือ จำนวน Device ที่เชื่อมต่อ Platform อยู่ ณ ขณะนั้นภายใต้ Project - ``numberdeviceoffline``: *Int* c จำนวน Device ที่ไม่ได้เชื่อมต่อ Platform อยู่ ณ ขณะนั้นภายใต้ Project - ``quota``: *Quota* คือ สถานะของ Service แต่ละรายการที่มีโควต้าพร้อมใช้งาน ซึ่งประกอบด้วย - ``apicall``: *Boolean* คือ บริการ REST API (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``connection``: *Boolean* คือ บริการเชื่อมต่อ Platform ของ Device (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``message``: *Boolean* คือ บริการ Real Time Message ผ่าน MQTT Protocol (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``shadowops``: *Boolean* คือ บริการอ่าน/เขียน Shadow (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``store``: *Boolean* คือ บริการเก็บข้อมูลใน Time Series Data (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``trigger``: *Boolean* คือ บริการ Trigger & Action (Notification) (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) - ``datasource``: *Boolean* คือ ผลรวมขนาด Byte ของข้อมูลที่มีการใช้บริการผ่าน ``apicall`` (``true`` มีโควต้าพร้อมใช้งาน, ``false`` ใช้งานไม่ได้หรือไม่มีโควต้า) ตัวอย่างการเข้าถึงรายกาารข้อมูล Project ดังรูปด้านล่าง .. image:: _static/gql2_projectlist.png Schema ------------------------- สำหรับเข้าถึงข้อมูล Shadow Schema ของ Device รายละเอียดดังนี้ :schema ( deviceid ): Arguments - ``deviceid``: *String* คือ รหัสของ Device (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : Schema ตอบกลับเป็น Object Type Schema ประกอบด้วย - ``deviceid``: *String* คือ รหัสของ Device - ``value``: *JSON* คือ Shadow Schema ที่กำหนดไว้ ซึ่งจะอยู่ในรูปแบบ JSON ตัวอย่างการเข้าถึงข้อมูล Shadow Schema ของ Device ดังรูปด้านล่าง .. image:: _static/gql2_schema.png Shadow ------------------------- สำหรับเข้าถึงข้อมูล Shadow ของ Device รายละเอียดดังนี้ :shadow ( deviceid ): Arguments - ``deviceid``: *String* คือ รหัสของ Device (ต้องระบุค่า) - ``command``: *Command* คือ Object Type Command ประกอบด้วยระบุ - ``value``: *String* คือ โครงสร้าง Shadow ที่ต้องการเข้าถึงค่า (กรณีที่ต้องการข้อมูลบางส่วนใน Shadow) Query Variables ``Authorization``: User Token Response Type : Shadow ตอบกลับเป็น Object Type Shadow ประกอบด้วย - ``deviceid``: *String* คือ รหัสของ Device - ``data``: *JSON* คือ Shadow ที่กำหนดไว้ ซึ่งจะอยู่ในรูปแบบ JSON - ``rev``: *Int* คือ เลขที่ Revision - ``modified``: *Timestamp* คือ วันเวลาที่มีการแก้ไขข้อมูลล่าสุด ตัวอย่างการเข้าถึงข้อมูล Shadow ของ Device จะได้ Shadow มาทั้งหมด ดังรูปด้านล่าง .. image:: _static/gql2_shadow.png Trigger ------------------------- สำหรับเข้าถึงข้อมูล Trigger ของ Device รายละเอียดดังนี้ :trigger ( deviceid, triggerid, type ): Arguments - ``deviceid``: *String* คือ รหัสของ Device (ต้องระบุค่า) - ``triggerid``: *String* คือ รหัสของ Trigger - ``type``: *String* คือ ประเภท Trigger (``DEVICE``, ``SHADOW``) Query Variables ``Authorization``: User Token Response Type : Trigger ตอบกลับเป็น Object Type Trigger ประกอบด้วย - ``triggerid``: *String* คือ รหัสของ Trigger - ``triggername``: *String* คือ ชื่อของ Trigger - ``type``: *String* คือ ประเภท Trigger (``DEVICE``, ``SHADOW``) - ``event``: *String* คือ ประของเหตุการณ์ที่เกิด Trigger (``STATUSCHANGED`` คู่กับ Trigger ประเภท ``DEVICE``, ``UPDATED`` คู่กับ Trigger ประเภท ``SHADOW``) - ``condition``: *String* คือ เงื่อนไขการเกิด Trigger - ``action``: *String* คือ Event Hook ที่จะรับไปดำเนินการต่อเมื่อเกิด Trigger - ``context``: *[ActionVarType]* คือ ตัวแปร Key-Value ที่จะส่งค่าไปใช้งานต่อที่ Event Hook - ``enabled``: *Boolean* คือ สถานะการเปิดใช้งาน (``true`` เปิดใช้งาน, ``false`` ปิดใช้งาน) ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_trigger.png UserByUserID ------------------------- สำหรับเข้าถึงข้อมูล User ด้วย ID รายละเอียดดังนี้ :userByUserID ( userid ): Arguments - ``userid``: *String* คือ รหัสของ User (ต้องระบุค่า) Query Variables ``Authorization``: User Token Response Type : Trigger ตอบกลับเป็น Object Type Trigger ประกอบด้วย - ``username``: *String* คือ ชื่อผู้ใช้ - ``enail``: *String* คือ อีเมลผู้ใช้ - ``profile``: *Profile* คือ Object Type Profile ประกอบด้วย - ``fullname``: *String* คือ ชื่อ-นามสกุล - ``phonenumber``: *String* คือ หมายเลขโทรศัพท์ - ``organization``: *String* คือ ชื่อหน่วยงาน/องค์กร/บริษัท ที่สังกัด - ``created``: *String* คือ วันเวลาที่ลงทะเบียน - ``userid``: *String* คือ รหัสของ User - ``option``: *Option* คือ ประเภท User (``oneid`` ID จากระบบ OneID) ตัวอย่างการเข้าถึงข้อมูล ดังรูปด้านล่าง .. image:: _static/gql2_userbyid.png