From ba40a9e48d73efc2403fa2aa42adbcb44b2c6878 Mon Sep 17 00:00:00 2001 From: Benjamin Pelletier Date: Sun, 18 Oct 2026 09:58:19 -0700 Subject: [PATCH 1/4] Improve test suite resource input definitions --- monitoring/uss_qualifier/suites/README.md | 4 ++ .../suites/astm/netrid/f3411_22a.md | 26 +++++++++ .../suites/astm/netrid/f3411_22a.yaml | 58 +++++++++++++------ .../uss_qualifier/suites/definitions.py | 40 ++++++++++++- .../suites/documentation/documentation.py | 24 ++++++++ monitoring/uss_qualifier/suites/suite.py | 4 +- 6 files changed, 134 insertions(+), 22 deletions(-) diff --git a/monitoring/uss_qualifier/suites/README.md b/monitoring/uss_qualifier/suites/README.md index 862326bc70..a2bfea59c2 100644 --- a/monitoring/uss_qualifier/suites/README.md +++ b/monitoring/uss_qualifier/suites/README.md @@ -12,6 +12,10 @@ Test suites are tolerant of incomplete resources available for an action. All r Test suite documentation is generated automatically; use `make format` from the repository root to regenerate it. +### Resources + +This section lists the input resources used/accepted by the suite, their types, whether they are optional, and any descriptions of their purpose or usage. + ### Actions This section of a test suite documentation page summarizes the actions that will be taken when the test suite is run. diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md index 303cb9023e..3380ac03f3 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md @@ -2,6 +2,32 @@ # ASTM F3411-22a test suite [`suites.astm.netrid.f3411_22a`](./f3411_22a.yaml) +Verify compliance to ASTM F3411-22a requirements for a collection of Service Providers, Display Providers, and/or DSS providers. + +## [Resource inputs](../../README.md#resources) + +- `test_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) + + Means by which to retrieve and record the versions of the systems under test. + +- `system_identity`: `resources.versioning.SystemIdentityResource` (optional) +- `flights_data`: `resources.netrid.FlightDataResource` +- `service_providers`: `resources.netrid.NetRIDServiceProviders` (optional) +- `observers`: `resources.netrid.NetRIDObserversResource` (optional) +- `mock_uss_dp`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `mock_uss_sp`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `evaluation_configuration`: `resources.netrid.EvaluationConfigurationResource` +- `dss_instances`: `resources.astm.f3411.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `service_area`: `resources.netrid.ServiceAreaResource` +- `problematically_big_area`: `resources.VolumeResource` +- `planning_area`: `resources.PlanningAreaResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) +- `uss_identification`: `resources.interuss.uss_identification.USSIdentificationResource` (optional) +- `concurrency_behavior_adjustment`: `resources.interuss.scenarios.astm.netrid.common.dss.heavy_traffic_concurrent.HeavyTrafficConcurrentBehaviorResource` (optional) + ## [Actions](../../README.md#actions) 1. Scenario: [Get system versions](../../../scenarios/versioning/get_system_versions.md) ([`scenarios.versioning.GetSystemVersions`](../../../scenarios/versioning/get_system_versions.py)) diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.yaml b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.yaml index 7f4064f22a..122819a4d8 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.yaml +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.yaml @@ -1,23 +1,43 @@ name: ASTM F3411-22a -resources: - test_env_version_providers: resources.versioning.VersionProvidersResource? - system_identity: resources.versioning.SystemIdentityResource? - flights_data: resources.netrid.FlightDataResource - service_providers: resources.netrid.NetRIDServiceProviders? - observers: resources.netrid.NetRIDObserversResource? - mock_uss_dp: resources.interuss.mock_uss.client.MockUSSResource? - mock_uss_sp: resources.interuss.mock_uss.client.MockUSSResource? - evaluation_configuration: resources.netrid.EvaluationConfigurationResource - dss_instances: resources.astm.f3411.DSSInstancesResource? - dss_datastore_cluster: resources.interuss.datastore.DatastoreDBClusterResource? - utm_client_identity: resources.communications.ClientIdentityResource - id_generator: resources.interuss.IDGeneratorResource - service_area: resources.netrid.ServiceAreaResource - problematically_big_area: resources.VolumeResource - planning_area: resources.PlanningAreaResource - test_exclusions: resources.dev.TestExclusionsResource? - uss_identification: resources.interuss.uss_identification.USSIdentificationResource? - concurrency_behavior_adjustment: resources.interuss.scenarios.astm.netrid.common.dss.heavy_traffic_concurrent.HeavyTrafficConcurrentBehaviorResource? +description: Verify compliance to ASTM F3411-22a requirements for a collection of Service Providers, Display Providers, and/or DSS providers. +resource_inputs: + - resource_id: test_env_version_providers + type: resources.versioning.VersionProvidersResource? + description: Means by which to retrieve and record the versions of the systems under test. + - resource_id: system_identity + type: resources.versioning.SystemIdentityResource? + - resource_id: flights_data + type: resources.netrid.FlightDataResource + - resource_id: service_providers + type: resources.netrid.NetRIDServiceProviders? + - resource_id: observers + type: resources.netrid.NetRIDObserversResource? + - resource_id: mock_uss_dp + type: resources.interuss.mock_uss.client.MockUSSResource? + - resource_id: mock_uss_sp + type: resources.interuss.mock_uss.client.MockUSSResource? + - resource_id: evaluation_configuration + type: resources.netrid.EvaluationConfigurationResource + - resource_id: dss_instances + type: resources.astm.f3411.DSSInstancesResource? + - resource_id: dss_datastore_cluster + type: resources.interuss.datastore.DatastoreDBClusterResource? + - resource_id: utm_client_identity + type: resources.communications.ClientIdentityResource + - resource_id: id_generator + type: resources.interuss.IDGeneratorResource + - resource_id: service_area + type: resources.netrid.ServiceAreaResource + - resource_id: problematically_big_area + type: resources.VolumeResource + - resource_id: planning_area + type: resources.PlanningAreaResource + - resource_id: test_exclusions + type: resources.dev.TestExclusionsResource? + - resource_id: uss_identification + type: resources.interuss.uss_identification.USSIdentificationResource? + - resource_id: concurrency_behavior_adjustment + type: resources.interuss.scenarios.astm.netrid.common.dss.heavy_traffic_concurrent.HeavyTrafficConcurrentBehaviorResource? actions: - test_scenario: scenario_type: scenarios.versioning.GetSystemVersions diff --git a/monitoring/uss_qualifier/suites/definitions.py b/monitoring/uss_qualifier/suites/definitions.py index 78156d2ad0..261125aacf 100644 --- a/monitoring/uss_qualifier/suites/definitions.py +++ b/monitoring/uss_qualifier/suites/definitions.py @@ -115,14 +115,33 @@ def get_action_type_name(self) -> str: """This string is a ResourceTypeName (which may include generic type arguments in brackets), but then may be suffixed with '?' (e.g., `resources.SomeGenericResource[resources.SubResource]?`). If the value ends in '?', that indicates the resource is optional and does not need to be provided.""" +class ResourceInput(ImplicitDict): + resource_id: ResourceID + """The ID of the resource as it will be made available to actions in the test suite.""" + + type: ResourceTypeNameSpecifyingOptional + """The type of this resource, optionally suffixed with '?' to indicate it is optional.""" + + description: Optional[str] + """Description of the purpose/usage of this resource.""" + + class TestSuiteDefinition(ImplicitDict): """Schema for the definition of a test suite, analogous to the Python TestScenario subclass for scenarios""" name: str """Name of the test suite""" - resources: dict[ResourceID, ResourceTypeNameSpecifyingOptional] - """Enumeration of the resources used by this test suite""" + description: Optional[str] + """Description of the purpose/behavior of the test suite.""" + + resources: Optional[dict[ResourceID, ResourceTypeNameSpecifyingOptional]] + """DEPRECATED; use resource_inputs. + + Enumeration of the resources used by this test suite""" + + resource_inputs: Optional[list[ResourceInput]] + """Enumeration of the resources used by this test suite. May not be specified together with `resources`.""" local_resources: Optional[dict[ResourceID, ResourceDeclaration]] """Declarations of resources originating in this test suite, which may depend on `resources` passed into the test suite. If a resource is defined in both `resources` and `local_resources`, the resource in `local_resources` will be ignored (`resources` overrides `local_resources`).""" @@ -133,6 +152,23 @@ class TestSuiteDefinition(ImplicitDict): participant_verifiable_capabilities: Optional[list[ParticipantCapabilityDefinition]] """Definitions of capabilities verified by this test suite for individual participants.""" + def __init__(self, previous_instance: dict | None = None, **kwargs): + supplied_fields = (previous_instance or {}).keys() | kwargs.keys() + if "resources" in supplied_fields and "resource_inputs" in supplied_fields: + raise ValueError( + "May not specify both resources and resource_inputs in the same TestSuiteDefinition" + ) + super().__init__(previous_instance, **kwargs) + + def get_resource_inputs(self) -> list[ResourceInput]: + """Return input resources in a common format, including legacy declarations.""" + if self.resource_inputs is not None: + return self.resource_inputs + return [ + ResourceInput(resource_id=resource_id, type=resource_type) + for resource_id, resource_type in (self.resources or {}).items() + ] + @staticmethod def load_from_declaration( declaration: TestSuiteDeclaration, diff --git a/monitoring/uss_qualifier/suites/documentation/documentation.py b/monitoring/uss_qualifier/suites/documentation/documentation.py index 7b237338a3..d82651e5fb 100644 --- a/monitoring/uss_qualifier/suites/documentation/documentation.py +++ b/monitoring/uss_qualifier/suites/documentation/documentation.py @@ -93,11 +93,35 @@ def make_test_suite_documentation( ) lines.append("") + if suite_def.description: + lines.append(suite_def.description) + lines.append("") + suite_readme_abspath = os.path.join( os.path.dirname(suite_module.__file__), "README.md" ) base_path = os.path.dirname(suite_yaml_file) suites_readme_path = os.path.relpath(suite_readme_abspath, start=base_path) + resource_inputs = suite_def.get_resource_inputs() + if resource_inputs: + lines.append(f"## [Resource inputs]({suites_readme_path}#resources)") + lines.append("") + for resource_input in resource_inputs: + resource_type = resource_input.type + optional = resource_type.endswith("?") + if optional: + resource_type = resource_type[:-1] + suffix = " (optional)" if optional else "" + lines.append(f"- `{resource_input.resource_id}`: `{resource_type}`{suffix}") + if resource_input.description: + lines.append("") + lines.extend( + " " + line if line else "" + for line in resource_input.description.splitlines() + ) + lines.append("") + lines.append("") + lines.append(f"## [Actions]({suites_readme_path}#actions)") lines.append("") i = 0 diff --git a/monitoring/uss_qualifier/suites/suite.py b/monitoring/uss_qualifier/suites/suite.py index a772150427..257525df6a 100644 --- a/monitoring/uss_qualifier/suites/suite.py +++ b/monitoring/uss_qualifier/suites/suite.py @@ -279,7 +279,9 @@ def __init__( f"Overriding local resource {local_resource_id} in test suite {declaration.suite_type} with externally-provided resource" ) - for resource_id, resource_type in self.definition.resources.items(): + for resource_input in self.definition.get_resource_inputs(): + resource_id = resource_input.resource_id + resource_type = resource_input.type is_optional = resource_type.endswith("?") if is_optional: resource_type = resource_type[:-1] From 3190d1bde0c7aeaade4fe5ae33e77c2fc3ca4433 Mon Sep 17 00:00:00 2001 From: Benjamin Pelletier Date: Sun, 18 Oct 2026 09:58:50 -0700 Subject: [PATCH 2/4] `make format` --- .../suites/astm/netrid/f3411_19.md | 18 ++++++++++ .../astm/netrid/f3411_19/dss_probing.md | 12 +++++++ .../astm/netrid/f3411_22a/dss_probing.md | 13 ++++++++ .../suites/astm/utm/dss_probing.md | 13 ++++++++ .../uss_qualifier/suites/astm/utm/f3548_21.md | 27 +++++++++++++++ .../suites/astm/utm/prod_probe.md | 10 ++++++ .../suites/astm/utm/prod_probe_suite1.md | 10 ++++++ .../suites/faa/uft/message_signing.md | 20 +++++++++++ .../suites/interuss/dss/all_tests.md | 15 +++++++++ .../suites/uspace/flight_auth.md | 24 ++++++++++++++ .../suites/uspace/geo_awareness_cis.md | 5 +++ .../suites/uspace/network_identification.md | 20 +++++++++++ .../suites/uspace/required_services.md | 33 +++++++++++++++++++ .../suites/definitions/ResourceInput.json | 31 +++++++++++++++++ .../definitions/TestSuiteDefinition.json | 27 ++++++++++++--- 15 files changed, 274 insertions(+), 4 deletions(-) create mode 100644 schemas/monitoring/uss_qualifier/suites/definitions/ResourceInput.json diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md index 68ae9ab0fe..7a01c7a5e5 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md @@ -2,6 +2,24 @@ # ASTM F3411-19 test suite [`suites.astm.netrid.f3411_19`](./f3411_19.yaml) +## [Resource inputs](../../README.md#resources) + +- `flights_data`: `resources.netrid.FlightDataResource` +- `service_providers`: `resources.netrid.NetRIDServiceProviders` +- `observers`: `resources.netrid.NetRIDObserversResource` +- `mock_uss_dp`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `mock_uss_sp`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `evaluation_configuration`: `resources.netrid.EvaluationConfigurationResource` +- `dss_instances`: `resources.astm.f3411.DSSInstancesResource` +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `service_area`: `resources.netrid.ServiceAreaResource` +- `problematically_big_area`: `resources.VolumeResource` +- `planning_area`: `resources.PlanningAreaResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) +- `uss_identification`: `resources.interuss.uss_identification.USSIdentificationResource` (optional) + ## [Actions](../../README.md#actions) 1. Scenario: [ASTM NetRID Service Provider operator notification under slow update rate](../../../scenarios/astm/netrid/v19/sp_operator_notify_slow_update.md) ([`scenarios.astm.netrid.v19.ServiceProviderNotifiesSlowUpdates`](../../../scenarios/astm/netrid/v19/sp_operator_notify_slow_update.py)) diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19/dss_probing.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19/dss_probing.md index 70787bf87f..31edc9eea5 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19/dss_probing.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19/dss_probing.md @@ -2,6 +2,18 @@ # DSS testing for ASTM NetRID F3411-19 test suite [`suites.astm.netrid.f3411_19.dss_probing`](./dss_probing.yaml) +## [Resource inputs](../../../README.md#resources) + +- `dss`: `resources.astm.f3411.DSSInstanceResource` +- `all_dss_instances`: `resources.astm.f3411.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `isa`: `resources.netrid.ServiceAreaResource` +- `problematically_big_area`: `resources.VolumeResource` +- `planning_area`: `resources.PlanningAreaResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) + ## [Actions](../../../README.md#actions) 1. Scenario: [ASTM NetRID DSS: Endpoint encryption](../../../../scenarios/astm/netrid/v19/dss/endpoint_encryption.md) ([`scenarios.astm.netrid.v19.dss.EndpointEncryption`](../../../../scenarios/astm/netrid/v19/dss/endpoint_encryption.py)) diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a/dss_probing.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a/dss_probing.md index 7c78d8b6ca..7ba2963a7b 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a/dss_probing.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a/dss_probing.md @@ -2,6 +2,19 @@ # DSS testing for ASTM NetRID F3411-22a test suite [`suites.astm.netrid.f3411_22a.dss_probing`](./dss_probing.yaml) +## [Resource inputs](../../../README.md#resources) + +- `dss`: `resources.astm.f3411.DSSInstanceResource` +- `all_dss_instances`: `resources.astm.f3411.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `isa`: `resources.netrid.ServiceAreaResource` +- `problematically_big_area`: `resources.VolumeResource` +- `planning_area`: `resources.PlanningAreaResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) +- `concurrency_behavior_adjustment`: `resources.interuss.scenarios.astm.netrid.common.dss.heavy_traffic_concurrent.HeavyTrafficConcurrentBehaviorResource` (optional) + ## [Actions](../../../README.md#actions) 1. Scenario: [ASTM NetRID DSS: Endpoint encryption](../../../../scenarios/astm/netrid/v22a/dss/endpoint_encryption.md) ([`scenarios.astm.netrid.v22a.dss.EndpointEncryption`](../../../../scenarios/astm/netrid/v22a/dss/endpoint_encryption.py)) diff --git a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md index e394ca376d..05581351a0 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md +++ b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md @@ -2,6 +2,19 @@ # DSS testing for ASTM F3548-21 test suite [`suites.astm.utm.dss_probing`](./dss_probing.yaml) +## [Resource inputs](../../README.md#resources) + +- `dss`: `resources.astm.f3548.v21.DSSInstanceResource` +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `second_utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `all_dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `flight_intents`: `resources.flight_planning.FlightIntentsResource` +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `planning_area`: `resources.PlanningAreaResource` +- `problematically_big_area`: `resources.VolumeResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) + ## [Actions](../../README.md#actions) 1. Scenario: [ASTM SCD DSS: Operational Intent Explicit Subscription handling](../../../scenarios/astm/utm/dss/oir_explicit_sub_handling.md) ([`scenarios.astm.utm.dss.OIRExplicitSubHandling`](../../../scenarios/astm/utm/dss/oir_explicit_sub_handling.py)) diff --git a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md index fddc07c0f9..8b3fa39977 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md +++ b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md @@ -2,6 +2,33 @@ # ASTM F3548-21 test suite [`suites.astm.utm.f3548_21`](./f3548_21.yaml) +## [Resource inputs](../../README.md#resources) + +- `test_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) +- `prod_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) +- `flight_planners`: `resources.flight_planning.FlightPlannersResource` +- `flight_planners_to_clear`: `resources.flight_planning.FlightPlannersResource` +- `dss`: `resources.astm.f3548.v21.DSSInstanceResource` +- `dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) +- `interuss_dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) +- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource` +- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource` (optional) +- `invalid_flight_intents`: `resources.flight_planning.FlightIntentsResource` +- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` +- `nominal_planning_selector`: `resources.flight_planning.FlightPlannerCombinationSelectorResource` (optional) +- `priority_planning_selector`: `resources.flight_planning.FlightPlannerCombinationSelectorResource` (optional) +- `utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `second_utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `mock_uss`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `planning_area_provider`: `resources.resource.ResourceProvidingResource[resources.planning_area.PlanningAreaResource]` +- `problematically_big_area`: `resources.VolumeResource` +- `system_identity`: `resources.versioning.SystemIdentityResource` (optional) +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) + ## [Actions](../../README.md#actions) 1. Scenario: [Get system versions](../../../scenarios/versioning/get_system_versions.md) ([`scenarios.versioning.GetSystemVersions`](../../../scenarios/versioning/get_system_versions.py)) diff --git a/monitoring/uss_qualifier/suites/astm/utm/prod_probe.md b/monitoring/uss_qualifier/suites/astm/utm/prod_probe.md index f7ac3ed79e..f3b4018065 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/prod_probe.md +++ b/monitoring/uss_qualifier/suites/astm/utm/prod_probe.md @@ -2,6 +2,16 @@ # Minimal production probing test suite [`suites.astm.utm.prod_probe`](./prod_probe.yaml) +## [Resource inputs](../../README.md#resources) + +- `second_utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `planning_area`: `resources.PlanningAreaResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) +- `utm_client_identity`: `resources.communications.ClientIdentityResource` + ## [Actions](../../README.md#actions) 1. Action generator: [`action_generators.astm.f3548.ForEachDSS`](../../../action_generators/astm/f3548/for_each_dss.py) diff --git a/monitoring/uss_qualifier/suites/astm/utm/prod_probe_suite1.md b/monitoring/uss_qualifier/suites/astm/utm/prod_probe_suite1.md index 7834e13cdf..1482be92c0 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/prod_probe_suite1.md +++ b/monitoring/uss_qualifier/suites/astm/utm/prod_probe_suite1.md @@ -2,6 +2,16 @@ # Minimal production probing for primary DSS instance test suite Defined in [parent suite](prod_probe.md) [`suites.astm.utm.prod_probe`](./prod_probe.yaml) +## [Resource inputs](../../README.md#resources) + +- `primary_dss_instance`: `resources.astm.f3548.v21.DSSInstanceResource` +- `second_utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `all_dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `planning_area`: `resources.PlanningAreaResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) + ## [Actions](../../README.md#actions) 1. Scenario: [ASTM SCD DSS: Constraint Reference Synchronization](../../../scenarios/astm/utm/dss/synchronization/constraint_ref_synchronization.md) ([`scenarios.astm.utm.dss.synchronization.CRSynchronization`](../../../scenarios/astm/utm/dss/synchronization/constraint_ref_synchronization.py)) diff --git a/monitoring/uss_qualifier/suites/faa/uft/message_signing.md b/monitoring/uss_qualifier/suites/faa/uft/message_signing.md index 69cc3424ff..a768a170ad 100644 --- a/monitoring/uss_qualifier/suites/faa/uft/message_signing.md +++ b/monitoring/uss_qualifier/suites/faa/uft/message_signing.md @@ -2,6 +2,26 @@ # UFT message signing test suite [`suites.faa.uft.message_signing`](./message_signing.yaml) +## [Resource inputs](../../README.md#resources) + +- `mock_uss`: `resources.interuss.mock_uss.client.MockUSSResource` +- `flight_planners`: `resources.flight_planning.FlightPlannersResource` +- `combination_selector`: `resources.flight_planning.FlightPlannerCombinationSelectorResource` +- `dss`: `resources.astm.f3548.v21.DSSInstanceResource` +- `dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) +- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` +- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource` +- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource` (optional) +- `invalid_flight_intents`: `resources.flight_planning.FlightIntentsResource` +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `second_utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `planning_area_provider`: `resources.resource.ResourceProvidingResource[resources.planning_area.PlanningAreaResource]` +- `problematically_big_area`: `resources.VolumeResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) + ## [Actions](../../README.md#actions) 1. Scenario: [Start message signing](../../../scenarios/faa/uft/message_signing_start.md) ([`scenarios.faa.uft.StartMessageSigningReport`](../../../scenarios/faa/uft/message_signing_start.py)) diff --git a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md index 053762e689..4826e2930c 100644 --- a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md +++ b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md @@ -2,6 +2,21 @@ # ASTM DSS tests test suite [`suites.interuss.dss.all_tests`](./all_tests.yaml) +## [Resource inputs](../../README.md#resources) + +- `f3411v19_dss_instances`: `resources.astm.f3411.DSSInstancesResource` (optional) +- `f3411v22a_dss_instances`: `resources.astm.f3411.DSSInstancesResource` (optional) +- `f3548v21_dss_instances`: `resources.astm.f3548.v21.dss.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `service_area`: `resources.netrid.ServiceAreaResource` (optional) +- `planning_area`: `resources.PlanningAreaResource` (optional) +- `problematically_big_area`: `resources.VolumeResource` (optional) +- `second_utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `flight_intents`: `resources.flight_planning.FlightIntentsResource` (optional) +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) + ## [Actions](../../README.md#actions) 1. Action generator: [`action_generators.astm.f3548.ForEachDSS`](../../../action_generators/astm/f3548/for_each_dss.py) diff --git a/monitoring/uss_qualifier/suites/uspace/flight_auth.md b/monitoring/uss_qualifier/suites/uspace/flight_auth.md index 5059532c32..e35436a338 100644 --- a/monitoring/uss_qualifier/suites/uspace/flight_auth.md +++ b/monitoring/uss_qualifier/suites/uspace/flight_auth.md @@ -2,6 +2,30 @@ # U-space flight authorisation test suite [`suites.uspace.flight_auth`](./flight_auth.yaml) +## [Resource inputs](../README.md#resources) + +- `test_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) +- `prod_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) +- `conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) +- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource` +- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource` (optional) +- `invalid_flight_auth_flights`: `resources.flight_planning.FlightIntentsResource` +- `invalid_flight_intents`: `resources.flight_planning.FlightIntentsResource` +- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` +- `flight_planners`: `resources.flight_planning.FlightPlannersResource` (optional) +- `mock_uss`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `dss`: `resources.astm.f3548.v21.DSSInstanceResource` +- `dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `second_utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `planning_area_provider`: `resources.resource.ResourceProvidingResource[resources.planning_area.PlanningAreaResource]` +- `problematically_big_area`: `resources.VolumeResource` +- `system_identity`: `resources.versioning.SystemIdentityResource` (optional) +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) + ## [Actions](../README.md#actions) 1. Suite: [ASTM F3548-21](../astm/utm/f3548_21.md) ([`suites.astm.utm.f3548_21`](../astm/utm/f3548_21.yaml)) diff --git a/monitoring/uss_qualifier/suites/uspace/geo_awareness_cis.md b/monitoring/uss_qualifier/suites/uspace/geo_awareness_cis.md index bed04b50b7..c0508890ce 100644 --- a/monitoring/uss_qualifier/suites/uspace/geo_awareness_cis.md +++ b/monitoring/uss_qualifier/suites/uspace/geo_awareness_cis.md @@ -2,6 +2,11 @@ # U-Space Common Information Service test suite [`suites.uspace.geo_awareness_cis`](./geo_awareness_cis.yaml) +## [Resource inputs](../README.md#resources) + +- `source_document_ed269`: `resources.eurocae.ed269.source_document.SourceDocument` +- `source_document_ed318`: `resources.eurocae.ed318.source_document.SourceDocument` + ## [Actions](../README.md#actions) 1. Scenario: [EUROCAE ED-269 UAS geographical zone model](../../scenarios/eurocae/ed269/source_data_model.md) ([`scenarios.eurocae.ed269.source_data_model.SourceDataModelValidation`](../../scenarios/eurocae/ed269/source_data_model.py)) diff --git a/monitoring/uss_qualifier/suites/uspace/network_identification.md b/monitoring/uss_qualifier/suites/uspace/network_identification.md index 1c3427f19a..7ccfeed8f6 100644 --- a/monitoring/uss_qualifier/suites/uspace/network_identification.md +++ b/monitoring/uss_qualifier/suites/uspace/network_identification.md @@ -2,6 +2,26 @@ # U-Space network identification test suite [`suites.uspace.network_identification`](./network_identification.yaml) +## [Resource inputs](../README.md#resources) + +- `test_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) +- `system_identity`: `resources.versioning.SystemIdentityResource` (optional) +- `flights_data`: `resources.netrid.FlightDataResource` +- `service_providers`: `resources.netrid.NetRIDServiceProviders` (optional) +- `observers`: `resources.netrid.NetRIDObserversResource` +- `evaluation_configuration`: `resources.netrid.EvaluationConfigurationResource` +- `dss_instances`: `resources.astm.f3411.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `service_area`: `resources.netrid.ServiceAreaResource` +- `problematically_big_area`: `resources.VolumeResource` +- `planning_area`: `resources.PlanningAreaResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) +- `mock_uss_dp`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `mock_uss_sp`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `uss_identification`: `resources.interuss.uss_identification.USSIdentificationResource` (optional) + ## [Actions](../README.md#actions) 1. Suite: [ASTM F3411-22a](../astm/netrid/f3411_22a.md) ([`suites.astm.netrid.f3411_22a`](../astm/netrid/f3411_22a.yaml)) diff --git a/monitoring/uss_qualifier/suites/uspace/required_services.md b/monitoring/uss_qualifier/suites/uspace/required_services.md index bc5f7f19f2..16c465939e 100644 --- a/monitoring/uss_qualifier/suites/uspace/required_services.md +++ b/monitoring/uss_qualifier/suites/uspace/required_services.md @@ -2,6 +2,39 @@ # U-space required services test suite [`suites.uspace.required_services`](./required_services.yaml) +## [Resource inputs](../README.md#resources) + +- `test_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) +- `prod_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) +- `conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) +- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource` +- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource` (optional) +- `invalid_flight_intents`: `resources.flight_planning.FlightIntentsResource` +- `invalid_flight_auth_flights`: `resources.flight_planning.FlightIntentsResource` +- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` +- `flight_planners`: `resources.flight_planning.FlightPlannersResource` (optional) +- `mock_uss`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `mock_uss_dp`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `mock_uss_sp`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) +- `scd_dss`: `resources.astm.f3548.v21.DSSInstanceResource` +- `scd_dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) +- `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) +- `flights_data`: `resources.netrid.FlightDataResource` +- `service_providers`: `resources.netrid.NetRIDServiceProviders` (optional) +- `observers`: `resources.netrid.NetRIDObserversResource` +- `evaluation_configuration`: `resources.netrid.EvaluationConfigurationResource` +- `netrid_dss_instances`: `resources.astm.f3411.DSSInstancesResource` (optional) +- `utm_client_identity`: `resources.communications.ClientIdentityResource` +- `utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `second_utm_auth`: `resources.communications.AuthAdapterResource` (optional) +- `id_generator`: `resources.interuss.IDGeneratorResource` +- `service_area`: `resources.netrid.ServiceAreaResource` +- `planning_area`: `resources.PlanningAreaResource` +- `planning_area_provider`: `resources.resource.ResourceProvidingResource[resources.planning_area.PlanningAreaResource]` +- `problematically_big_area`: `resources.VolumeResource` +- `test_exclusions`: `resources.dev.TestExclusionsResource` (optional) +- `uss_identification`: `resources.interuss.uss_identification.USSIdentificationResource` (optional) + ## [Actions](../README.md#actions) 1. Scenario: [Get system versions](../../scenarios/versioning/get_system_versions.md) ([`scenarios.versioning.GetSystemVersions`](../../scenarios/versioning/get_system_versions.py)) diff --git a/schemas/monitoring/uss_qualifier/suites/definitions/ResourceInput.json b/schemas/monitoring/uss_qualifier/suites/definitions/ResourceInput.json new file mode 100644 index 0000000000..1c25879b82 --- /dev/null +++ b/schemas/monitoring/uss_qualifier/suites/definitions/ResourceInput.json @@ -0,0 +1,31 @@ +{ + "$id": "https://github.com/interuss/monitoring/blob/main/schemas/monitoring/uss_qualifier/suites/definitions/ResourceInput.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "monitoring.uss_qualifier.suites.definitions.ResourceInput, as defined in monitoring/uss_qualifier/suites/definitions.py", + "properties": { + "$ref": { + "description": "Path to content that replaces the $ref", + "type": "string" + }, + "description": { + "description": "Description of the purpose/usage of this resource.", + "type": [ + "string", + "null" + ] + }, + "resource_id": { + "description": "The ID of the resource as it will be made available to actions in the test suite.", + "type": "string" + }, + "type": { + "description": "The type of this resource, optionally suffixed with '?' to indicate it is optional.", + "type": "string" + } + }, + "required": [ + "resource_id", + "type" + ], + "type": "object" +} \ No newline at end of file diff --git a/schemas/monitoring/uss_qualifier/suites/definitions/TestSuiteDefinition.json b/schemas/monitoring/uss_qualifier/suites/definitions/TestSuiteDefinition.json index 418f224424..5a445c9f6d 100644 --- a/schemas/monitoring/uss_qualifier/suites/definitions/TestSuiteDefinition.json +++ b/schemas/monitoring/uss_qualifier/suites/definitions/TestSuiteDefinition.json @@ -14,6 +14,13 @@ }, "type": "array" }, + "description": { + "description": "Description of the purpose/behavior of the test suite.", + "type": [ + "string", + "null" + ] + }, "local_resources": { "additionalProperties": { "$ref": "../../resources/definitions/ResourceDeclaration.json" @@ -44,24 +51,36 @@ "null" ] }, + "resource_inputs": { + "description": "Enumeration of the resources used by this test suite. May not be specified together with `resources`.", + "items": { + "$ref": "ResourceInput.json" + }, + "type": [ + "array", + "null" + ] + }, "resources": { "additionalProperties": { "type": "string" }, - "description": "Enumeration of the resources used by this test suite", + "description": "DEPRECATED; use resource_inputs.\n\nEnumeration of the resources used by this test suite", "properties": { "$ref": { "description": "Path to content that replaces the $ref", "type": "string" } }, - "type": "object" + "type": [ + "object", + "null" + ] } }, "required": [ "actions", - "name", - "resources" + "name" ], "type": "object" } \ No newline at end of file From be95096a1ef514d1b6dde32308de241a4965c1a4 Mon Sep 17 00:00:00 2001 From: Benjamin Pelletier Date: Thu, 22 Oct 2026 19:55:55 -0700 Subject: [PATCH 3/4] Add additional validation checks from comments --- monitoring/uss_qualifier/suites/definitions.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/monitoring/uss_qualifier/suites/definitions.py b/monitoring/uss_qualifier/suites/definitions.py index 261125aacf..f2073ef852 100644 --- a/monitoring/uss_qualifier/suites/definitions.py +++ b/monitoring/uss_qualifier/suites/definitions.py @@ -158,8 +158,25 @@ def __init__(self, previous_instance: dict | None = None, **kwargs): raise ValueError( "May not specify both resources and resource_inputs in the same TestSuiteDefinition" ) + if ( + "resources" not in supplied_fields + and "resource_inputs" not in supplied_fields + ): + raise ValueError( + "Must specify one of resources or resource_inputs in a TestSuiteDefinition" + ) super().__init__(previous_instance, **kwargs) + # Verify there are no duplicate keys + if self.resource_inputs: + keys = set() + for resource_input in self.resource_inputs: + if resource_input.resource_id in keys: + raise ValueError( + f"Only one resource_id of '{resource_input.resource_id}' may be specified in TestSuiteDefinition.resource_inputs" + ) + keys.add(resource_input.resource_id) + def get_resource_inputs(self) -> list[ResourceInput]: """Return input resources in a common format, including legacy declarations.""" if self.resource_inputs is not None: From 5af65ca78a8912bde745129204bccf4b04eeb7c1 Mon Sep 17 00:00:00 2001 From: Benjamin Pelletier Date: Thu, 22 Oct 2026 20:03:02 -0700 Subject: [PATCH 4/4] `make format` --- monitoring/uss_qualifier/suites/astm/utm/f3548_21.md | 10 ++++++---- .../uss_qualifier/suites/faa/uft/message_signing.md | 7 ++++--- monitoring/uss_qualifier/suites/uspace/flight_auth.md | 7 ++++--- .../uss_qualifier/suites/uspace/required_services.md | 7 ++++--- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md index 874ae95e56..c9567d51d8 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md +++ b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md @@ -13,17 +13,19 @@ - `interuss_dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) - `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) - `conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) -- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource` -- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource` (optional) +- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) +- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` +- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` (optional) +- `non_conflicting_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` - `invalid_flight_intents`: `resources.flight_planning.FlightIntentsResource` -- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` - `nominal_planning_selector`: `resources.flight_planning.FlightPlannerCombinationSelectorResource` (optional) - `priority_planning_selector`: `resources.flight_planning.FlightPlannerCombinationSelectorResource` (optional) - `utm_auth`: `resources.communications.AuthAdapterResource` (optional) - `second_utm_auth`: `resources.communications.AuthAdapterResource` (optional) - `utm_client_identity`: `resources.communications.ClientIdentityResource` - `mock_uss`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) -- `id_generator`: `resources.interuss.IDGeneratorResource` +- `id_generator`: `resources.interuss.id_generator.IDGeneratorResource` (optional) +- `id_generator_provider`: `resources.interuss.id_generator.IDGeneratorProviderResource` (optional) - `planning_area_provider`: `resources.resource.ResourceProvidingResource[resources.planning_area.PlanningAreaResource]` - `problematically_big_area`: `resources.VolumeResource` - `system_identity`: `resources.versioning.SystemIdentityResource` (optional) diff --git a/monitoring/uss_qualifier/suites/faa/uft/message_signing.md b/monitoring/uss_qualifier/suites/faa/uft/message_signing.md index 546e8fb5c4..ce8dad7aef 100644 --- a/monitoring/uss_qualifier/suites/faa/uft/message_signing.md +++ b/monitoring/uss_qualifier/suites/faa/uft/message_signing.md @@ -11,9 +11,10 @@ - `dss_instances`: `resources.astm.f3548.v21.DSSInstancesResource` (optional) - `dss_datastore_cluster`: `resources.interuss.datastore.DatastoreDBClusterResource` (optional) - `conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) -- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` -- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource` -- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource` (optional) +- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) +- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` +- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` (optional) +- `non_conflicting_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` - `invalid_flight_intents`: `resources.flight_planning.FlightIntentsResource` - `id_generator`: `resources.interuss.IDGeneratorResource` - `utm_client_identity`: `resources.communications.ClientIdentityResource` diff --git a/monitoring/uss_qualifier/suites/uspace/flight_auth.md b/monitoring/uss_qualifier/suites/uspace/flight_auth.md index 86223fa4c5..c205491421 100644 --- a/monitoring/uss_qualifier/suites/uspace/flight_auth.md +++ b/monitoring/uss_qualifier/suites/uspace/flight_auth.md @@ -7,11 +7,12 @@ - `test_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) - `prod_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) - `conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) -- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource` -- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource` (optional) +- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) +- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` +- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` (optional) +- `non_conflicting_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` - `invalid_flight_auth_flights`: `resources.flight_planning.FlightIntentsResource` - `invalid_flight_intents`: `resources.flight_planning.FlightIntentsResource` -- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` - `flight_planners`: `resources.flight_planning.FlightPlannersResource` (optional) - `mock_uss`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) - `dss`: `resources.astm.f3548.v21.DSSInstanceResource` diff --git a/monitoring/uss_qualifier/suites/uspace/required_services.md b/monitoring/uss_qualifier/suites/uspace/required_services.md index c1b769625b..4078e5191d 100644 --- a/monitoring/uss_qualifier/suites/uspace/required_services.md +++ b/monitoring/uss_qualifier/suites/uspace/required_services.md @@ -7,11 +7,12 @@ - `test_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) - `prod_env_version_providers`: `resources.versioning.VersionProvidersResource` (optional) - `conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) -- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource` -- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource` (optional) +- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` (optional) +- `conflicting_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` +- `priority_preemption_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` (optional) +- `non_conflicting_flights_provider`: `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` - `invalid_flight_intents`: `resources.flight_planning.FlightIntentsResource` - `invalid_flight_auth_flights`: `resources.flight_planning.FlightIntentsResource` -- `non_conflicting_flights`: `resources.flight_planning.FlightIntentsResource` - `flight_planners`: `resources.flight_planning.FlightPlannersResource` (optional) - `mock_uss`: `resources.interuss.mock_uss.client.MockUSSResource` (optional) - `mock_uss_dp`: `resources.interuss.mock_uss.client.MockUSSResource` (optional)