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" ] } } }