# APIを使ったキャンペーンの作成

利用対象...

* 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

キャンペーンは、データモデル名とキャンペーン設定を指定して作成します。キャンペーン名を含めることができます。名前は^[a-z][a-z\d\-]\*$というパターンに一致させる必要があります。

応答にはフィールドidが含まれているので、後でキャンペーンを編集する時に便利です。

この例ではリクエストの送信でTalend API Testerが使われます。

Talend API Testerの詳細は、[Talend Cloud API Testerユーザーガイド](https://help.qlik.com/talend/r/ja-JP/Cloud/api-tester-user-guide)をご覧ください。

## 始める前に

GET https://tds.{region}.cloud.talend.com/schemaservice/api/v1/schemas/org.talend.schema/{dataModelName} 操作を使い、 [APIを使用したデータモデルを読んでいます](https://help.qlik.com/talend/ja-JP/data-stewardship-user-guide/Cloud/api-tds-read-datamodel)。

## 手順

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] (メソッド)ドロップダウンリストで、Postを選択します。
4. https://tds.{region}.cloud.talend.com/data-stewardship/api/v1/campaigns/ownedというURLを入力します。

   各データセンターで使用するURLのリストは、[Talend Cloudのアプリケーションにアクセス](https://help.qlik.com/talend/ja-JP/installation-guide-windows/Cloud/talend-cloud-application-url)で確認できます。
5. [Add hearder] (ヘッダーの追加)ボタンをクリックし、[name] (名前)フィールドに Authorizationと、そして[value] (値)フィールドにBearerに続けて空白スペースと自分のトークンを入力します。
6. [Add header] (ヘッダーの追加)ボタンをクリックし、[name] (名前)フィールドにCookieと入力します。[value] (値)フィールドを空のままにしておきます。
7. [Body] (ボディ)フィールドに、JSONによるキャンペーンの詳細を含めます。
   ### 例

   ガイドツアーのものと同じDemo - Improve product catalog data qualityキャンペーンを作成する場合は、別の名前(my-campaign-resolution-created-via-apiやmy\_products\_created\_via\_APIなど)を使って次のように入力します:
   ```
   {
       "campaign": {
           "name": "my-campaign-resolution-created-via-api",
           "label": "Improve product catalog data quality (created via API)",
           "description": "Increase the level of data quality for each product catalog.",
           "owners": ["owner@account.com"],
           "taskType": "RESOLUTION",
           "schemaRef": {
               "namespace": "org.talend.schema",
               "name": "my_products_created_via_API",
               "version": 1,
               "displayName": "Product (created via API)"
           },
           "taskResolutionDelay": {
               "value": 10,
               "unit": "DAYS"
           },
           "workflow": {
               "name": "default workflow",
               "states": [{
                   "name": "New",
                   "label": "New",
                   "transitions": [{
                       "name": "To validate",
                       "label": "To validate",
                       "targetStateName": "To validate",
                       "allowedRoles": ["Supervisor"]
                   }],
                   "allowedRoles": [],
                   "translations": {}
               }, {
                   "name": "To validate",
                   "label": "To validate",
                   "transitions": [{
                       "name": "Accept",
                       "label": "Accept",
                       "targetStateName": "Resolved",
                       "allowedRoles": ["Validator"]
                   }, {
                       "name": "Reject",
                       "label": "Reject",
                       "targetStateName": "New",
                       "allowedRoles": ["Validator"]
                   }],
                   "allowedRoles": [],
                   "translations": {}
               }, {
                   "name": "Resolved",
                   "label": "Resolved",
                   "transitions": [],
                   "allowedRoles": ["Validator"],
                   "translations": {}
               }]
           }
       },
       "participants": {
           "Supervisor": ["steward1@account.com"],
           "Validator": ["steward1@account.com"]
       }
   }
   ```

   "owners"の値にはキャンペーン所有者のユーザー名を含める必要があります。

   "schemaRef":オブジェクトには、目的のデータモデルの"namespace"値、"name"値、"version"値、"displayName"値を含める必要があります。この情報を取り出すには、 [APIを使用したデータモデルを読む](https://help.qlik.com/talend/ja-JP/data-stewardship-user-guide/Cloud/api-tds-read-datamodel)をご覧ください。

   "Supervisor"値と"Validator"値には、これらのロールで必要とされるデータスチュワードのユーザー名を含める必要があります。
8. [Send] (送信)をクリックします。

## タスクの結果

リクエストが成功したことを表す200 HTTPコードがAPIによって返されます。この応答には、データモデル属性のJSONによるアップデート済み説明が含まれています。

```
{
    "id": "5f4694d651bfb7000154b5b2",
    "createdBy": "owner",
    "lastUpdatedBy": "owner@account.com",
    "creationDate": 1601831320,
    "lastUpdateDate": 1601831320,
    "name": "my-campaign-resolution-created-via-api",
    "label": "Improve product catalog data quality (created via API)",
    "description": "Increase the level of data quality for each product catalog.",
    "owners": [
        "owner@account.com"
    ],
    "ownersDetail": [
        {
            "firstName": "FIRSTNAME",
            "lastName": "LASTNAME",
            "username": "owner@account.com",
            "enabled": true,
            "preferredLanguage": "en",
            "email": "owner@account.com",
            "id": "6be3b335-05c9-4a3b-92d6-c5821f398bac"
        }
    ],
    "status": "STARTED",
    "startDate": 1598461142854,
    "endDate": null,
    "taskType": "RESOLUTION",
    "schemaRef": {
        "namespace": "org.talend.schema",
        "name": "demo_product",
        "version": 1,
        "displayName": "Demo - Product"
    },
    "impactAnalysisStatus": null,
    "fieldsAccess": null,
    "taskResolutionDelay": {
        "value": 10,
        "unit": "DAYS"
    },
    "workflow": {
        "id": null,
        "createdBy": "6be3b335-05c9-4a3b-92d6-c5821f398bac",
        "lastUpdatedBy": "6be3b335-05c9-4a3b-92d6-c5821f398bac",
        "creationDate": 1598461142855,
        "lastUpdateDate": 1598461142855,
        "tenantId": null,
        "name": "default workflow",
        "states": [
            {
                "name": "New",
                "label": "New",
                "transitionQuestion": null,
                "transitions": [
                    {
                        "name": "To validate",
                        "label": "To validate",
                        "targetStateName": "To validate",
                        "allowedRoles": [
                            "Supervisor"
                        ]
                    }
                ],
                "allowedRoles": [],
                "translations": {}
            },
            {
                "name": "To validate",
                "label": "To validate",
                "transitionQuestion": null,
                "transitions": [
                    {
                        "name": "Accept",
                        "label": "Accept",
                        "targetStateName": "Resolved",
                        "allowedRoles": [
                            "Validator"
                        ]
                    },
                    {
                        "name": "Reject",
                        "label": "Reject",
                        "targetStateName": "New",
                        "allowedRoles": [
                            "Validator"
                        ]
                    }
                ],
                "allowedRoles": [],
                "translations": {}
            },
            {
                "name": "Resolved",
                "label": "Resolved",
                "transitionQuestion": null,
                "transitions": [],
                "allowedRoles": [
                    "Validator"
                ],
                "translations": {}
            }
        ]
    }
}
```

キャンペーンを編集する場合は、この応答の最初のid値を書き留めておきます。