# APIを使ったSandboxステータスでのセマンティックタイプの編集

利用対象...

* Cloud API Services Platform
* Cloud Big Data
* Cloud Big Data Platform
* Cloud Data Fabric
* Cloud Data Integration
* Cloud Data Management Platform
* Cloud Pipeline Designer Standard Edition
* Data Fabric
* Qlik Talend Cloud Enterprise Edition

セマンティックタイプのタイプを定義します。

* DICTタイプ: 値の有効なリストや終了したリストに基づきます。
* REGEXタイプ: 事前に選択した正規表現とデータを比較します。
* COMPOUNDタイプ: 複数の既存のセマンティックタイプへとグルーピングできます。

## 手順

1. パーソナルアクセストークンがまだない場合は1つ生成します。詳細は、[パーソナルアクセストークンを生成](https://help.qlik.com/talend/r/ja-JP/Cloud/management-console-user-guide/cloud-access-token)をご覧ください。
2. ブラウザーでTalend API Testerを開きます。
3. [Repository] (リポジトリー)タブの[Method] (メソッド)ドロップダウンリストで、[Pqtch]を選択します。
4. https://tds.{region}.cloud.talend.com/semanticservice/categories/{{categoryID}}}というURLを入力します。

   各データセンターで使用するURLのリストは、[Talend Cloudのアプリケーションにアクセス](https://help.qlik.com/talend/ja-JP/installation-guide-windows/Cloud/talend-cloud-application-url)で確認できます。

   {{categoryID}}はセマンティックタイプを作成した時に返される識別子で、たとえば5f80848e51b6b16703a4318dとなります。
5. [Add hearder] (ヘッダーの追加)ボタンをクリックし、[name] (名前)フィールドに Authorizationと、そして[value] (値)フィールドにBearerに続けて空白スペースと自分のトークンを入力します。
6. [Add header] (ヘッダーの追加)ボタンをクリックし、[name] (名前)フィールドにCookieと入力します。[value] (値)フィールドを空のままにしておきます。
7. [Body] (ボディ)フィールドに、JSONによるセマンティックモデル詳細を含めます。
   * セマンティックタイプをDICTとして定義する場合は、次のように入力します。

     ```
     {
         "name": "{{DICT_NAME}}",
         "label": "{{DICT_LABEL}}",
         "type": "DICT",
         "validationMode": "{{VALIDATION_MODE}}"
     }
     ```

     各部の説明

     * {{DICT\_NAME}}: セマンティックタイプのテクニカル名
     * {{DICT\_LABEL}}: アプリケーションで表示されるセマンティックタイプの名前
     * DICT: タイプ
     * {{VALIDATION\_MODE}}: 次のいずれかとなります。
       * [SIMPLIFIED] (簡略化): 検証中は句読点、空白、大文字小文字アクセントは無視され、データは有効と見なされます。
       * EXACT: データは値と完全に一致する場合にのみ有効と見なされます。
       * EXACT\_IGNORE\_CASE\_AND\_ACCENT: 検証中は大文字小文字とアクセントが無視され、データは有効と見なされます。

   * セマンティックタイプをREGEXとして定義する場合は、次のように入力します。

     ```
     {
         "name": "{{REGEX_NAME}}",
         "label": "{{REGEX_NAME}}",
         "type": "REGEX",
         "validationMode": "{{VALIDATION_MODE}}",
         "regEx": {
             "mainCategory": "{{MAIN_CATEGORY}}",
             "validator": {
                 "patternString": "{{REGEX_SYNTAX}}"
             }
         }
     }
     ```

     各部の説明

     * {{REGEX\_NAME}}: セマンティックタイプのテクニカル名
     * {{REGEX\_NAME}}: アプリケーションで表示されるセマンティックタイプの名前
     * REGEX: タイプ
     * {{VALIDATION\_MODE}}: 次のいずれかとなります。
       * [SIMPLIFIED] (簡略化): 検証中は句読点、空白、大文字小文字アクセントは無視され、データは有効と見なされます。
       * EXACT: データは値と完全に一致する場合にのみ有効と見なされます。
       * EXACT\_IGNORE\_CASE\_AND\_ACCENT: 検証中は大文字小文字とアクセントが無視され、データは有効と見なされます。
     * regEx: 正規表現を定義します。
       * {{MAIN\_CATEGORY}}はAlpha、AlphaNumeric、Numeric、BLANK、NULLのいずれかとなります。
       * {{REGEX\_SYNTAX}}は正規表現構文で、たとえば^(?!01000|99999)(0[1-9]\\d{3}|[1-9]\\d{4})$となります。

   * セマンティックタイプをREGEXとして定義する場合は、次のように入力します。

     ```
     {
         "name": "COMPOUND_NAME",
         "label": "COMPOUND_LABEL",
         "type": "COMPOUND",
         "children": [
             "{{childCategoryID}}"
         ]
     }
     ```

     各部の説明

     * COMPOUND\_NAME: セマンティックタイプのテクニカル名
     * COMPOUND\_LABEL: アプリケーションで表示されるセマンティックタイプの名前
     * COMPOUND: タイプ
     * {{childCategoryID}}: 作成中のセマンティックタイプ下でグルーピングされているセマンティックタイプの識別子
   ### 例
   ```
   {
       "name": "CODICE_FISCALE_CREATED_VIA_API",
       "label": "Codice Fiscale (created via API)",
       "type": "REGEX",
       "validationMode": "SIMPLIFIED",
       "regEx": {
           "mainCategory": "AlphaNumeric",
           "validator": {
               "patternString": "^[A-Z]{6}[0-9]{2}[A-Z][0-9]{2}[A-Z][0-9]{3}[A-Z]$"
           }
       }
   }
   ```
8. [Send] (送信)をクリックします。

## タスクの結果

リクエストが成功したことを表す204 HTTPコードがAPIによって返されます。

GET https://tds.{region}.cloud.talend.com/semanticservice/categories?state=SANDBOX操作を使えば、Sandboxステータスのセマンティックタイプをリスト表示できます。レスポンスには、行った変更を伴うセマンティックタイプが含まれています。例:

```
    {
        "id": "5f80848e51b6b16703a4318d",
        "name": "CODICE_FISCALE_CREATED_VIA_API",
        "label": "Codice Fiscale (created via API)",
        "type": "REGEX",
        "creator": "6be3b335-05c9-4a3b-92d6-c5821f398bac",
        "creatorName": "John Doe",
        "createdAt": 1602258062631,
        "regEx": {
            "mainCategory": "AlphaNumeric",
            "validator": {
                "patternString": "^[A-Z]{6}[0-9]{2}[A-Z][0-9]{2}[A-Z][0-9]{3}[A-Z]$",
                "caseInsensitive": true,
                "re2jCompliant": true,
                "generexCompliant": true
            }
        },
        "modifiedAt": 1602262635946,
        "lastModifier": "6be3b335-05c9-4a3b-92d6-c5821f398bac",
        "lastModifierName": "John Doe",
        "completeness": false,
        "validationMode": "SIMPLIFIED",
        "state": "SANDBOX"
    }
```