

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Connect Customer Profiles 계산된 속성 API
<a name="customerprofiles-calculated-attributes-apis"></a>

다음 Customer Profiles 계산된 속성 API를 사용할 수 있습니다.

------
#### [ CreateCalculatedAttributeDefinition ]

**CreateCalculatedAttributeDefinition**

새 계산된 속성을 생성합니다. 도메인에 기존 객체 유형이 있어야 합니다. 단일 소스 객체에서 가져오려는 속성과 해당 속성에 집계 방식으로 적용할 수학 연산, 시간 범위 및 객체 수를 정의할 수 있습니다.

생성 후에는 Customer Profiles에 수집된 새 객체 데이터가 `GetCalculatedAttributeForProfile` API를 사용하여 프로필에 대해 검색할 수 있는 계산된 속성에 포함됩니다. 기록 데이터도 사용하려면 `UseHistoricalData`를 true로 지정합니다. API 응답의 `Readiness` 및 `Status` 필드는 계산된 속성에 기록 데이터를 포함하는 상태에 대한 정보를 제공합니다.

계산된 속성을 정의하면 도메인 내의 모든 프로필에 사용할 수 있습니다. 계산된 각 속성은 하나의 ObjectType과 해당 ObjectType의 필드 최대 두 개만 참조할 수 있습니다.

**요청**

```
POST /domains/DomainName/calculated-attributes/CalculatedAttributeName
```

```
{
    "CalculatedAttributeName": "string",
    "DisplayName": "string",
    "Description": "string",
    "AttributeDetails": {
       "Attributes": [
           {
               "Name": "string"
           }
           ...
       ],
       "Expression": "string",
    },
    "Statistic": "AVERAGE" | "COUNT" | "SUM" | "FIRST_OCCURRENCE" | "LAST_OCCURRENCE" | "MINIMUM" | "MAXIMUM" | "MAX_OCCURRENCE",
    "Conditions": {
        "Range": {
             "Value": "number",
             "Units": "string"
        },
        "ObjectCount": "number",
        "Threshold": {
            "Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
     },
     "Tags": {}
}
```

**응답**

```
{
    "CalculatedAttributeName": "string",
    "DisplayName": "string",
    "Description": "string",
    "AttributeDetails": {
       "Attributes": [
           {
               "Name": "string"
           }
           ...
       ],
       "Expression": "string",
    },
    "Statistic": "AVERAGE" | "COUNT" | "SUM" | "FIRST_OCCURRENCE" | "LAST_OCCURRENCE" | "MINIMUM" | "MAXIMUM" | "MAX_OCCURRENCE"
    "Conditions": {
        "Range": {
             "Value": "number",
             "Units": "string"
        },
        "ObjectCount": "number",
        "Threshold": {
            "Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
    },
    "CreatedAt": number,
    "LastUpdatedAt": number,
    "Tags": {}
}
```

**요청 본문**
+ **CalculatedAttributeName**

  계산된 속성의 고유한 (도메인별) 이름입니다.
  + 유형: 문자열
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z0-9_-]+$`
  + 필수 여부: 예
+ **DisplayName**

  계산된 속성의 표시 이름입니다.
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z_][a-zA-Z_0-9-\s]*$`
  + 필수 항목 여부: 아니요
+ **설명**

  계산된 속성에 대한 설명입니다.
  + 유형: 문자열
  + 길이 제약: 최소 길이 1. 최대 길이는 1,000.
  + 필수 여부: 아니요
+ **UseHistoricalData**

  계산된 속성이 생성되기 전에 수집된 기록 데이터를 계산에 포함해야 하는지 여부입니다.
  + 유형: Boolean
  + 필수 여부: 아니요
