Specifiche del formato - Amazon Cloud Directory

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Specifiche del formato

Uno schema Cloud Directory aggiunge struttura ai dati nelle directory dati. Cloud Directory ti fornisce due meccanismi per definire il schema. Gli sviluppatori possono utilizzare operazioni dell'API specifiche per creare uno schema o possono caricare uno schema solamente utilizzando le funzionalità di caricamento dello schema. I documenti dello schema possono essere caricati tramite le chiamate API o tramite la console. Questa sezione descrive il formato da utilizzare quando carichi interi documenti dello schema.

Formato di schemi JSON

Un documento dello schema è un documento JSON nel seguente formato generale.

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

Un documento dello schema contiene una mappa di nomi di facet a facet. Ogni facet a sua volta contiene una mappa contenente attributi. Tutti i nomi di facet all'interno di uno schema devono essere unici. Tutti i nomi degli attributi all'interno di un facet devono essere unici.

Sottosezione JSON di attributo

I facet contengono attributi. Ogni attributo definisce il tipo di valore che può essere archiviato in un attributo. Il seguente formato JSON descrive un attributo.

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

Devi fornire una definizione di attributo o un riferimento di attributo. Consulta le sottosezioni correlate per maggiori informazioni su ognuna.

Il campo del comportamento obbligatorio indica se questo attributo è obbligatorio o meno. Devi fornire questo campo. I valori possibili sono i seguenti:

  • REQUIRED_ALWAYS: questo attributo deve essere fornito quando viene creato l'oggetto o viene aggiunto un facet all'oggetto. Non puoi rimuovere questo attributo.

  • NOT_REQUIRED: questo attributo potrebbe non essere presente.

Sottosezione di definizione di attributo

Un attributo definisce il tipo e le regole associate a un valore di attributo. Il seguente layout JSON descrive il formato.

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

Sottosezione di valore predefinito

Specifica esattamente uno dei seguenti valori predefiniti. I valori lunghi e i valori booleani devono essere forniti al di fuori delle virgolette (come i loro rispettivi tipi di Javascript anziché di stringhe). I valori binari vengono forniti utilizzando una stringa codificata Base64 URL-safe (come descritto in RFC 4648). I valori DateTimes sono indicati nel numero di millisecondi dall'epoca (Unix epoch) (00:00:00 UTC del 1° gennaio 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 }

Sottosezione delle regole di attributo

Le regole degli attributi definiscono i vincoli sui valori degli attributi. Puoi definire più regole per ogni attributo. Le regole di attributo contengono un tipo di regola e un insieme di parametri per la regola. Puoi trovare ulteriori dettagli nella sezione Regole di attributi.

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

Sottosezione di riferimento di attributo

I riferimenti di attributo sono una funzionalità avanzata. Consentono a più facet di condividere una definizione di attributo e un valore archiviato. Per maggiori informazioni, consulta la sezione Riferimenti all'attributo. Puoi definire un riferimento di attributo nello schema JSON con il modello seguente.

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

Esempi di documento dello schema

Di seguito sono riportati esempi di documenti dello schema che mostrano una formattazione JSON valida.

Nota

Tutti i valori espressi nella stringa allowedValues devono essere separati da una virgola e senza spazi. Ad esempio, "SENSITIVE,CONFIDENTIAL,PUBLIC".

Documento dello schema di base

{ "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 dello schema con link tipizzati

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