uploadEntityDefinitions method
- bool? deprecateExistingEntities,
- DefinitionDocument? document,
- bool? syncWithPublicNamespace,
Asynchronously uploads one or more entity definitions to the user's
namespace. The document
parameter is required if
syncWithPublicNamespace
and
deleteExistingEntites
are false. If the
syncWithPublicNamespace
parameter is set to
true
, the user's namespace will synchronize with the latest
version of the public namespace. If deprecateExistingEntities
is set to true, all entities in the latest version will be deleted before
the new DefinitionDocument
is uploaded.
When a user uploads entity definitions for the first time, the service
creates a new namespace for the user. The new namespace tracks the public
namespace. Currently users can have only one namespace. The namespace
version increments whenever a user uploads entity definitions that are
backwards-incompatible and whenever a user sets the
syncWithPublicNamespace
parameter or the
deprecateExistingEntities
parameter to true
.
The IDs for all of the entities should be in URN format. Each entity must be in the user's namespace. Users can't create entities in the public namespace, but entity definitions can refer to entities in the public namespace.
Valid entities are Device
, DeviceModel
,
Service
, Capability
, State
,
Action
, Event
, Property
,
Mapping
, Enum
.
May throw InvalidRequestException. May throw InternalFailureException. May throw ThrottlingException.
Parameter deprecateExistingEntities
:
A Boolean that specifies whether to deprecate all entities in the latest
version before uploading the new DefinitionDocument
. If set
to true
, the upload will create a new namespace version.
Parameter document
:
The DefinitionDocument
that defines the updated entities.
Parameter syncWithPublicNamespace
:
A Boolean that specifies whether to synchronize with the latest version of
the public namespace. If set to true
, the upload will create
a new namespace version.
Implementation
Future<UploadEntityDefinitionsResponse> uploadEntityDefinitions({
bool? deprecateExistingEntities,
DefinitionDocument? document,
bool? syncWithPublicNamespace,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'IotThingsGraphFrontEndService.UploadEntityDefinitions'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
if (deprecateExistingEntities != null)
'deprecateExistingEntities': deprecateExistingEntities,
if (document != null) 'document': document,
if (syncWithPublicNamespace != null)
'syncWithPublicNamespace': syncWithPublicNamespace,
},
);
return UploadEntityDefinitionsResponse.fromJson(jsonResponse.body);
}