+ **AttributeDetails**

  정의에 사용된 속성 및 속성 간에 사용된 수학 연산에 대한 세부 정보입니다. 다음 구성 요소를 참조하세요.
  + **속성**

    수학 표현식에 지정된 속성 항목 목록입니다.
    + **AttributeItem**

      수학 표현식에 지정된 단일 속성 항목의 세부 정보입니다.
      + 이름
        + 프로필 객체 유형에 정의된 속성의 이름입니다.
        + 유형: 문자열
  + **표현식**

    속성 목록에 제공된 속성 항목에 대해 수행되는 수학 표현식입니다. 표현식의 각 요소는 \$1"\$1ObjectTypeName.AttributeName\$1\$1"의 구조를 따라야 합니다.
    + 예 : `{ObjA.AttributeA} - {ObjA.AttributeB}`
    + 유형: 문자열
    + 다음과 같은 수학 연산만 지원됩니다. `+ - * /` 
    + 계산된 속성 정의를 작성한 후에는 표현식을 수정할 수 없습니다.
+ **조건**

  계산된 속성 집계 기준 및 임계값을 정의합니다.
  + 유형: 조건 객체
    + Range
    + ObjectCount
    + Threshold
+ **Range**

  데이터가 집계에 포함되는 상대적 기간입니다.
  + 유형: 범위 객체
    + 값: 지정된 단위의 시간 길이. `ValueRange`에서 값을 재정의합니다.
      + 유형: 정수
      + 필수 항목 여부: 아니요
    + ValueRange: 고객이 계산된 속성에 포함되는 데이터의 상대 기간을 지정할 수 있는 구조입니다. 양수는 엔드포인트가 과거임을 나타내고 음수는 미래임을 나타냅니다. ValueRange는 값을 재정의합니다.
      + 유형: ValueRange
      + 필수 여부: 아니요
        + 시작
          + 객체를 포함할 시간의 시작 시간입니다. 양수는 시작 포인트가 과거임을 나타내고 음수는 미래임을 나타냅니다.
          + 유형: 정수
          + 필수 항목 여부: 예 
        + 종료
          + 객체를 포함할 시기의 종료 시간입니다. 양수는 시작 포인트가 과거임을 나타내고 음수는 미래임을 나타냅니다.
          + 유형: 정수
          + 필수 항목 여부: 예 
    + TimestampSource: 날짜를 구문 분석해야 하는 JSON 객체의 필드를 지정하는 표현식입니다. 표현식은 "\$1ObjectTypeName.<JSON 포인터 형식>\$1\$1"의 타임스탬프 필드 위치입니다. 예를 들어 객체 유형이 MyType이고 소스 JSON이 `{"generatedAt": {"timestamp": "1737587945945"}}`인 경우 TimestampSource는 `"{MyType.generatedAt.timestamp}"`이어야 합니다.
      + 길이 제약: 최소 길이 1. 최대 길이는 255.
      + 필수 여부: 아니요
    + TimestampFormat: JSON 객체의 타임스탬프 필드가 지정된 형식입니다. 이 값은 EPOCHMILLI(초/밀리초 수준 정밀도가 있는 Unix 에포크 타임스탬프의 경우) 또는 ISO\$18601(초/밀리초 수준 정밀도가 있는 ISO\$18601 형식, 선택적 오프셋 Z 또는 HH:MM 또는 HHMM 형식) 중 하나여야 합니다. 예를 들어 객체 유형이 MyType이고 소스 JSON이 `{"generatedAt": {"timestamp": "2001-07-04T12:08:56.235-0700"}},`인 경우 TimestampFormat은 `"ISO_8601"`이어야 합니다.
    + 단위: 시간 단위
      + 유효한 값: 일
      + 필수 항목 여부: 예
  + 필수 항목 여부: 예
  + 초기 범위: 최대 366일
+ **ObjectCount**

  계산된 속성에 사용되는 프로필 객체의 수입니다.
  + 형식: 숫자
  + 범위: 1에서 100까지
  + 필수 여부: 아니요
