どうも若松です。

SORACOM API では、エンドポイントの /gadgets にリクエストを送ることで Button の情報を取得することができます。
APIの一覧は以下となります。
https://dev.soracom.io/jp/docs/api/#/Gadget

しかし、インフラエンジニアの私は生のエンドポイントを叩くことに慣れていません。
やはり馴染みのあるCLIで叩きたいわけです。

そこで何の気なしに soracom-cli の github を覗いたところ、gadgets サブコマンドがリリースされていたので、使ってみました。

soracom-cli

soracom-cli は SORACOM から公式で提供されているコマンドラインツールで、コマンドラインからAPIを叩くことができます。

インストール手順は github のREADMEに記載されています。
https://github.com/soracom/soracom-cli/blob/master/README_ja.md

soracom-cli の利用には(というかAPIを叩くには)、SAMの AuthKeyIdAuthKey が必要ですが、取得方法等は割愛します。
SAM については以下にまとまっています。
https://dev.soracom.io/jp/start/sam/

Button の情報を取得する

Button 単体の情報を取得するには、以下のコマンドを実行します。

soracom gadgets get --product-id button --serial-number XXXXXXXXXXXXXXXX

--product-id には button を指定します。
(おそらく Button 以外の gadgets がリリースされれば他の値と使い分けることになると思います)
--serial-number には製造番号(DSN)を指定します。

レスポンスは 以下のような Button 情報の JSON となります。

{
    "attributes": {
        "contractEndingTime": "yyyy-mm-ddThh:mm:ss.xxxZ",
        "firstClickTimestamp": "yyyy-mm-ddThh:mm:ss.xxxZ",
        "remainingCount": 1400
    },
    "createdTime": XXXXXXXXXXXXX,
    "id": "button/XXXXXXXXXXXXXXXX",
    "lastModifiedTime": XXXXXXXXXXXXX,
    "lastSeen": {
        "batteryLevel": 1,
        "clickEventPropagated": true,
        "clickTime": "yyyy-mm-ddThh:mm:ss.xxxZ",
        "clickType": "SINGLE"
    },
    "operatorId": "OPXXXXXXXXXX",
    "productId": "button",
    "serialNumber": "XXXXXXXXXXXXXXXX",
    "status": "active",
    "tags": {},
    "terminatedTime": null,
    "terminationEnabled": false
}

まとめ

soracom-cli は AWSCLI と使用感が非常に似ているので、AWSCLIユーザであれば慣れると思います。
スクリプトに組み込む際に、活用してみてはいかがでしょうか。

元記事はこちら

soracom-cliでButtonの情報を取得してみた