Especificação do formato - Amazon Cloud Directory

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Especificação do formato

Um esquema do Cloud Directory do fornece uma estrutura para os dados dos seus diretórios de dados. O Cloud Directory fornece dois mecanismos para você definir seu esquema. Os desenvolvedores podem usar operações de API específicas para criar um esquema ou podem fazer upload de um esquema completo usando os recursos de upload de esquemas. Os documentos de um esquema podem ser carregados por meio de chamadas de API ou do console. Esta seção descreve o formato a ser usado para fazer upload dos documentos de um esquema completo.

Formato do esquema JSON

Um documento de esquema é um documento JSON formatado da seguinte maneira.

{ "facets": { "facet name": { "facetAttributes": { "attribute name": Attribute JSON Subsection } } } }

Um documento de esquema contém um mapa que relaciona os nomes de facetas às facetas. Cada faceta, por sua vez, contém uma mapa que possui atributos. Os nomes de todas as facetas em um esquema devem ser exclusivos. Os nomes de todos os atributos em uma faceta devem ser exclusivos.

Subseção de atributos JSON

As facetas contêm atributos. Cada atributo define o tipo de valor que pode ser armazenado em um atributo. O formato JSON a seguir descreve um atributo.

{ "attributeDefinition": Attribute Definition Subsection, "attributeReference": Attribute Reference Subsection, "requiredBehavior": "REQUIRED_ALWAYS" or "NOT_REQUIRED" }

Você deve fornecer uma definição de atributo ou uma referência de atributo. Para obter mais informações, consulte as subseções relacionadas.

O campo de comportamento obrigatório indica se o atributo é necessário ou não. Você deve fornecer este campo. Os valores possíveis são:

  • REQUIRED_ALWAYS: Este atributo deve ser fornecido quando o objeto é criado ou uma faceta é adicionada ao objeto. Não é possível remover este atributo.

  • NOT_REQUIRED: Este atributo pode ou não estar presente.

Subseção de definição de atributos

Um atributo define o tipo e as regras associadas a um valor de atributo. O seguinte layout JSON descreve o formato.

{ "attributeType": One of "STRING", "NUMBER", "BINARY", "BOOLEAN" or "DATETIME", "defaultValue": Default Value Subsection, "isImmutable": true or false, "attributeRules": "Attribute Rules Subsection" }

Subseção de valores padrão

Especifique exatamente um dos seguintes valores padrão. Os valores longos e boolianos devem ser fornecidos sem aspas (como seus tipos respectivos do Javascript, em vez de strings). Os valores binários são fornecidos por meio de uma string codificada em Base64 que pode ser usada como URL (como descrito no RFC 4648). Datas e horas são fornecidas em número de milissegundos, desde o epoch (00:00:00 UTC em 1º de janeiro de 1970).

{ "stringValue": "a string value", "longValue": an integer value, "booleanValue": true or false, "binaryValue": a URL-safe Base64 encoded string, "datetimeValue": an integer value representing milliseconds since epoch }

Subseção de regras de atributos

As regras de atributos definem restrições em valores de atributo. Você pode definir várias regras para cada atributo. As regras de atributo contêm um tipo de regra e um conjunto de parâmetros para a regra. Você pode encontrar mais detalhes na seção Regras para atributos.

{ "rule name": { "parameters": { "rule parameter key 1": "value", "rule parameter key 2": "value" }, "ruleType": "rule type value" } }

Subseção de referência de atributo

A referência de atributo é um recurso avançado. As referências de atributos permitem que várias facetas compartilhem uma definição de atributo e um valor armazenado. Consulte a seção Referências a atributos para obter mais informações. Você pode definir uma referência de atributo no esquema JSON com o seguinte modelo.

{ "targetSchemaArn": "schema ARN" "targetFacetName": "facet name" "targetAttributeName": "attribute name" }

Exemplos de documentos de esquema

Veja a seguir exemplos de documentos de esquema que mostram a formatação válida para JSON.

nota

Todos os valores expressados na string allowedValues devem ser separados por vírgula e sem espaços. Por exemplo, "SENSITIVE,CONFIDENTIAL,PUBLIC".

Documento de esquema básico

{ "facets": { "Employee": { "facetAttributes": { "Name": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": false, "attributeRules": { "NameLengthRule": { "parameters": { "min": "3", "max": "100" }, "ruleType": "STRING_LENGTH" } } }, "requiredBehavior": "REQUIRED_ALWAYS" }, "EmailAddress": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": { "EmailAddressLengthRule": { "parameters": { "min": "3", "max": "100" }, "ruleType": "STRING_LENGTH" } } }, "requiredBehavior": "REQUIRED_ALWAYS" }, "Status": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": false, "attributeRules": { "rule1": { "parameters": { "allowedValues": "ACTIVE,INACTIVE,TERMINATED" }, "ruleType": "STRING_FROM_SET" } } }, "requiredBehavior": "REQUIRED_ALWAYS" } }, "objectType": "LEAF_NODE" }, "DataAccessPolicy": { "facetAttributes": { "AccessLevel": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": { "rule1": { "parameters": { "allowedValues": "SENSITIVE,CONFIDENTIAL,PUBLIC" }, "ruleType": "STRING_FROM_SET" } } }, "requiredBehavior": "REQUIRED_ALWAYS" } }, "objectType": "POLICY" }, "Group": { "facetAttributes": { "Name": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true }, "requiredBehavior": "REQUIRED_ALWAYS" } }, "objectType": "NODE" } } }

Documento de esquema com links digitados

{ "sourceSchemaArn": "", "facets": { "employee_facet": { "facetAttributes": { "employee_login": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" }, "employee_id": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" }, "employee_name": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" }, "employee_role": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" } }, "objectType": "LEAF_NODE" }, "device_facet": { "facetAttributes": { "device_id": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" }, "device_type": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" } }, "objectType": "NODE" }, "region_facet": { "facetAttributes": {}, "objectType": "NODE" }, "group_facet": { "facetAttributes": { "group_type": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" } }, "objectType": "NODE" }, "office_facet": { "facetAttributes": { "office_id": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" }, "office_type": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" }, "office_location": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": true, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" } }, "objectType": "NODE" } }, "typedLinkFacets": { "device_association": { "facetAttributes": { "device_type": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": false, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" }, "device_label": { "attributeDefinition": { "attributeType": "STRING", "isImmutable": false, "attributeRules": {} }, "requiredBehavior": "REQUIRED_ALWAYS" } }, "identityAttributeOrder": [ "device_label", "device_type" ] } } }