+ **Threshold**

  참/거짓으로 계산된 속성을 생성하기 위한 비교 로직입니다.
  + 유형: 임계값 객체
    + 값
      + 임계값의 값
      + 유형: 문자열
      + 필수 항목 여부: 아니요
    + 연산자
      + 임계값의 연산자
      + 유형: ENUM
      + 유효한 값:
        + GREATER\$1THAN
        + LESS\$1THAN
        + EQUAL\$1TO
        + NOT\$1EQUAL\$1TO
  + 필수 여부: 아니요
+ **통계**

  계산된 속성에 대해 수행할 집계 작업입니다.
  + 유형: ENUM
  + 유효한 값:
    + FIRST\$1OCCURRENCE
    + LAST\$1OCCURRENCE
    + COUNT
    + SUM
    + MINIMUM
    + MAXIMUM
    + AVERAGE
    + MAX\$1OCCURRENCE

------
#### [ UpdateCalculatedAttributeDefinition ]

**UpdateCalculatedAttributeDefinition**

계산된 속성 정의를 업데이트합니다. 업데이트는 표시 이름, 설명, 시간 범위, 객체 수 및 임계값으로 제한됩니다. 이 API는 부분 업데이트를 지원하므로 업데이트가 필요한 파라미터만 포함하면 됩니다.

**참고**  
조건을 업데이트할 때:  
계산된 속성의 날짜 범위를 늘려도 현재 날짜 범위보다 오래된 과거 데이터가 포함되지는 않습니다.
계산된 속성 정의가 생성된 후에는 TimestampSource 및 TimestampFormat을 업데이트할 수 없습니다.

**요청**

```
PUT /domains/DomainName/calculated-attributes/CalculatedAttributeName
```

```
{
    "DisplayName": "string",
    "Description": "string",
    "Conditions": {
        "Range": {
             "Value": "number",
             "Units": "string"
        },
        "ObjectCount": "number",
        "Threshold": {
            "Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
   }
}
```

**응답**

```
{
    "CalculatedAttributeName": "string",
    "DisplayName": "string",
    "Description": "string",
    "AttributeDetails": {
       "Attributes": [
           {
               "Name": "string"
           }
           ...
       ],
       "Expression": "string",
    },
    "Statistic": "AVERAGE" | "COUNT" | "SUM" | "FIRST_OCCURRENCE" | "LAST_OCCURRENCE" | "MINIMUM" | "MAXIMUM" | "MAX_OCCURRENCE"
    "Conditions": {
        "Range": {
             "Value": "number",
             "Units": "string"
        },
        "ObjectCount": "number",
        "Threshold": {
            "Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
    },
    "CreatedAt": number,
    "LastUpdatedAt": number,
    "Tags": {}
}
```

