As part of ongoing improvements to the Extended API, we are changing the way we consider required attributes on creation of activities through the API. This change is being made to ensure consistency with other endpoints as to how what ‘Required’ means when considering attribute values being supplied to the API by the caller.
Any users of the Extended API who rely on the geometry of created activities being inferred from the parent Asset will be affected by this change.
Currently, it is possible to create an activity such as a Job or Defect via the Extended API and not provide geometry despite the activity Design having the geometry marked as required since the geometry may be inferred from the parent Asset. This has created an inconsistency where required attributed are not actually required.
In order to remedy this inconsistency, we are making a change to ensure that values for all required attributes are always supplied by the caller of the API. For simplicity, the end result will be:
Required means required
For activities where geometry and possibly other attribute values are not supplied but computed by a service/backend process, these attributes should be marked as optional. This ensure data consistency in the event that the backend process is unable to compute an attribute value for any reason.
As part of this change, we will be updating all activity designs, including custom designs to mark the geometry as optional to ensure that any integrations that rely on the previous interpretation are not affected by this change in behaviour. Following the change, if you are able to confirm that any integrations using the Extended API to create activities always include geometry values in the call, the geometry may be switched back to **Required **if necessary.