

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)
+ [JIC GROUPS 나열](#list-jics-groups)
+ [지정된 LIST에 대한 JICS GROUPS를 나열하세요](#list-jics-groups-given-list)
+ [해당 GROUP의 JIC 리소스를 나열하세요](#list-jics-resources-given-group)
+ [지정된 GROUP의 JIC 리소스 나열(이름을 사용하는 대체 방법)](#list-jics-resources-given-group-alt)
+ [여러 LISTS의 소유 GROUPS 편집](#edit-owned-groups-lists)
+ [링크 삭제](#delete-list)
+ [GROUP 삭제](#delete-group)
+ [트랜잭션 삭제](#delete-transaction)
+ [PROGRAM 삭제](#delete-program)
+ [FILE 삭제](#delete-file)
+ [TDQUE 삭제](#delete-tdqueue)
+ [모델 삭제](#delete-tsmodel)
+ [요소 삭제](#delete-elements)
+ [LIST 만들기](#create-list)
+ [GROUP 만들기](#create-group)
+ [일반 RESOURCES 생성 고려 사항](#common-create-considerations)
+ [TRANSACTION 생성](#create-transaction)
+ [PROGRAM 생성](#create-program)
+ [FILE 생성](#create-file)
+ [TDQUE 생성](#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에 속할 수 있지만 필수 사항은 아닙니다. 특정 JICS 환경에서는 LISTS가 존재하지 않을 수도 있지만, 대부분의 경우 LISTS는 리소스를 위한 추가 구성 계층을 제공하기 위해 존재합니다. 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 객체(LISTS 및 GROUPS 모두) 목록.

샘플 응답:

```
[
    {
      "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 등)이 서로 다릅니다.

### JIC GROUPS 나열
<a name="list-jics-groups"></a>
+ 지원되는 메서드: GET
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/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\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/listGroupsForList`
+ 인수: 찾고 있는 GROUPS가 속한 JICS LIST를 나타내는 JSON 페이로드입니다. 이것은 `com.netfective.bluage.jac.entities.JACList` 객체의 JSON 직렬화입니다.

  샘플 요청:

  ```
  {
      "jacType":"JACList",
      "name":"MURACHS",
      "isActive":true
    }
  ```
+ 지정된 LIST에 첨부된 JicsContainer 객체(GROUPS)를 직렬화한 목록이 JSON으로 반환됩니다. GROUPS가 소유한 LIST 정보 없이 반환됩니다.

  샘플 응답:

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

### 해당 GROUP의 JIC 리소스를 나열하세요
<a name="list-jics-resources-given-group"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/listResourcesForGroup`
+ 인수: 찾고 있는 JICS GROUP이 속한 JSON 페이로드입니다. 이것은 `com.netfective.bluage.jac.entities.JACGroup` 객체의 JSON 직렬화입니다. GROUP에 대해 모든 필드를 지정할 필요가 없지만 이름은 필수입니다.

  샘플 요청:

  ```
  {
      "jacType":"JACGroup",
      "name":"MURACHS",
      "isActive":true
    }
  ```
+ 지정된 GROUP이 소유한 직렬화된 JicsResource 객체의 목록이 반환됩니다. 객체는 특별한 순서 없이 반환되며 유형(PROGRAM, TRANSACTION, FILE 등)이 서로 다릅니다.

### 지정된 GROUP의 JIC 리소스 나열(이름을 사용하는 대체 방법)
<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\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/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 스토리지에 제대로 지속된 것입니다.

### 링크 삭제
<a name="delete-list"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/deleteList`
+ 인수: 삭제할 JIC 목록을 나타내는 JSON 페이로드입니다. 이것은 `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`
+ 인수: 삭제할 JIC GROUP을 나타내는 JSON 페이로드. 이것은 `com.netfective.bluage.jac.entities.JACGroup` 객체의 JSON 직렬화입니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 GROUP 삭제가 제대로 작동한 것입니다.

### 트랜잭션 삭제
<a name="delete-transaction"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/deleteTransaction`
+ 인수: 삭제할 JICS 트랜잭션을 나타내는 JSON 페이로드. 이것은 `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`
+ 인수: 삭제할 JICS 프로그램을 나타내는 JSON 페이로드. 이것은 `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`
+ 인수: 삭제할 JIS 파일을 나타내는 JSON 페이로드. 이것은 `com.netfective.bluage.jac.entities.JACFile` 객체의 JSON 직렬화입니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 FILE 삭제가 제대로 작동한 것입니다.

### TDQUE 삭제
<a name="delete-tdqueue"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/deleteTDQueue`
+ 인수: 삭제할 JIC TDQUEUE를 나타내는 JSON 페이로드입니다. 이것은 `com.netfective.bluage.jac.entities.JACTDQueue` 객체의 JSON 직렬화입니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 TDQUEUE 삭제가 제대로 작동한 것입니다.

### 모델 삭제
<a name="delete-tsmodel"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/deleteTSModel`
+ 인수: 삭제할 JIC TSMODEL을 나타내는 JSON 페이로드입니다. 이것은 `com.netfective.bluage.jac.entities.JACTSModel` 객체의 JSON 직렬화입니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 TSMODEL 삭제가 제대로 작동한 것입니다.

### 요소 삭제
<a name="delete-elements"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/deleteElements`
+ 인수: 삭제할 JICS 요소를 나타내는 JSON 페이로드입니다.
+ `true`가 기본 JICS 스토리지에서 삭제가 제대로 작동되었음을 나타내는 부울 값을 반환합니다.

### LIST 만들기
<a name="create-list"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/createList`
+ 인수: 생성할 JIC LIST을 나타내는 JSON 페이로드입니다. 이것은 `com.netfective.bluage.jac.entities.JACList` 객체의 JSON 직렬화입니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 LIST가 제대로 만들어진 것입니다.

**참고**  
LIST는 항상 빈 상태로 생성됩니다. LIST에 GROUPS을 첨부하려면 다른 작업이 필요합니다.

### GROUP 만들기
<a name="create-group"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할이 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/createGroup`
+ 인수: 생성할 JIC GROUP을 나타내는 JSON 페이로드입니다. 이것은 `com.netfective.bluage.jac.entities.JACGroup` 객체의 JSON 직렬화입니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에 GROUP이 제대로 생성된 것입니다.

**참고**  
GROUP은 항상 빈 상태로 생성됩니다. RESOURCES를 GROUP에 연결하려면 추가 작업이 필요합니다(리소스를 생성하면 해당 GROUP에 리소스가 자동으로 연결됩니다).

### 일반 RESOURCES 생성 고려 사항
<a name="common-create-considerations"></a>

다음 엔드포인트는 모두 JICS RESOURCES 생성과 관련이 있으며 몇 가지 공통 제약 조건을 공유합니다. 엔드포인트로 전송할 요청 페이로드에서는 `groupName` 필드의 값을 지정해야 합니다.

GROUP 소유권 제약:

기존 그룹에 연결하지 않으면 리소스를 생성할 수 없으며, 엔드포인트는 groupName을 사용하여 이 리소스가 연결될 그룹을 검색합니다. `groupName`는 기존 GROUP의 이름을 가리켜야 합니다. `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\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/createTransaction`
+ 인수: 생성할 JICS TRANSACTION을 나타내는 JSON 페이로드입니다. 이것은 `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`
+ 인수: 생성할 JICS PROGRAM을 나타내는 JSON 페이로드. 이것은 `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`
+ 인수: 생성할 JIS FILE을 나타내는 JSON 페이로드입니다. 이것은 `com.netfective.bluage.jac.entities.JACFile` 객체의 JSON 직렬화입니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 FILE이 제대로 만들어진 것입니다.

### TDQUE 생성
<a name="create-tdqueue"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/createTDQueue`
+ 인수: 생성할 JIS TDQUEUE를 나타내는 JSON 페이로드입니다. 이것은 `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`
+ 인수: 생성할 JIC TSMODEL을 나타내는 JSON 페이로드입니다. 이것은 `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`
+ 인수: 만들 JICS 요소를 나타내는 JSON 페이로드입니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 요소가 제대로 만들어진 것입니다.

### LIST 업데이트
<a name="update-list"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/updateList`
+ 인수: 업데이트할 JIC LIST를 나타내는 JSON 페이로드입니다. 이것은 `com.netfective.bluage.jac.entities.JACList` 객체의 JSON 직렬화입니다. LIST의 하위 요소를 제공할 필요가 없습니다. LIST 업데이트 메커니즘은 하위 요소를 고려하지 않습니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 LIST가 제대로 업데이트된 것입니다.

LIST 'isActive' 플래그를 업데이트하면 LIST의 모든 소유 요소, 즉 LIST가 소유한 모든 GROUPS와 해당 GROUPS가 소유한 모든 RESOURCES에 전파됩니다. 이는 여러 GROUP에서 한 번의 작업으로 많은 리소스를 비활성화할 수 있는 편리한 방법입니다.

### GROUP 업데이트
<a name="update-group"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/updateGroup`
+ 인수: 업데이트할 JICS GROUP을 나타내는 JSON 페이로드. 이것은 `com.netfective.bluage.jac.entities.JACGroup` 객체의 JSON 직렬화입니다. GROUP의 하위 요소를 제공할 필요가 없습니다. GROUP 업데이트 메커니즘은 이를 고려하지 않습니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 GROUP이 제대로 업데이트된 것입니다.

**참고**  
GROUP 'IsActive' 플래그를 업데이트하면 GROUP이 소유한 모든 요소, 즉 GROUP이 소유한 모든 RESOURCES에 전파됩니다. 이는 주어진 GROUP 내에서 한 번의 작업으로 많은 리소스를 비활성화할 수 있는 편리한 방법입니다.

### 일반 RESOURCES 업데이트 고려 사항
<a name="common-update-considerations"></a>

다음 엔드포인트는 모두 JICS RESOURCES 업데이트에 관한 것입니다. 필드 값이 기본 JICS 스토리지의 기존 GROUP을 가리키는 경우 `groupName` 필드를 사용하여 모든 JIS RESOURCE의 소유 GROUP을 변경할 수 있습니다. 그렇지 않으면 엔드포인트에서 잘못된 요청 응답(HTTP STATUS 400)을 받게 됩니다.

### TRANSACTION 업데이트
<a name="update-transaction"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/updateTransaction`
+ 인수: 업데이트할 JICS TRANSACTION을 나타내는 JSON 페이로드입니다. 이것은 `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`
+ 인수: 업데이트할 JICS PROGRAM을 나타내는 JSON 페이로드. 이것은 `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`
+ 인수: 업데이트할 JIS FILE을 나타내는 JSON 페이로드입니다. 이것은 `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`
+ 인수: 업데이트할 JIC TDQUEUE를 나타내는 JSON 페이로드입니다. 이것은 `com.netfective.bluage.jac.entities.JACTDQueue` 객체의 JSON 직렬화입니다.
+ 부울 값을 반환합니다. 값이 'true'인 경우 기본 JICS 스토리지에서 TDQueue가 제대로 업데이트된 것입니다.

### TSMODEL 업데이트
<a name="update-tsmodel"></a>
+ 지원되는 메서드: POST
+ 인증 및 다음 역할 중 하나가 필요합니다. ROLE\$1ADMIN, ROLE\$1SUPER\$1ADMIN, ROLE\$1USER
+ 경로: `/api/services/rest/jicsservice/updateTSModel`
+ 인수: 업데이트할 JIC TSMODEL을 나타내는 JSON 페이로드입니다. 이것은 `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`
+ 인수: 찾고 있는 JICS 리소스를 나타내는 JSON 페이로드입니다. 이것은 `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 상태 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`
+ 인수: 없음
+ JSON으로 직렬화된 목록을 `com.netfective.bluage.jac.entities.SignOn` 반환합니다.

### 사용자 삭제
<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`
+ 인수: 없음
+ 현재 사용자가 성공적으로 로그아웃된 경우 `{"success":true}` JSON 메시지를 반환합니다. 관련 HTTP 세션이 무효화됩니다.