**요청 본문**
+ **DisplayName**

  계산된 속성의 표시 이름입니다.
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z_][a-zA-Z_0-9-\s]*$`
  + 필수 항목 여부: 아니요
+ **설명**

  계산된 속성에 대한 설명입니다.
  + 유형: 문자열
  + 길이 제약: 최소 길이 1. 최대 길이는 1,000.
  + 필수 여부: 아니요
+ **조건**

  계산된 속성 집계 기준 및 임계값을 정의합니다.
  + 유형: 조건 객체
    + Range
    + ObjectCount
    + Threshold
+ **Range**

  데이터가 집계에 포함되는 상대적 기간입니다.
  + 유형: 범위 객체
    + 값: 지정된 단위의 시간 길이
      + 유형: 정수
      + 필수 항목 여부: 아니요
    + ValueRange: 고객이 계산된 속성에 포함되는 데이터의 상대 기간을 지정할 수 있는 구조입니다. 양수는 엔드포인트가 과거임을 나타내고 음수는 미래임을 나타냅니다. ValueRange는 값을 재정의합니다.
      + 유형: ValueRange
      + 필수 여부: 아니요
        + 시작
          + 객체를 포함할 시간의 시작 시간입니다. 양수는 시작 포인트가 과거임을 나타내고 음수는 미래임을 나타냅니다.
          + 유형: 정수
          + 필수 항목 여부: 예 
        + 종료
          + 객체를 포함할 시기의 종료 시간입니다. 양수는 시작 포인트가 과거임을 나타내고 음수는 미래임을 나타냅니다.
          + 유형: 정수
          + 필수 항목 여부: 예 
    + 단위: 시간 단위
      + 유효한 값: 일
      + 필수 항목 여부: 예
  + 필수 항목 여부: 예
  + 초기 범위: 최대 366일
+ **ObjectCount**

  계산된 속성에 사용되는 프로필 객체의 수입니다.
  + 형식: 숫자
  + 범위: 1에서 100까지
  + 필수 여부: 아니요
+ **Threshold**

  참/거짓으로 계산된 속성을 생성하기 위한 비교 로직입니다.
  + 유형: 임계값 객체
    + 값
      + 임계값의 값
      + 유형: 문자열
      + 필수 항목 여부: 아니요
    + 연산자
      + 임계값의 연산자
      + 유형: ENUM
      + 유효한 값:
        + GREATER\$1THAN
        + LESS\$1THAN
        + EQUAL\$1TO
        + NOT\$1EQUAL\$1TO
  + 필수 여부: 아니요

------
#### [ GetCalculatedAttributeDefinition ]

**GetCalculatedAttributeDefinition**

계산된 속성 정의를 가져옵니다.

**요청**

```
GET /domains/DomainName/calculated-attributes/CalculatedAttributeName
```

**요청 본문**

```
The request does not have a request body.
```

**응답**

```
{
"CalculatedAttributeName": "string",
    "DisplayName": "string",
    "Description": "string",
    "AttributeDetails": {
"Attributes": [
           {
"Name": "string"
           }
           ...
       ],
       "Expression": "string",
    },
    "Statistic": "AVERAGE" | "COUNT" | "SUM" | "FIRST_OCCURRENCE" | "LAST_OCCURRENCE" | "MINIMUM" | "MAXIMUM" | "MAX_OCCURRENCE"
"Conditions": {
"Range": {
      "Unit": "string",
      "Value": number
      "ValueRange"
        {
            "Start": number 
            "End": number 
        },
      "TimestampFormat": "string", 
      "TimestampSource": "string"
    },
        "ObjectCount": "number",
        "Threshold": {
"Value": "string",
            "Operator": "EQUAL_TO" | "GREATER_THAN" | "LESS_THAN" | "NOT_EQUAL_TO"
        }
    },
    "UseHistoricalData" boolean,
  "Status": "PREPARING" | "IN_PROGRESS" | "COMPLETED" | "FAILED",
  "Readiness": {
        "ProgressPercentage": number, 
        "Message": "string", 
        },
    "CreatedAt": number,
    "LastUpdatedAt": number,
    "Tags": {}
}
```

**URI 요청 파라미터**
+ **DomainName**

  도메인의 고유 이름입니다.
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z0-9_-]+$`
  + 필수 여부: 예
+ **CalculatedAttributeName**

  계산된 속성의 고유한 (도메인별) 이름입니다.
  + 유형: 문자열
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z0-9_-]+$`
  + 필수 여부: 예

------
#### [ DeleteCalculatedAttributeDefinition ]

**DeleteCalculatedAttributeDefinition**

기존의 계산된 속성 정의를 삭제합니다. 기본 계산된 속성은 삭제할 수 있지만 일단 삭제한 후에는 해당 작업을 취소할 수 없으며 다시 사용하려면 `CreateCalculatedAttributeDefinition` API를 사용하여 직접 다시 생성해야 합니다.

**요청**

```
DELETE /domains/DomainName/calculated-attributes/CalculatedAttributeName
```

**요청 본문**

```
The request does not have a request body.
```

**응답**

```
The response does not have a response body.
```

**URI 요청 파라미터**
+ **DomainName**

  도메인의 고유 이름입니다.
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z0-9_-]+$`
  + 필수 여부: 예
