

AWS 大型机现代化服务（托管运行时环境体验）不再向新客户开放。有关类似于 AWS 大型机现代化服务（托管运行时环境体验）的功能，请浏览 AWS 大型机现代化服务（自我管理体验）。现有客户可以继续正常使用该服务。有关更多信息，请参阅[AWS 大型机现代化可用性变更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 “大型机 AWS 转换” 中管理 JICS 应用程序控制台
<a name="ba-endpoints-jac"></a>

JICS 组件是大型机 AWS 转换，用于支持传统 CICS 资源的现代化。JICS 应用程序控制台 Web 应用程序专门用于管理 JICS 资源。借助以下端点，无需与 JAC 用户界面交互即可执行管理任务。端点需要身份验证时，请求须包含身份验证详细信息（根据基本身份验证要求，通常为用户名/密码）。JICS 应用程序控制台 Web 应用程序的端点使用根路径 `/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 LIST 和 GROUP](#list-jics-lists-groups)
+ [检索 JICS 资源](#retrieve-jics-resources)
+ [列出 JICS GROUP](#list-jics-groups)
+ [列出给定 LIST 的 JICS 组](#list-jics-groups-given-list)
+ [列出给定 GROUP 的 JICS 资源](#list-jics-resources-given-group)
+ [列出给定 GROUP（也可以使用名称）的 JICS 资源](#list-jics-resources-given-group-alt)
+ [编辑多个 LIST 中的 GROUP](#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)
+ [创建 RESOURCE 的常见注意事项](#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)
+ [RESOURCE 更新常见注意事项](#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 LIST 和 GROUP
<a name="list-jics-lists-groups"></a>

LIST 和 GROUP 是 JICS 组件中拥有的主要容器资源。所有 JICS 资源都必须属于一个 GROUP。GROUP 可以属于 LIST，但这不是必需的。给定的 JICS 环境中甚至可能不存在 LIST，但大多数时候，LIST 可为资源提供额外的组织层。有关 CICS 资源组织的更多信息，请参阅 [CICS](https://www.ibm.com/docs/en/cics-ts/6.1?topic=fundamentals-how-it-works-cics-resources) 资源。
+ 支持的方法：GET
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/listJicsListsAndGroups`
+ 参数：无
+ 返回：以 JSON 格式返回序列化 JicsContainer 对象的列表，包括列表和组。

示例响应:

```
[
    {
      "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\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/retrieveJicsResources`
+ 参数：表示要检索的 JICS 资源的 JSON 有效载荷。这是 `com.netfective.bluage.jac.entities.request.RetrieveOperationRequest` 对象的 JSON 序列化。
+ 返回：序列化 JicsResource 对象的列表。这些对象不按特定顺序返回，并且具有不同的类型（PROGRAM、TRANSACTION、FILE 等）。

### 列出 JICS GROUP
<a name="list-jics-groups"></a>
+ 支持的方法：GET
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/listJicsGroups`
+ 参数：无
+ 以 JSON 形式返回序列化 JicsContainer 对象（组）列表。这些 GROUP 返回时不带有组自身的 LIST 信息。

示例响应:

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

### 列出给定 LIST 的 JICS 组
<a name="list-jics-groups-given-list"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/listGroupsForList`
+ 参数：JSON 有效载荷，表示要查找的 GROUP 所属的 JICS LIST。这是 `com.netfective.bluage.jac.entities.JACList` 对象的 JSON 序列化。

  示例请求：

  ```
  {
      "jacType":"JACList",
      "name":"MURACHS",
      "isActive":true
    }
  ```
+ 以 JSON 形式返回附加到给定列表的序列化 JicsContainer 对象 (GROUPS) 列表。这些 GROUP 返回时不带有组自身的 LIST 信息。

  示例响应:

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

### 列出给定 GROUP 的 JICS 资源
<a name="list-jics-resources-given-group"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/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（也可以使用名称）的 JICS 资源
<a name="list-jics-resources-given-group-alt"></a>
+ 支持的方法：POST
+ 需要身份验证
+ 路径：`/api/services/rest/jicsservice/listResourcesForGroupName`
+ 参数：要查找的资源所属 GROUP 的名称。
+ 返回：由给定 GROUP 拥有的序列化 JicsResource 对象的列表。这些对象不按特定顺序返回，并且具有不同的类型（PROGRAM、TRANSACTION、FILE 等）。

### 编辑多个 LIST 中的 GROUP
<a name="edit-owned-groups-lists"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/editGroupsList`
+ 参数：带有子 GROUP 的 LIST 集合，以 JSON 表示形式；

  示例请求：

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

  在进行此编辑之前，仅名为“MURACHS”的 GROUP 属于名为“MURACHS”的 LIST。通过此编辑，我们将名为“TEST”的 GROUP“添加”到名为“MURACHS”的 LIST 中。
+ 返回一个布尔值。如果该值为“true”，则表示这些 LIST 修改已成功持久保存到底层 JICS 存储中。

### 删除 LIST
<a name="delete-list"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/deleteList`
+ 参数：JSON 有效载荷，表示要删除的 JICS LIST。这是 `com.netfective.bluage.jac.entities.JACList` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功从底层 JICS 存储中删除该 LIST。

### 删除 GROUP
<a name="delete-group"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/deleteGroup`
+ 参数：JSON 有效载荷，表示要删除的 JICS GROUP。这是 `com.netfective.bluage.jac.entities.JACGroup` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功从底层 JICS 存储中删除该 GROUP。

### 删除 TRANSACTION
<a name="delete-transaction"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/deleteTransaction`
+ 参数：JSON 有效载荷，表示要删除的 JICS TRANSACTION。这是 `com.netfective.bluage.jac.entities.JACTransaction` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功从底层 JICS 存储中删除该 TRANSACTION。

### 删除 PROGRAM
<a name="delete-program"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/deleteProgram`
+ 参数：JSON 有效载荷，表示要删除的 JICS PROGRAM。这是 `com.netfective.bluage.jac.entities.JACProgram` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功从底层 JICS 存储中删除该 PROGRAM。

### 删除 FILE
<a name="delete-file"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/deleteFile`
+ 参数：JSON 有效载荷，表示要删除的 JICS FILE。这是 `com.netfective.bluage.jac.entities.JACFile` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功从底层 JICS 存储中删除该 FILE。

### 删除 TDQUEUE
<a name="delete-tdqueue"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/deleteTDQueue`
+ 参数：JSON 有效载荷，表示要删除的 JICS TDQUEUE。这是 `com.netfective.bluage.jac.entities 的 JSON 序列化。 JACTDQueue`对象。
+ 返回一个布尔值。如果该值为“true”，则表示已成功从底层 JICS 存储中删除该 TDQUEUE。

### 删除 TSMODEL
<a name="delete-tsmodel"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/deleteTSModel`
+ 参数：JSON 有效载荷，表示要删除的 JICS TSMODEL。这是 `com.netfective.bluage.jac.entities 的 JSON 序列化。 JACTSModel`对象。
+ 返回一个布尔值。如果该值为“true”，则表示已成功从底层 JICS 存储中删除该 TSMODEL。

### 删除元素
<a name="delete-elements"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/deleteElements`
+ 参数：JSON 有效载荷，表示要删除的 JICS 元素。
+ 返回一个布尔值，`true` 表示已成功在底层 JICS 存储中执行删除操作。

### 创建 LIST
<a name="create-list"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/createList`
+ 参数：JSON 有效载荷，表示要创建的 JICS LIST。这是 `com.netfective.bluage.jac.entities 的 JSON 序列化。 JACList`对象。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中创建该 LIST。

**注意**  
LIST 创建时始终为空。将 GROUP 附加到 LIST 需要执行另一项操作。

### 创建 GROUP
<a name="create-group"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/createGroup`
+ 参数：JSON 有效载荷，表示要创建的 JICS GROUP。这是 `com.netfective.bluage.jac.entities.JACGroup` 对象的 JSON 序列化。
+ 返回一个布尔值。如果值为“true”，则该 GROUP 已在底层 JICS 存储中正确创建。

**注意**  
GROUP 创建时始终为空。将 RESOURCE 附加到 GROUP 需要额外的操作（创建资源会自动将其附加到给定的 GROUP）。

### 创建 RESOURCE 的常见注意事项
<a name="common-create-considerations"></a>

以下所有端点均与创建 JICS RESOURCE 有关，并具有一些共同的约束条件：在要发送到端点的请求负载中，必须对 `groupName` 字段赋值。

GROUP 所有权限制：

创建资源时必须将其附加到现有 GROUP，并且端点会使用 groupName 来检索此资源将要附加到的 GROUP。`groupName` 必须是现有 GROUP 的名称。如果 `groupName` 未指向 JICS 底层存储中的现有 GROUP，则将发送一条带有 HTTP 状态代码 400 的错误消息。

GROUP 内的唯一性约束：

具有给定名称的给定资源在指定的 GROUP 内必须唯一。每个资源创建端点均会执行唯一性检查。如果给定的有效载荷不符合唯一性约束条件，则端点将发送带有 HTTP 状态代码 400（错误请求）的响应，请参阅下面的示例响应。

示例有效载荷：您尝试在“TEST”GROUP 中创建事务“ARIT”，但该 GROUP 中已存在同名的事务。

```
{
    "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\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/createTransaction`
+ 参数：JSON 有效载荷，表示要创建的 JICS TRANSACTION。这是 `com.netfective.bluage.jac.entities.JACTransaction` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中创建该 TRANSACTION。

### 创建 PROGRAM
<a name="create-program"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/createProgram`
+ 参数：JSON 有效载荷，表示要创建的 JICS PROGRAM。这是 `com.netfective.bluage.jac.entities.JACProgram` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中创建该 PROGRAM。

### 创建 FILE
<a name="create-file"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/createFile`
+ 参数：JSON 有效载荷，表示要创建的 JICS FILE。这是 `com.netfective.bluage.jac.entities.JACFile` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中创建该 FILE。

### 创建 TDQUEUE
<a name="create-tdqueue"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/createTDQueue`
+ 参数：JSON 有效载荷，表示要创建的 JICS TDQUEUE。这是 `com.netfective.bluage.jac.entities.JACTDQueue` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中创建该 TDQUEUE。

### 创建 TSMODEL
<a name="create-tsmodel"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/createTSModel`
+ 参数：JSON 有效载荷，表示要创建的 JICS TSMODEL。这是 `com.netfective.bluage.jac.entities.JACTSModel` 对象的 JSON 序列化。
+ 返回一个布尔值，`true` 表示已成功在底层 JICS 存储中执行元素创建操作。

### 创建元素
<a name="create-elements"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/createElements`
+ 参数：JSON 有效载荷，表示要创建的 JICS 元素。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中创建这些元素。

### 更新 LIST
<a name="update-list"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/updateList`
+ 参数：JSON 有效载荷，表示要更新的 JICS LIST。这是 `com.netfective.bluage.jac.entities.JACList` 对象的 JSON 序列化。无需提供该 LIST 的子项，LIST 更新机制不会考虑子项。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中更新该 LIST。

更新 LIST“isActive”标志将传播到 LIST 中所有拥有的元素，即 LIST 拥有的所有 GROUP 以及这些GROUP 拥有的所有 RESOURCE。这是一种通过单个操作在多个 GROUP 中停用大量资源的便捷方法。

### 更新 GROUP
<a name="update-group"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/updateGroup`
+ 参数：JSON 有效载荷，表示要更新的 JICS GROUP。这是 `com.netfective.bluage.jac.entities.JACGroup` 对象的 JSON 序列化。无需提供 GROUP 的子项，GROUP 更新机制也不会考虑这一点。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中更新该 GROUP。

**注意**  
更新 GROUP“isActive”标志将传播到 GROUP 中所有拥有的元素，即 GROUP 拥有的所有 RESOURCE。这是一种通过单个操作在给定 GROUP 中停用大量资源的便捷方法。

### RESOURCE 更新常见注意事项
<a name="common-update-considerations"></a>

以下所有端点均与更新 JICS RESOURCE 有关。使用 `groupName` 字段，您可以更改任何 JICS RESOURCE 所属的 GROUP，前提是该字段值指向底层 JICS 存储中的现有 GROUP [否则，您将收到来自端点的错误请求响应（HTTP STATUS 400）]。

### 更新 TRANSACTION
<a name="update-transaction"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/updateTransaction`
+ 参数：JSON 有效载荷，表示要更新的 JICS TRANSACTION。这是 `com.netfective.bluage.jac.entities.JACTransaction` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中更新该 TRANSACTION。

### 更新 PROGRAM
<a name="update-program"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/updateProgram`
+ 参数：JSON 有效载荷，表示要更新的 JICS PROGRAM。这是 `com.netfective.bluage.jac.entities.JACProgram` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中更新该 PROGRAM。

### 更新 FILE
<a name="update-file"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/updateFile`
+ 参数：JSON 有效载荷，表示要更新的 JICS FILE。这是 `com.netfective.bluage.jac.entities.JACFile` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中更新该 FILE。

### 更新 TDQUEUE
<a name="update-tdqueue"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/updateTDQueue`
+ 参数：JSON 有效载荷，表示要更新的 JICS TDQUEUE。这是 `com.netfective.bluage.jac.entities.JACTDQueue` 对象的 JSON 序列化。
+ 返回一个布尔值。如果值为 “true”，则表示 TDQueue 已在底层 JICS 存储中成功更新。

### 更新 TSMODEL
<a name="update-tsmodel"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/updateTSModel`
+ 参数：JSON 有效载荷，表示要更新的 JICS TSMODEL。这是 `com.netfective.bluage.jac.entities.JACTSModel` 对象的 JSON 序列化。
+ 返回一个布尔值。如果该值为“true”，则表示已成功在底层 JICS 存储中更新该 TSMODEL。

### 更新元素
<a name="update-elements"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/updateElements`
+ 参数：JSON 有效载荷，表示要更新的元素。
+ 返回一个布尔值，`true` 表示已成功在底层 JICS 存储中执行元素更新操作。

### 更新插入元素
<a name="upsert-elements"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/upsertElements`
+ 参数：JSON 有效载荷，表示要更新插入的元素。
+ 返回一个布尔值，`true` 表示已成功在底层 JICS 存储中执行元素更新插入操作。

### 检索元素
<a name="retrieve-elements"></a>
+ 支持的方法：GET
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/retrieveElements`
+ 参数：无
+ 返回所有序列化 JICS 资源的列表。

### JICS CRUD 操作
<a name="jics-crud-operation"></a>
+ 支持的方法：POST
+ 需要身份验证和以下角色之一：ROLE\$1ADMIN、ROLE\$1SUPER\$1ADMIN、ROLE\$1USER
+ 路径：`/api/services/rest/jicsservice/jicsCrudOperation`
+ 参数：JSON 有效载荷，表示要查找的资源所在的 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)
+ [测试系统中是否至少存在一个用户](#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"
      }
    ]
  }
```

### 测试系统中是否至少存在一个用户
<a name="test-user-exist"></a>
+ 支持的方法：GET
+ 路径：`/api/services/security/servicelogin/hasAccount`
+ 参数：无
+ 如果除默认超级管理员用户之外，还创建了至少一个用户，则会返回布尔值 `true`。否则返回 `false`。

### 记录新用户
<a name="record-new-user"></a>
+ 支持的方法：POST
+ 需要身份验证和 ROLE\$1ADMIN 角色。
+ 路径：`/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\$1ADMIN：可以管理 JICS 资源和用户。
+ ROLE\$1USER：可以管理 JICS 资源，但不能管理用户。

### 用户信息
<a name="user-info"></a>
+ 支持的方法：GET
+ 路径：`/api/services/security/servicelogin/userInfo`
+ 参数：无
+ 返回当前连接用户的用户名和角色。

### 列出用户
<a name="list-users"></a>
+ 支持的方法：GET
+ 需要身份验证和 ROLE\$1ADMIN 角色。
+ 路径：`/api/services/security/servicelogin/listusers`
+ 参数：无
+ 返回 `com.netfective.bluage.jac.entities.SignOn` 列表，采用 JSON 序列化。

### 删除用户
<a name="delete-user"></a>
+ 支持的方法：POST
+ 需要身份验证和 ROLE\$1ADMIN 角色。
+ 路径：`/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 会话将失效。