V1 온톨로지 매개변수와 값 자료형
액션과 쿼리는 매개변수 ID에서 값으로의 맵을 입력으로 사용할 수 있습니다. ParameterId는 Ontology Manager에서 확인하고 관리하는 고유 문자열입니다. 매개변수 정의와 실제 전달할 JSON 값은 구분합니다.
Parameter 정의
| 필드 | 자료형 | 필수 여부 | 의미 |
|---|---|---|---|
description | string | 선택 | 매개변수 설명 |
baseType | string | 필수 | 중첩 가능한 유형 표현 문자열 |
dataType | tagged union | 선택 | 구조화된 온톨로지 자료형 |
required | boolean | 필수 | 액션 또는 쿼리 입력에서 이 매개변수가 필요한지 여부 |
baseType의 문자열 표현은 객체 유형의 유형 표현 표를 따릅니다. 예를 들어 Integer, String, Array<String>, OntologyObject<T>처럼 표현합니다.
dataType의 선택 유형
dataType은 type으로 변형을 구분합니다. 추가 필드가 없는 변형은 다음과 같습니다.
date, string, byte, double, integer, float, any, long,
boolean, mediaReference, binary, short, timestamp
추가 설정이 있는 변형은 다음과 같습니다. itemType, fieldType, keyType, valueType은 같은 자료형 정의를 다시 사용하므로 중첩할 수 있습니다.
| type | 필드 | 자료형 | 필수 여부 | 의미 |
|---|---|---|---|---|
struct | fields | list<OntologyStructField> | 선택 | 구조체 필드 목록 |
set | itemType | dataType | 필수 | 집합 원소 유형 |
array | itemType | dataType | 필수 | 배열 원소 유형 |
cipherText | defaultCipherChannel | string | 선택 | 빈 값에 암호화 갱신을 적용할 때 사용할 Cipher Channel RID |
marking | markingType | enum | 선택 | CBAC 또는 MANDATORY |
unsupported | unsupportedType | string | 필수 | 지원되지 않는 유형 식별자 |
unsupported | params | map<string, string> | 선택 | 유형별 추가 문자열 매개변수 |
objectSet | objectApiName | string | 선택 | 객체 유형 API 이름 |
objectSet | objectTypeApiName | string | 선택 | 객체 유형 API 이름 |
decimal | precision | integer | 선택 | 전체 자릿수. 최대 38 |
decimal | scale | integer | 선택 | 소수점 오른쪽 자릿수. 최대 38 |
map | keyType | dataType | 필수 | 맵 키 유형 |
map | valueType | dataType | 필수 | 맵 값 유형 |
object | objectApiName | string | 필수 | 객체 유형 API 이름 |
object | objectTypeApiName | string | 필수 | 객체 유형 API 이름 |
markingType: CBAC는 분류 기반 접근 제어 보안 표지이고, MANDATORY는 조직 같은 일반 비분류 보안 표지입니다. objectApiName과 objectTypeApiName은 별도 필드이므로 한 필드를 다른 이름으로 임의 치환하지 않습니다.
OntologyStructField에는 다음 세 필드가 모두 필요합니다.
| 필드 | 자료형 | 의미 |
|---|---|---|
name | string | 구조체 필드 이름 |
fieldType | dataType | 필드 자료형 |
required | boolean | 해당 구조체 필드의 필수 여부 |
DataValue의 JSON 표현
입력 또는 출력 값은 아래 형식으로 표현합니다. 구조체 배열처럼 값의 형식도 중첩할 수 있습니다.
| 유형 | JSON 표현 | 예시 |
|---|---|---|
| Array | 배열 | ["alpha", "bravo", "charlie"] |
| Attachment | 첨부 파일 RID 문자열 | "ri.attachments.main.attachment.2f944bae-5851-4204-8615-920c969a9f2e" |
| Boolean | boolean | true |
| Byte | number | 31 |
| CipherText | 문자열 | 아래 암호문 예시 |
| Date | ISO 8601 날짜 문자열 | "2021-05-01" |
| Decimal | 문자열 | "2.718281828" |
| Double | number | 3.14159265 |
| EntrySet | key/value JSON 객체 배열 | [{"key":"EMP1234","value":"true"},{"key":"EMP4444","value":"false"}] |
| Float | number | 3.14159265 |
| Integer | number | 238940 |
| Long | 문자열 | "58319870951433" |
| Marking | 문자열 | "MU" |
| Null | null | null |
| Object Set | 객체 집합 RID 문자열 또는 객체 집합 정의 | "ri.object-set.main.versioned-object-set.h13274m8-23f5-431c-8aee-a4554157c57z" |
| Ontology Object Reference | 객체 기본 키의 JSON 표현 | 10033123 또는 "EMP1234" |
| Ontology Interface Object Reference | 객체 유형 API 이름과 기본 키 객체 | {"objectTypeApiName":"Employee","primaryKeyValue":"EMP1234"} |
| Ontology Object Type Reference | 객체 유형 API 이름 문자열 | "Employee" |
| Scenario Reference | 시나리오 RID 문자열 | "ri.actions..scenario.cf2a8a49-8b56-446d-ab04-a6bc7fadef48" |
| Set | 배열 | ["alpha", "bravo", "charlie"] |
| Short | number | 8739 |
| String | 문자열 | "Call me Ishmael" |
| Struct | JSON 객체 | {"name":"John Doe","age":42} |
| TwoDimensionalAggregation | JSON 객체 | {"groups":[{"key":"alpha","value":100},{"key":"beta","value":101}]} |
| ThreeDimensionalAggregation | 중첩 그룹 JSON 객체 | {"groups":[{"key":"NYC","groups":[{"key":"Engineer","value":100}]}]} |
| Timestamp | UTC의 ISO 8601 시각 문자열 | "2021-01-04T05:00:00Z" |
| Time Series Reference | type 구분자가 있는 JSON 객체 | 아래 세 형태 |
CipherText는 채널과 암호문을 담은 문자열입니다. 다음 값은 형식 예시입니다.
CIPHER::ri.bellaso.main.cipher-channel.e414ab9e-b606-499a-a0e1-844fa296ba7e::unzjs3VifsTxuIpf1fH1CJ7OaPBr2bzMMdozPaZJtCii8vVG60yXIEmzoOJaEl9mfFFe::CIPHER
시계열 참조 값
시계열 ID만 지정하는 형태:
{"type":"seriesId","seriesId":"sensor-123"}
템플릿과 버전을 지정하는 형태:
{
"type": "templateRid",
"templateRid": {
"templateRid": "ri.time-series-catalog.main.template.2f944bae-5851-4204-8615-920c969a9f2e",
"templateVersion": "1"
}
}
동기화 RID와 시계열 ID를 함께 지정하는 형태:
{
"type": "qualifiedSeriesId",
"qualifiedSeriesId": {
"seriesId": "sensor-123",
"syncRid": "ri.time-series-catalog.main.sync.2f944bae-5851-4204-8615-920c969a9f2e"
}
}
어떤 값 형식을 사용할지는 해당 매개변수의 정의를 따릅니다. 예를 들어 객체 참조에는 객체 RID 대신 그 객체의 기본 키 값을 전달합니다.