+ **CalculatedAttributeName**

  계산된 속성의 고유한 (도메인별) 이름입니다.
  + 유형: 문자열
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z0-9_-]+$`
  + 필수 여부: 예

------
#### [ ListCalculatedAttributeDefinitions ]

**ListCalculatedAttributeDefinitions**

도메인의 모든 계산된 속성 정의를 검색합니다.

**요청**

```
GET /domains/DomainName/calculated-attributes?max-results=MaxResults&next-token=NextToken
```

**요청 본문**

```
The request does not have a request body.
```

**응답**

```
{ 
    "Items": [
        {
            "UseHistoricalData": boolean,
            "ReadinessStatus": PREPARING | IN_PROGRESS | COMPLETED | FAILED,
            "CalculatedAttributeName": "string", 
            "CreatedAt": number, 
            "Description": "string", 
            "DisplayName": "string", 
            "LastUpdatedAt": number, 
            "Tags": { 
                "string" : "string" 
            }
        } 
    ], 
    "NextToken": "string"
}
```

**URI 요청 파라미터**
+ **DomainName**

  도메인의 고유 이름입니다.
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z0-9_-]+$`
  + 필수 여부: 예
+ **MaxResults**

  페이지당 반환되는 최대 객체 수입니다.
  + 유효 범위: 최소값 1. 최대값은 100입니다.
+ **NextToken**

  이전 ListCalculatedAttributeDefinition API 호출의 페이지 매김 토큰입니다.
  + 길이 제약: 최소 길이 1. 최대 길이는 1,024입니다.

------
#### [ GetCalculatedAttributeForProfile ]

**GetCalculatedAttributeForProfile**

계산을 시작하고 단일 프로필에 대해 계산된 단일 속성의 결과를 검색합니다.

**요청**

```
GET /domains/DomainName/profile/ProfileId/calculated-attributes/CalculatedAttributeName
```

**요청 본문**

```
The request does not have a request body.
```

**응답**

```
{
"Name": "string",
    "DisplayName": "string",
    "Value": "string",
    "IsDataPartial": "string",
    "LastObjectTimestamp" : number
}
```

**URI 요청 파라미터**
+ **DomainName**

  도메인의 고유 이름입니다.
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z0-9_-]+$`
  + 필수 여부: 예
+ **CalculatedAttributeName**

  계산된 속성의 고유한 (도메인별) 이름입니다.
  + 유형: 문자열
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z0-9_-]+$`
  + 필수 여부: 예

------
#### [ ListCalculatedAttributesForProfile ]

**ListCalculatedAttributesForProfile**

계산을 시작하고 단일 프로필에 대해 계산된 모든 속성의 결과를 검색합니다.

**요청**

```
GET /domains/DomainName/profile/ProfileId/calculated-attributes?max-results=MaxResults&next-token=NextToken
```

**요청 본문**

```
The request does not have a request body.
```

**응답**

```
{
"Items": [
        {
"CalculatedAttributeName": "string",
            "DisplayName": "string",
            "Value": "string",
            "IsDataPartial" : "string",
            "LastObjectTimestamp" : number
        },
        ...
    ],
    "NextToken": "string"
}
```

**URI 요청 파라미터**
+ **DomainName**

  도메인의 고유 이름입니다.
  + 길이 제한: 최소 길이는 1. 최대 길이는 64.
  + 패턴: `^[a-zA-Z0-9_-]+$`
  + 필수 여부: 예
+ **ProfileId**
  + 패턴: `[a-f0-9]{32}`
  + 필수 여부: 예
+ **MaxResults**

  페이지당 반환되는 최대 객체 수입니다.
  + 유효 범위: 최소값 1. 최대값은 100입니다.
+ **NextToken**

  이전 ListCalculatedAttributeDefinition API 호출의 페이지 매김 토큰입니다.
  + 길이 제약: 최소 길이 1. 최대 길이는 1,024입니다.

------