

AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) は、新規のお客様に公開されなくなりました。 AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) と同様の機能については、 AWS Mainframe Modernization Service (セルフマネージドエクスペリエンス) をご覧ください。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、[AWS 「 Mainframe Modernization の可用性の変更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# メインフレームの AWS 変換で JICS アプリケーションコンソールを管理する
<a name="ba-endpoints-jac"></a>

JICS コンポーネントは、レガシー CICS リソースのモダナイゼーションのためのメインフレームサポートの AWS 変換です。JICS アプリケーションコンソールのウェブアプリケーションは、JICS リソースの管理専用です。次のエンドポイントを使用すると、JAC ユーザーインターフェイスを操作しなくても管理タスクを実行できます。エンドポイントが認証を要求する場合は、必ず、リクエストには認証の詳細 (通常は基本的な認証で要求されるユーザー名/パスワード) を含める必要があります。JICS アプリケーションコンソールのウェブアプリケーションのエンドポイントには、ルートパス `/jac/` を使用します。

**Topics**
+ [JICS リソースの管理](#ba-endpoints-jac-resources)
+ [その他](#ba-endpoints-jac-other)
+ [JAC ユーザー管理エンドポイント](#ba-endpoints-jac-users)

## JICS リソースの管理
<a name="ba-endpoints-jac-resources"></a>

次のエンドポイントは、すべて JICS リソース管理に関連するものであり、JICS 管理者は日常的にリソースを扱うことができます。

**Topics**
+ [JICS LISTS と GROUPS の一覧表示](#list-jics-lists-groups)
+ [JICS リソースの取得](#retrieve-jics-resources)
+ [JICS GROUPS の一覧表示](#list-jics-groups)
+ [特定の LIST の JICS GROUPS の一覧表示](#list-jics-groups-given-list)
+ [特定の GROUP の JICS リソースの一覧表示](#list-jics-resources-given-group)
+ [指定された GROUP の LIST JICS (名前の使用による代替)](#list-jics-resources-given-group-alt)
+ [複数の LISTS の所有 GROUPS の編集](#edit-owned-groups-lists)
+ [LIST の削除](#delete-list)
+ [GROUP の削除](#delete-group)
+ [TRANSACTION の削除](#delete-transaction)
+ [PROGRAM の削除](#delete-program)
+ [FILE の削除](#delete-file)
+ [TDQUEUE の削除](#delete-tdqueue)
+ [TSMODEL の削除](#delete-tsmodel)
+ [要素の削除](#delete-elements)
+ [LIST の作成](#create-list)
+ [GROUP の作成](#create-group)
+ [RESOURCES 作成に関する一般的な考慮事項](#common-create-considerations)
+ [TRANSACTION の作成](#create-transaction)
+ [PROGRAM の作成](#create-program)
+ [FILE の作成](#create-file)
+ [TDQUEUE の作成](#create-tdqueue)
+ [TSMODEL の作成](#create-tsmodel)
+ [要素の作成](#create-elements)
+ [LIST の更新](#update-list)
+ [GROUP の更新](#update-group)
+ [RESOURCES の更新に関する一般的な考慮事項](#common-update-considerations)
+ [TRANSACTION の更新](#update-transaction)
+ [PROGRAM の更新](#update-program)
+ [FILE の更新](#update-file)
+ [TDQUEUE の更新](#update-tdqueue)
+ [TSMODEL の更新](#update-tsmodel)
+ [要素の更新](#update-elements)
+ [要素のアップサート](#upsert-elements)
+ [要素の取得](#retrieve-elements)
+ [JICS CRUD オペレーション](#jics-crud-operation)

### JICS LISTS と GROUPS の一覧表示
<a name="list-jics-lists-groups"></a>

LIST と GROUPS は、JICS コンポーネント内の主要な所有コンテナリソースです。すべての JICS リソースは GROUP に属している必要があります。グループは LISTS に帰属できますが、必須ではありません。LISTS は特定の JICS 環境には存在しない場合もありますが、ほとんどの場合、LISTS はリソースを整理するためのものです。CICS リソース組織についての詳細は、「[CICS リソース](https://www.ibm.com/docs/en/cics-ts/6.1?topic=fundamentals-how-it-works-cics-resources)」を参照してください。
+ サポートされているメソッド: GET
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/listJicsListsAndGroups`
+ 引数: なし
+ 戻り値: シリアル化された JicsContainer オブジェクトの一覧 (LISTS と GROUPS 両方) を JSON 形式で返します。

レスポンス例:

```
[
    {
      "name": "Resources",
      "children": [
        {
          "jacType": "JACList",
          "name": "MURACHS",
          "isActive": true,
          "children": [
            {
              "jacType": "JACGroup",
              "name": "MURACHS",
              "isActive": true,
              "children": []
            }
          ]
        },
        {
          "jacType": "JACGroup",
          "name": "TEST",
          "isActive": true,
          "children": []
        }
      ],
      "isExpanded": true
    }
  ]
```

### JICS リソースの取得
<a name="retrieve-jics-resources"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/retrieveJicsResources`
+ 引数: 取得する JICS リソースを表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.request.RetrieveOperationRequest` オブジェクトの JSON のシリアル化です。
+ シリアル化された JicsResource オブジェクトの一覧を返します。オブジェクトは順不同で返されます。また、さまざまなタイプ (PROGRAM、TRANSACTION、FILE など) があります。

### JICS GROUPS の一覧表示
<a name="list-jics-groups"></a>
+ サポートされているメソッド: GET
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/listJicsGroups`
+ 引数: なし
+ シリアル化された JicsContainer オブジェクトの一覧 (GROUPS) を JSON 形式で返します。GROUPS は所有 LIST 情報なしで返されます。

レスポンス例:

```
[
    {
      "jacType": "JACGroup",
      "name": "MURACHS",
      "isActive": true,
      "children": []
    },
    {
      "jacType": "JACGroup",
      "name": "TEST",
      "isActive": true,
      "children": []
    }
  ]
```

### 特定の LIST の JICS GROUPS の一覧表示
<a name="list-jics-groups-given-list"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/listGroupsForList`
+ 引数: JSON ペイロードで、探している GROUPS を含む JICS LIST を表します。これは、`com.netfective.bluage.jac.entities.JACList` オブジェクトの JSON のシリアル化です。

  リクエスト例:

  ```
  {
      "jacType":"JACList",
      "name":"MURACHS",
      "isActive":true
    }
  ```
+ シリアル化された JicsContainer オブジェクトの一覧 (GROUPS) を JSON 形式で返します。これは、指定した LIST にアタッチされます。GROUPS は所有 LIST 情報なしで返されます。

  レスポンス例:

  ```
  [
      {
        "jacType": "JACGroup",
        "name": "MURACHS",
        "isActive": true,
        "children": []
      }
    ]
  ```

### 特定の GROUP の JICS リソースの一覧表示
<a name="list-jics-resources-given-group"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/listResourcesForGroup`
+ 引数: JSON ペイロードで、探しているリソースを含む JICS GROUP を表します。これは、`com.netfective.bluage.jac.entities.JACGroup` オブジェクトの JSON のシリアル化です。GROUP のすべてのフィールドを指定する必要はありませんが、名前は必須です。

  リクエスト例:

  ```
  {
      "jacType":"JACGroup",
      "name":"MURACHS",
      "isActive":true
    }
  ```
+ 指定した GROUP が所有する、シリアル化された JicsResource オブジェクトの一覧を返します。オブジェクトは順不同で返されます。また、さまざまなタイプ (PROGRAM、TRANSACTION、FILE など) があります。

### 指定された GROUP の LIST JICS (名前の使用による代替)
<a name="list-jics-resources-given-group-alt"></a>
+ サポートされているメソッド: POST
+ 認証が必要
+ パス: `/api/services/rest/jicsservice/listResourcesForGroupName`
+ 引数: 探しているリソースを所有する GROUP の名前。
+ 戻り値: 指定した GROUP が所有する、シリアル化された JicsResource オブジェクトの一覧を返します。オブジェクトは順不同で返されます。また、さまざまなタイプ (PROGRAM、TRANSACTION、FILE など) があります。

### 複数の LISTS の所有 GROUPS の編集
<a name="edit-owned-groups-lists"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/editGroupsList`
+ 引数: 子 GROUPS を含む LISTS のコレクションを JSON で表現したもの。

  リクエスト例:

  ```
  [      
    {
          "jacType": "JACList",
          "name": "MURACHS",
          "isActive": true,
          "children": [
            {
              "jacType": "JACGroup",
              "name": "MURACHS",
              "isActive": true,
              "children": []
            },
            {
              "jacType": "JACGroup",
              "name": "TEST",
              "isActive": true,
              "children": []
            }
          ]
    }
  ]
  ```

  これを編集する前には、「MURACHS」という名前のグループだけが「MURACHS」という名前の LIST に属していました。これを編集することにより、「TEST」という名前のグループを「MURACHS」という名前の LIST に「追加」しました。
+ ブール値を返します。値が「true」の場合、LISTS の変更は基盤となる JICS ストレージ内で正常に永続化されています。

### LIST の削除
<a name="delete-list"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/deleteList`
+ 引数: 削除する JICS LIST を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACList` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、LIST の削除は JICS ストレージ内で正常に行われています。

### GROUP の削除
<a name="delete-group"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/deleteGroup`
+ 引数: 削除する JICS GROUP を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACGroup` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、GROUP の削除は JICS ストレージ内で正常に行われています。

### TRANSACTION の削除
<a name="delete-transaction"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/deleteTransaction`
+ 引数: 削除する JICS Transaction を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACTransaction` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、TRANSACTION の削除は JICS ストレージ内で正常に行われています。

### PROGRAM の削除
<a name="delete-program"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/deleteProgram`
+ 引数: 削除する JICS Program を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACProgram` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、PROGRAM の削除は JICS ストレージ内で正常に行われています。

### FILE の削除
<a name="delete-file"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/deleteFile`
+ 引数: 削除する JICS File を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACFile` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、FILE の削除は JICS ストレージ内で適切に行われています。

### TDQUEUE の削除
<a name="delete-tdqueue"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/deleteTDQueue`
+ 引数: 削除する JICS TDQUEUE を表す JSON ペイロード。これは「com.netfective.bluage.jac.entities.JACTDQueue」オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、TDQUEUE の削除は JICS ストレージ内で正常に行われています。

### TSMODEL の削除
<a name="delete-tsmodel"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/deleteTSModel`
+ 引数: 削除する JICS TSMODEL を表す JSON ペイロード。これは「com.netfective.bluage.jac.entities.JACTSModel」オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、TSMODEL の削除は JICS ストレージ内で正常に行われています。

### 要素の削除
<a name="delete-elements"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/deleteElements`
+ 引数: 削除する JICS 要素を表す JSON ペイロード。
+ ブール値を返します。`true` は、基盤となる JICS ストレージで削除が正常に行われたことを示します。

### LIST の作成
<a name="create-list"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/createList`
+ 引数: 作成する JICS LIST を表す JSON ペイロード。これは「com.netfective.bluage.jac.entities.JACList」オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、LIST は JICS ストレージ内で正常に作成されています。

**注記**  
LIST は、常に空の状態で作成されます。GROUPS を LIST にアタッチするには、別のオペレーションが必要です。

### GROUP の作成
<a name="create-group"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/createGroup`
+ 引数: 作成する JICS GROUP を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACGroup` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、GROUP は JICS ストレージ内で適切に作成されています。

**注記**  
GROUP は常に空の状態で作成されます。RESOURCES を GROUP にアタッチするには、追加のオペレーションが必要です (リソースを作成すると、リソースは特定の GROUP に自動的にアタッチされます)。

### RESOURCES 作成に関する一般的な考慮事項
<a name="common-create-considerations"></a>

次のすべてのエンドポイントは JICS RESOURCES の作成に関連しており、共通する制約がいくつかあります。エンドポイントに送信されるリクエストペイロードでは、`groupName` フィールドに値を設定する必要があります。

GROUP の所有権の制約:

リソースは、既存のグループにアタッチしないと作成できません。エンドポイントは、groupName を使用して、このリソースをアタッチするグループを取得します。`groupName` は、既存のグループ名を指している必要があります。`groupName` が基盤となる JICS ストレージの既存のグループを指していない場合、HTTP STATUS 400 のエラーメッセージが送信されます。

GROUP 内の単一性の制約:

指定の名前のリソースは、指定のグループ内で一意である必要があります。単一性のチェックは、各リソースの作成エンドポイントによって実行されます。指定したペイロードが単一性の制約を優先しない場合、エンドポイントは HTTP STATUS 400 (BAD REQUEST) のレスポンスを送信します。詳細については、次のレスポンス例を参照してください。

ペイロードの例: 「TEST」グループにトランザクション「ARIT」を作成しようとしましたが、そのグループに、既にその名前のトランザクションが存在しています。

```
{
    "jacType":"JACTransaction",
    "name":"ARIT", 
    "groupName":"TEST", 
    "isActive":true
  }
```

次のようなエラーレスポンスが返されました。

```
{
    "timestamp": 1686759054510,
    "status": 400,
    "error": "Bad Request",
    "path": "/jac/api/services/rest/jicsservice/createTransaction"
  }
```

サーバーのログを調べることにより、問題の原因が確認できます。

```
2023-06-14 18:10:54 default         TRACE - o.s.w.m.HandlerMethod                    - Arguments: [java.lang.IllegalArgumentException: Transaction already present in the group, org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterResponse@e34f6b8]
2023-06-14 18:10:54 default         ERROR - c.n.b.j.a.WebConfig                      - 400
java.lang.IllegalArgumentException: Transaction already present in the group
	at com.netfective.bluage.jac.server.services.rest.impl.JicsServiceImpl.createElement(JicsServiceImpl.java:1280)
```

### TRANSACTION の作成
<a name="create-transaction"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/createTransaction`
+ 引数: 作成する JICS TRANSACTION を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACTransaction` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、TRANSACTION は JICS ストレージ内で正常に作成されています。

### PROGRAM の作成
<a name="create-program"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/createProgram`
+ 引数: 作成する JICS PROGRAM を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACProgram` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、PROGRAM は JICS ストレージ内で正常に作成されています。

### FILE の作成
<a name="create-file"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/createFile`
+ 引数: 作成する JICS FILE を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACFile` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、FILE は JICS ストレージ内で正常に作成されています。

### TDQUEUE の作成
<a name="create-tdqueue"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/createTDQueue`
+ 引数: 作成する JICS TDQUEUE を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACTDQueue` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、TDQUEUE は JICS ストレージ内で正常に作成されています。

### TSMODEL の作成
<a name="create-tsmodel"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/createTSModel`
+ 引数: 作成する JICS TSMODEL を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACTSModel` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。`true` は、基盤となる JICS ストレージで要素の作成が正常に行われたことを示します。

### 要素の作成
<a name="create-elements"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/createElements`
+ 引数: 作成する JICS 要素を表す JSON ペイロード。
+ ブール値を返します。値が「true」の場合、要素は基盤となる JICS ストレージで正常に作成されています。

### LIST の更新
<a name="update-list"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/updateList`
+ 引数: 更新する JICS LIST を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACList` オブジェクトの JSON のシリアル化です。その LIST の子を指定する必要はありません。LIST の更新メカニズムでは子は考慮されません。
+ ブール値を返します。値が「true」の場合、LIST は JICS ストレージ内で正常に更新されています。

LIST の「isActive」フラグを更新すると、LIST のすべての所有要素、つまり LIST が所有するすべての GROUPS と、それらの GROUPS が所有するすべての RESOURCES に反映されます。これは、複数の GROUPS にまたがる大量のリソースを 1 回のオペレーションで無効にする場合に便利な方法です。

### GROUP の更新
<a name="update-group"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/updateGroup`
+ 引数: 更新する JICS GROUP を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACGroup` オブジェクトの JSON のシリアル化です。その GROUP の子を指定する必要はありません。GROUP の更新メカニズムではこのことは考慮されません。
+ ブール値を返します。値が「true」の場合、GROUP は JICS ストレージ内で正常に更新されています。

**注記**  
GROUP の「isActive」フラグを更新すると、GROUP のすべての所有要素、つまり GROUP が所有するすべての RESOURCES に反映されます。これは、特定の GROUP 内で、大量のリソースを 1 回のオペレーションで無効にする場合に便利な方法です。

### RESOURCES の更新に関する一般的な考慮事項
<a name="common-update-considerations"></a>

次のエンドポイントは、すべて JICS RESOURCES の更新に関するものです。`groupName` フィールドを使用して、JICS RESOURCE の所有 GROUP を変更できます。ただし、フィールド値が基盤 JICS ストレージの存在する GROUP を指している場合に限ります。それ以外の場合は、エンドポイントから BAD REQUEST レスポンス (HTTP STATUS 400) が返されます。

### TRANSACTION の更新
<a name="update-transaction"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/updateTransaction`
+ 引数: 更新する JICS TRANSACTION を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACTransaction` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、TRANSACTION は JICS ストレージ内で正常に更新されています。

### PROGRAM の更新
<a name="update-program"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/updateProgram`
+ 引数: 更新する JICS PROGRAM を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACProgram` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、PROGRAM は JICS ストレージ内で正常に更新されています。

### FILE の更新
<a name="update-file"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/updateFile`
+ 引数: 更新する JICS FILE を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACFile` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、FILE は JICS ストレージ内で正常に更新されています。

### TDQUEUE の更新
<a name="update-tdqueue"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/updateTDQueue`
+ 引数: 更新する JICS TDQUEUE を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACTDQueue` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、TDQueue は JICS ストレージ内で正常に更新されています。

### TSMODEL の更新
<a name="update-tsmodel"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/updateTSModel`
+ 引数: 更新する JICS TSMODEL を表す JSON ペイロード。これは、`com.netfective.bluage.jac.entities.JACTSModel` オブジェクトの JSON のシリアル化です。
+ ブール値を返します。値が「true」の場合、TSMODEL は JICS ストレージ内で正常に更新されています。

### 要素の更新
<a name="update-elements"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/updateElements`
+ 引数: 更新する JICS 要素を表す JSON ペイロード。
+ ブール値を返します。`true` は、基盤となる JICS ストレージで要素の更新が正常に行われたことを示します。

### 要素のアップサート
<a name="upsert-elements"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/upsertElements`
+ 引数: アップサートする要素を表す JSON ペイロード。
+ ブール値を返します。`true` は、基盤となる JICS ストレージで要素のアップサートが正常に行われたことを示します。

### 要素の取得
<a name="retrieve-elements"></a>
+ サポートされているメソッド: GET
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/retrieveElements`
+ 引数: なし
+ シリアル化されたすべての JICS リソースの一覧を返します。

### JICS CRUD オペレーション
<a name="jics-crud-operation"></a>
+ サポートされているメソッド: POST
+ 認証と、ROLE\_ADMIN、ROLE\_SUPER\_ADMIN、ROLE\_USER のいずれかのロールが必要です。
+ パス: `/api/services/rest/jicsservice/jicsCrudOperation`
+ 引数: JSON ペイロードで、探している JICS リソースを含む JICS ペイロードを表します。これは、`com.netfective.bluage.jac.entities.request.JicsCrudOperationRequest` オブジェクトの JSON のシリアル化です。
+ レスポンスを表す JSON ペイロードを返します。これは、`com.netfective.bluage.jac.entities.request.JicsCrudOperationResponse` オブジェクトの JSON のシリアル化です。

## その他
<a name="ba-endpoints-jac-other"></a>

**Topics**
+ [JICS サーバーのヘルスステータス](#jics-server-health)

### JICS サーバーのヘルスステータス
<a name="jics-server-health"></a>
+ サポートされているメソッド: GET
+ パス: `/api/services/rest/jicsserver/serverIsUp`
+ 引数: なし
+ 戻り値: なし HTTP STATUS 200 のレスポンスが返された場合、サーバーが稼働中であることを示します。

## JAC ユーザー管理エンドポイント
<a name="ba-endpoints-jac-users"></a>

次のエンドポイントを使用して、ユーザーインタラクションを管理します。

**Topics**
+ [ユーザーのログ記録](#log-user)
+ [システムに少なくとも 1 人のユーザーが存在するかどうかをテストする](#test-user-exist)
+ [新規ユーザーの記録](#record-new-user)
+ [ユーザー情報](#user-info)
+ [ユーザーの一覧表示](#list-users)
+ [ユーザーの削除](#delete-user)
+ [現在のユーザーをログアウトする](#logout-user)

### ユーザーのログ記録
<a name="log-user"></a>
+ サポートされているメソッド: POST
+ パス: `/api/services/security/servicelogin/login`
+ 引数: なし
+ 現在のリクエストで入力された認証情報を持つユーザーを表す、`com.netfective.bluage.jac.entities.SignOn` オブジェクトの JSON のシリアル化を返します。パスワードは、返されたオブジェクトの中では表示されません。ユーザーに割り当てられたロールが一覧表示されます。

レスポンス例:

```
{
    "login": "some-admin",
    "password": null,
    "roles": [
      {
        "id": 0,
        "roleName": "ROLE_ADMIN"
      }
    ]
  }
```

### システムに少なくとも 1 人のユーザーが存在するかどうかをテストする
<a name="test-user-exist"></a>
+ サポートされているメソッド: GET
+ パス: `/api/services/security/servicelogin/hasAccount`
+ 引数: なし
+ デフォルトのスーパー管理者ユーザー以外のユーザーが少なくとも 1 人作成されている場合は、ブール値 `true` を返します。それ以外の場合は `false` を返します。

### 新規ユーザーの記録
<a name="record-new-user"></a>
+ サポートされているメソッド: POST
+ 認証と ROLE\_ADMIN ロールが必要です。
+ パス: `/api/services/security/servicelogin/recorduser`
+ 引数: ストレージに追加されるユーザーを表す `com.netfective.bluage.jac.entities.SignOn` オブジェクトの JSON のシリアル化。ユーザーのロールを定義する必要があります。定義されていないと、ユーザーは JAC 機能やエンドポイントを使用できない可能性があります。
+ ユーザーが正常に作成された場合は、ブール値 `true` を返します。それ以外の場合は `false` を返します。

リクエスト例:

```
{
    "login": "simpleuser",
    "password": "simplepassword",
    "roles": [
      {
        "id": 2,
        "roleName": "ROLE_USER"
      }
    ]
  }
```

新規ユーザーを記録するときに使用できるのは、次のロールのみです。
+ ROLE\_ADMIN: JICS リソースとユーザーを管理できます。
+ ROLE\_USER: JICS リソースは管理できますが、ユーザーは管理できません。

### ユーザー情報
<a name="user-info"></a>
+ サポートされているメソッド: GET
+ パス: `/api/services/security/servicelogin/userInfo`
+ 引数: なし
+ 現在接続されているユーザーのユーザー名とロールを返します。

### ユーザーの一覧表示
<a name="list-users"></a>
+ サポートされているメソッド: GET
+ 認証と ROLE\_ADMIN ロールが必要です。
+ パス: `/api/services/security/servicelogin/listusers`
+ 引数: なし
+ JSON としてシリアル化された `com.netfective.bluage.jac.entities.SignOn` の一覧を返します。

### ユーザーの削除
<a name="delete-user"></a>
+ サポートされているメソッド: POST
+ 認証と ROLE\_ADMIN ロールが必要です。
+ パス: `/api/services/security/servicelogin/deleteuser`
+ 引数: ストレージから削除するユーザーを表す `com.netfective.bluage.jac.entities.SignOn` オブジェクトの JSON のシリアル化。
+ ユーザーが正常に削除された場合は、ブール値 `true` を返します。

**重要**  
このアクションを元に戻すことはできません。削除されたユーザーは、JAC アプリケーションに再度接続できなくなります。

### 現在のユーザーをログアウトする
<a name="logout-user"></a>
+ サポートされているメソッド: GET
+ パス: `/api/services/security/servicelogout/logout`
+ 引数: なし
+ 現在のユーザーが正常にログアウトされた場合は、JSON メッセージ `{"success":true}` を返します。関連する HTTP セッションは無効になります。