openapi: 3.0.3
info:
  title: 単語登録クラス名
  version: v1
  description: |
    ユーザー辞書の単語登録で用いられるクラス名一覧を取得します。クラスはハイブリッドエンジンの単語登録にのみ存在し、End to End エンジンの単語強調にはありません。

servers:
  - url: https://acp-api.amivoice.com

tags:
  - name: classnames
    x-displayName: 単語登録クラス名

paths:
  /classnames/{dgn}:
    get:
      tags:
        - classnames
      summary: 単語登録クラス名一覧の取得
      operationId: getClassNames
      security:
        - bearerAuth: []
      description: |
        ユーザー辞書の単語登録で用いられるクラス名一覧を取得します。
      parameters:
        - name: dgn
          in: path
          required: true
          description: |
            接続エンジン名

            `-a-general`などの接続エンジン名を指定します。指定できる値は[音声認識エンジンの一覧](/amivoice-api/manual/engines#list)を参照してください。パスパラメータとして設定します。
          schema:
            type: string
        - name: adf
          in: query
          required: false
          description: |
            音声データ形式

            `16k`または`8k`のいずれかを指定します。指定しない場合は`16k`となります。[音声認識エンジン](/amivoice-api/manual/engines#list)によっては複数のサンプリングレートに対応していますが、ユーザー辞書は`8k`、`16k`でそれぞれ異なるエンジンとしてとりあつかうためにどちらかを指定する必要があります。クエリパラメータとして設定します。
          schema:
            type: string
            enum:
              - 16k
              - 8k
            default: 16k
      responses:
        "200":
          description: クラス名一覧をJSON形式で返します。
          content:
            application/json:
              schema:
                type: object
                properties:
                  classnames:
                    type: array
                    description: クラス名。クラス名が配列形式で得られます
                    items:
                      type: string
              example:
                classnames:
                  - 固有名詞
                  - 名前
                  - 名前(名)
                  - 駅名
                  - 地名
                  - 会社名
                  - 部署名
                  - 役職名
                  - 記号
                  - 括弧開き
                  - 括弧閉じ
                  - 元号
        "401":
          description: |
            API キー（サービス認証キー文字列）の認証に失敗した時に返されます。

            | レスポンスボディ | エラーの状況 |
            |---|---|
            | `{"code":"-","message":"can't verify service authorization"}` | API キーの認証に失敗した時 |
            | `{"code":"-","message":"service authorization has expired: <expirationTime> (<expiresIn>)"}` | API キーの有効期限が切れている時 |
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              example:
                code: "-"
                message: "can't verify service authorization"
        "404":
          description: |
            ディクテーショングラマファイル名 `<dgn>` が指定されていない時に返されます。

            | レスポンスボディ | エラーの状況 |
            |---|---|
            | `{"code":"?","message":"missing dictation grammar file name"}` | 接続エンジン名 `<dgn>` が指定されていない時 |
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              example:
                code: "?"
                message: "missing dictation grammar file name"
        "405":
          description: |
            POST が指定された時に返されます。

            | レスポンスボディ | エラーの状況 |
            |---|---|
            | `{"code":"?","message":"POST method is not allowed"}` | POST が指定された時 |
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              example:
                code: "?"
                message: "POST method is not allowed"
        "500":
          description: |
            想定外の例外が発生した時に返されます。

            | レスポンスボディ | エラーの状況 |
            |---|---|
            | `{"code":"?","message":"unexpected exception occurred (<optionalMessage>)"}` | 想定外の例外が発生した時 |
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
              example:
                code: "?"
                message: "unexpected exception occurred (<optionalMessage>)"

components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |
        API キーはAuthorizationヘッダーに指定してください。

        ```text
        Authorization: Bearer {APIキー}
        ```
  schemas:
    ErrorResponse:
      type: object
      title: エラーレスポンス
      properties:
        code:
          type: string
          description: エラーコード。エラーの種別を示すコード
        message:
          type: string
          description: エラーメッセージ。エラー内容の詳細を説明するテキスト
