Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[f3548v21] Target interuss/astm-utm-protocol repo as submodule and regen apis files #16

Merged
merged 1 commit into from
Oct 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
url = https://github.com/uastech/standards
[submodule "interfaces/astm/f3548/v21"]
path = interfaces/astm/f3548/v21
url = https://github.com/astm-utm/Protocol
url = https://github.com/interuss/astm-utm-protocol
[submodule "interfaces/interuss/automated_testing"]
path = interfaces/interuss/automated_testing
url = https://github.com/interuss/automated_testing_interfaces
2 changes: 1 addition & 1 deletion interfaces/astm/f3548/v21
Submodule v21 updated 1 files
+60 −21 utm.yaml
21 changes: 16 additions & 5 deletions src/uas_standards/astm/f3548/v21/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,21 @@
"""String whose format matches a version-4 UUID according to RFC 4122."""


UUIDv7Format = str
"""String whose format matches a version-7 UUID according to RFC 9562."""


EntityID = UUIDv4Format


EntityOVN = str
"""A token associated with a particular UTM Entity+version created by the DSS upon creation or modification of an Entity reference and provided to the client creating or modifying the Entity reference. The EntityOVN is stored privately by the DSS and then compared against entries in a Key provided to mutate the airspace. The EntityOVN is also provided by the client whenever that client transmits the full information of the Entity (either via GET, or via a subscription notification)."""


EntityVersion = int
"""Numeric version of this entity which increments upon each change in the entity, regardless of whether any field of the entity changes. A USS with the details of this entity when it was at a particular version does not need to retrieve the details again until the version changes."""


SubscriptionID = UUIDv4Format


Expand Down Expand Up @@ -318,7 +326,7 @@ class UserNotificationRecordNotificationTriggeringEvent(str, Enum):
CSTP0020 = "CSTP0020"
CSTP0025 = "CSTP0025"
CSTP0030 = "CSTP0030"
CSTO0035 = "CSTO0035"
CSTP0035 = "CSTP0035"


class UserNotificationRecord(ImplicitDict):
Expand Down Expand Up @@ -565,8 +573,7 @@ class OperationalIntentReference(ImplicitDict):

uss_availability: UssAvailabilityState

version: int
"""Numeric version of this operational intent which increments upon each change in the operational intent, regardless of whether any field of the operational intent reference changes. A USS with the details of this operational intent when it was at a particular version does not need to retrieve the details again until the version changes."""
version: EntityVersion

state: OperationalIntentState

Expand Down Expand Up @@ -624,8 +631,7 @@ class ConstraintReference(ImplicitDict):

uss_availability: UssAvailabilityState

version: int
"""Numeric version of this constraint which increments upon each change in the constraint, regardless of whether any field of the constraint reference changes. A USS with the details of this constraint when it was at a particular version does not need to retrieve the details again until the version changes."""
version: EntityVersion

ovn: Optional[EntityOVN]
"""Opaque version number of this constraint. Populated only when the ConstraintReference is managed by the USS retrieving or providing it. Not populated when the ConstraintReference is not managed by the USS retrieving or providing it (instead, the USS must obtain the OVN from the details retrieved from the managing USS)."""
Expand Down Expand Up @@ -916,6 +922,11 @@ class PutOperationalIntentReferenceParameters(ImplicitDict):
new_subscription: Optional[ImplicitSubscriptionParameters]
"""If an existing subscription is not specified in `subscription_id`, and the operational intent is in the Activated, Nonconforming, or Contingent state, then this field must be populated. When this field is populated, an implicit subscription will be created and associated with this operational intent, and will generally be deleted automatically upon the deletion of this operational intent."""

requested_ovn_suffix: Optional[UUIDv7Format]
"""This optional field not part of the original F3548 standard API allows a USS to request a specific OVN when creating or updating an operational intent. When creating an operational intent, this enables a USS to immediately publish the operational intent details with the expected OVN. When updating an operational intent, this enables a USS to immediately make available this new version of the operational intent details if specifically requested by the remote USS. The USS must still wait for the DSS receipt to actually publish the new operational intent details. This allows USSs to obtain correct operational intent details even if the DSS takes a long time to respond and/or the USS processing it.
The requested suffix must be a UUIDv7 string containing a timestamp of the current time. If the suffix is invalid, and notably if the time is too far in the past or the future, the request will be rejected. If the suffix is valid, the DSS will set the OVN of the operational intent to be `{entityid}_{requested_ovn_suffix}`. If no suffix is set, the DSS will proceed as specified by the standard.
"""


class ChangeOperationalIntentReferenceResponse(ImplicitDict):
"""Response to a request to create, update, or delete an OperationalIntentReference in the DSS."""
Expand Down