From 64acb592fe35738a7794452f4231bf65c4fa8a58 Mon Sep 17 00:00:00 2001 From: Patrick Ogenstad Date: Thu, 27 Aug 2026 12:01:25 +0200 Subject: [PATCH 1/2] fix(protocols): order generated protocols by class name [IFC-3054] The models were sorted on the schema name without its namespace, so BuiltinIPPrefix sorted under IPPrefix, and two kinds sharing a name were left in whatever order the caller supplied them. The rendered module is committed and validated by regenerating it and diffing, so an ordering that depends on the input order can turn into a build that fails intermittently once such a pair exists. Sort on the kind instead, which is the name each class renders as. Case is ignored so the file still reads alphabetically, with the kind itself breaking ties, since a case-insensitive key on its own would compare InfraDevice and INfraDEvice equal and reintroduce the same problem. This also keeps the order the protocols module shipped with before it moved to this generator. --- .../+protocols-sort-by-class-name.changed.md | 1 + infrahub_sdk/protocols_generator/generator.py | 5 +- .../protocols_generator/user_schema_async.txt | 104 +++++++++--------- .../protocols_generator/user_schema_sync.txt | 104 +++++++++--------- tests/unit/sdk/test_protocols_generator.py | 54 +++++++++ 5 files changed, 163 insertions(+), 105 deletions(-) create mode 100644 changelog/+protocols-sort-by-class-name.changed.md diff --git a/changelog/+protocols-sort-by-class-name.changed.md b/changelog/+protocols-sort-by-class-name.changed.md new file mode 100644 index 00000000..83509044 --- /dev/null +++ b/changelog/+protocols-sort-by-class-name.changed.md @@ -0,0 +1 @@ +Generated protocols are now ordered by the class name they render rather than by the schema name without its namespace, so `BuiltinIPPrefix` no longer sorts under `IPPrefix`. Regenerating with `infrahubctl protocols` reorders the classes in your file and changes nothing else. The ordering is also total now. Kinds that the old key compared equal, two sharing a name and differing only in namespace, or two whose names differ only in case, previously fell back to whatever order the schema was supplied in, which could make the same schema render differently from one run to the next. diff --git a/infrahub_sdk/protocols_generator/generator.py b/infrahub_sdk/protocols_generator/generator.py index 6b5ed4cc..ee35cb72 100644 --- a/infrahub_sdk/protocols_generator/generator.py +++ b/infrahub_sdk/protocols_generator/generator.py @@ -220,4 +220,7 @@ def _sort_and_filter_models( continue filtered.append(model) - return sorted(filtered, key=lambda k: k.name) + # Sorted on the kind, which is the name each class renders as. Case is ignored so the file + # reads in alphabetical order, with the kind itself breaking ties: a key that can compare + # two kinds equal would leave them ordered by however the caller supplied them. + return sorted(filtered, key=lambda k: (k.kind.lower(), k.kind)) diff --git a/tests/fixtures/protocols_generator/user_schema_async.txt b/tests/fixtures/protocols_generator/user_schema_async.txt index 194c08dc..1db0ae90 100644 --- a/tests/fixtures/protocols_generator/user_schema_async.txt +++ b/tests/fixtures/protocols_generator/user_schema_async.txt @@ -66,20 +66,6 @@ class NetworkManagementServer(CoreNode): -class LocationCountry(LocationGeneric): - description: StringOptional - name: String - shortname: String - timezone: StringOptional - children: RelationshipManager[LocationSite] - member_of_groups: RelationshipManager[CoreGroup] - parent: RelationshipAttribute[LocationGeneric] - profiles: RelationshipManager[CoreProfile] - servers: RelationshipManager[NetworkManagementServer] - subscriber_of_groups: RelationshipManager[CoreGroup] - tags: RelationshipManager[BuiltinTag] - - class InfraDevice(CoreNode): description: StringOptional name: String @@ -94,18 +80,6 @@ class InfraDevice(CoreNode): subscriber_of_groups: RelationshipManager[CoreGroup] -class NetworkDhcpServer(NetworkManagementServer): - description: StringOptional - lease_time: String - name: String - status: Dropdown - ip_addresses: RelationshipManager[IpamIPAddress] - location: RelationshipAttribute[LocationGeneric] - member_of_groups: RelationshipManager[CoreGroup] - profiles: RelationshipManager[CoreProfile] - subscriber_of_groups: RelationshipManager[CoreGroup] - - class IpamIPAddress(BuiltinIPAddress): address: IPHost description: StringOptional @@ -117,28 +91,6 @@ class IpamIPAddress(BuiltinIPAddress): subscriber_of_groups: RelationshipManager[CoreGroup] -class NetworkNTPServer(NetworkManagementServer): - description: StringOptional - name: String - status: Dropdown - ip_addresses: RelationshipManager[IpamIPAddress] - location: RelationshipAttribute[LocationGeneric] - member_of_groups: RelationshipManager[CoreGroup] - profiles: RelationshipManager[CoreProfile] - subscriber_of_groups: RelationshipManager[CoreGroup] - - -class NetworkNameServer(NetworkManagementServer): - description: StringOptional - name: String - status: Dropdown - ip_addresses: RelationshipManager[IpamIPAddress] - location: RelationshipAttribute[LocationGeneric] - member_of_groups: RelationshipManager[CoreGroup] - profiles: RelationshipManager[CoreProfile] - subscriber_of_groups: RelationshipManager[CoreGroup] - - class IpamPrefix(BuiltinIPPrefix): broadcast_address: StringOptional description: StringOptional @@ -162,6 +114,20 @@ class IpamPrefix(BuiltinIPPrefix): subscriber_of_groups: RelationshipManager[CoreGroup] +class LocationCountry(LocationGeneric): + description: StringOptional + name: String + shortname: String + timezone: StringOptional + children: RelationshipManager[LocationSite] + member_of_groups: RelationshipManager[CoreGroup] + parent: RelationshipAttribute[LocationGeneric] + profiles: RelationshipManager[CoreProfile] + servers: RelationshipManager[NetworkManagementServer] + subscriber_of_groups: RelationshipManager[CoreGroup] + tags: RelationshipManager[BuiltinTag] + + class LocationRack(LocationGeneric): description: StringOptional facility_id: StringOptional @@ -192,6 +158,40 @@ class LocationSite(LocationGeneric): tags: RelationshipManager[BuiltinTag] +class NetworkDhcpServer(NetworkManagementServer): + description: StringOptional + lease_time: String + name: String + status: Dropdown + ip_addresses: RelationshipManager[IpamIPAddress] + location: RelationshipAttribute[LocationGeneric] + member_of_groups: RelationshipManager[CoreGroup] + profiles: RelationshipManager[CoreProfile] + subscriber_of_groups: RelationshipManager[CoreGroup] + + +class NetworkNameServer(NetworkManagementServer): + description: StringOptional + name: String + status: Dropdown + ip_addresses: RelationshipManager[IpamIPAddress] + location: RelationshipAttribute[LocationGeneric] + member_of_groups: RelationshipManager[CoreGroup] + profiles: RelationshipManager[CoreProfile] + subscriber_of_groups: RelationshipManager[CoreGroup] + + +class NetworkNTPServer(NetworkManagementServer): + description: StringOptional + name: String + status: Dropdown + ip_addresses: RelationshipManager[IpamIPAddress] + location: RelationshipAttribute[LocationGeneric] + member_of_groups: RelationshipManager[CoreGroup] + profiles: RelationshipManager[CoreProfile] + subscriber_of_groups: RelationshipManager[CoreGroup] + + class ProfileBuiltinIPAddress(LineageSource, CoreProfile, CoreNode): @@ -324,21 +324,21 @@ class ProfileNetworkManagementServer(LineageSource, CoreProfile, CoreNode): subscriber_of_groups: RelationshipManager[CoreGroup] -class ProfileNetworkNTPServer(LineageSource, CoreProfile, CoreNode): +class ProfileNetworkNameServer(LineageSource, CoreProfile, CoreNode): description: StringOptional profile_name: String profile_priority: Integer member_of_groups: RelationshipManager[CoreGroup] - related_nodes: RelationshipManager[NetworkNTPServer] + related_nodes: RelationshipManager[NetworkNameServer] subscriber_of_groups: RelationshipManager[CoreGroup] -class ProfileNetworkNameServer(LineageSource, CoreProfile, CoreNode): +class ProfileNetworkNTPServer(LineageSource, CoreProfile, CoreNode): description: StringOptional profile_name: String profile_priority: Integer member_of_groups: RelationshipManager[CoreGroup] - related_nodes: RelationshipManager[NetworkNameServer] + related_nodes: RelationshipManager[NetworkNTPServer] subscriber_of_groups: RelationshipManager[CoreGroup] diff --git a/tests/fixtures/protocols_generator/user_schema_sync.txt b/tests/fixtures/protocols_generator/user_schema_sync.txt index 46c274f0..57fff057 100644 --- a/tests/fixtures/protocols_generator/user_schema_sync.txt +++ b/tests/fixtures/protocols_generator/user_schema_sync.txt @@ -66,20 +66,6 @@ class NetworkManagementServer(CoreNodeSync): -class LocationCountry(LocationGeneric): - description: StringOptional - name: String - shortname: String - timezone: StringOptional - children: RelationshipManagerSync[LocationSite] - member_of_groups: RelationshipManagerSync[CoreGroupSync] - parent: RelationshipAttributeSync[LocationGeneric] - profiles: RelationshipManagerSync[CoreProfileSync] - servers: RelationshipManagerSync[NetworkManagementServer] - subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] - tags: RelationshipManagerSync[BuiltinTagSync] - - class InfraDevice(CoreNodeSync): description: StringOptional name: String @@ -94,18 +80,6 @@ class InfraDevice(CoreNodeSync): subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] -class NetworkDhcpServer(NetworkManagementServer): - description: StringOptional - lease_time: String - name: String - status: Dropdown - ip_addresses: RelationshipManagerSync[IpamIPAddress] - location: RelationshipAttributeSync[LocationGeneric] - member_of_groups: RelationshipManagerSync[CoreGroupSync] - profiles: RelationshipManagerSync[CoreProfileSync] - subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] - - class IpamIPAddress(BuiltinIPAddress): address: IPHost description: StringOptional @@ -117,28 +91,6 @@ class IpamIPAddress(BuiltinIPAddress): subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] -class NetworkNTPServer(NetworkManagementServer): - description: StringOptional - name: String - status: Dropdown - ip_addresses: RelationshipManagerSync[IpamIPAddress] - location: RelationshipAttributeSync[LocationGeneric] - member_of_groups: RelationshipManagerSync[CoreGroupSync] - profiles: RelationshipManagerSync[CoreProfileSync] - subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] - - -class NetworkNameServer(NetworkManagementServer): - description: StringOptional - name: String - status: Dropdown - ip_addresses: RelationshipManagerSync[IpamIPAddress] - location: RelationshipAttributeSync[LocationGeneric] - member_of_groups: RelationshipManagerSync[CoreGroupSync] - profiles: RelationshipManagerSync[CoreProfileSync] - subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] - - class IpamPrefix(BuiltinIPPrefix): broadcast_address: StringOptional description: StringOptional @@ -162,6 +114,20 @@ class IpamPrefix(BuiltinIPPrefix): subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] +class LocationCountry(LocationGeneric): + description: StringOptional + name: String + shortname: String + timezone: StringOptional + children: RelationshipManagerSync[LocationSite] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + parent: RelationshipAttributeSync[LocationGeneric] + profiles: RelationshipManagerSync[CoreProfileSync] + servers: RelationshipManagerSync[NetworkManagementServer] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + tags: RelationshipManagerSync[BuiltinTagSync] + + class LocationRack(LocationGeneric): description: StringOptional facility_id: StringOptional @@ -192,6 +158,40 @@ class LocationSite(LocationGeneric): tags: RelationshipManagerSync[BuiltinTagSync] +class NetworkDhcpServer(NetworkManagementServer): + description: StringOptional + lease_time: String + name: String + status: Dropdown + ip_addresses: RelationshipManagerSync[IpamIPAddress] + location: RelationshipAttributeSync[LocationGeneric] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + profiles: RelationshipManagerSync[CoreProfileSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + + +class NetworkNameServer(NetworkManagementServer): + description: StringOptional + name: String + status: Dropdown + ip_addresses: RelationshipManagerSync[IpamIPAddress] + location: RelationshipAttributeSync[LocationGeneric] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + profiles: RelationshipManagerSync[CoreProfileSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + + +class NetworkNTPServer(NetworkManagementServer): + description: StringOptional + name: String + status: Dropdown + ip_addresses: RelationshipManagerSync[IpamIPAddress] + location: RelationshipAttributeSync[LocationGeneric] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + profiles: RelationshipManagerSync[CoreProfileSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + + class ProfileBuiltinIPAddress(LineageSource, CoreProfileSync, CoreNodeSync): @@ -324,21 +324,21 @@ class ProfileNetworkManagementServer(LineageSource, CoreProfileSync, CoreNodeSyn subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] -class ProfileNetworkNTPServer(LineageSource, CoreProfileSync, CoreNodeSync): +class ProfileNetworkNameServer(LineageSource, CoreProfileSync, CoreNodeSync): description: StringOptional profile_name: String profile_priority: Integer member_of_groups: RelationshipManagerSync[CoreGroupSync] - related_nodes: RelationshipManagerSync[NetworkNTPServer] + related_nodes: RelationshipManagerSync[NetworkNameServer] subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] -class ProfileNetworkNameServer(LineageSource, CoreProfileSync, CoreNodeSync): +class ProfileNetworkNTPServer(LineageSource, CoreProfileSync, CoreNodeSync): description: StringOptional profile_name: String profile_priority: Integer member_of_groups: RelationshipManagerSync[CoreGroupSync] - related_nodes: RelationshipManagerSync[NetworkNameServer] + related_nodes: RelationshipManagerSync[NetworkNTPServer] subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] diff --git a/tests/unit/sdk/test_protocols_generator.py b/tests/unit/sdk/test_protocols_generator.py index 524e4b6c..0e569812 100644 --- a/tests/unit/sdk/test_protocols_generator.py +++ b/tests/unit/sdk/test_protocols_generator.py @@ -96,6 +96,39 @@ class HierarchyTestCase: ] +@dataclass +class OrderTestCase: + name: str + first_namespace: str + first_name: str + second_namespace: str + second_name: str + expected_first: str + expected_second: str + + +ORDER_TEST_CASES = [ + OrderTestCase( + name="same-name-different-namespace", + first_namespace="Location", + first_name="Site", + second_namespace="Network", + second_name="Site", + expected_first="LocationSite", + expected_second="NetworkSite", + ), + OrderTestCase( + name="names-differing-only-in-case", + first_namespace="Infra", + first_name="DEvice", + second_namespace="Infra", + second_name="Device", + expected_first="InfraDEvice", + expected_second="InfraDevice", + ), +] + + @dataclass class GoldenTestCase: name: str @@ -218,6 +251,27 @@ async def test_hierarchy_members_are_declared_once(test_case: HierarchyTestCase) assert body.count("children:") == 1 +@pytest.mark.parametrize( + "test_case", + [pytest.param(tc, id=tc.name) for tc in ORDER_TEST_CASES], +) +async def test_render_order_does_not_depend_on_input_order(test_case: OrderTestCase) -> None: + """Kinds a sort key could compare equal render in the same order however they are supplied. + + The rendered file is committed and validated by regenerating it and diffing, so an ordering + that depends on how the schema was handed over turns into a build that fails intermittently. + Ordering on the kind is total, because that is the name the class renders as. + """ + first = GenericSchemaAPI(name=test_case.first_name, namespace=test_case.first_namespace) + second = GenericSchemaAPI(name=test_case.second_name, namespace=test_case.second_namespace) + + forwards = CodeGenerator(schema={first.kind: first, second.kind: second}).render(sync=False) + backwards = CodeGenerator(schema={second.kind: second, first.kind: first}).render(sync=False) + + assert forwards == backwards + assert forwards.index(f"class {test_case.expected_first}(") < forwards.index(f"class {test_case.expected_second}(") + + async def test_render_sdk_core_emits_both_variants(client: InfrahubClient, mock_schema_query_05: "HTTPXMock") -> None: """Generating infrahub_sdk.protocols itself puts both variants in one module. From fe31f2a1e9536a89282df754c890c280f6f184bf Mon Sep 17 00:00:00 2001 From: Patrick Ogenstad Date: Thu, 27 Aug 2026 09:53:14 +0200 Subject: [PATCH 2/2] feat(protocols): regenerate protocols with peer-typed relationships [IFC-3054] Regenerated by "invoke backend.generate", which now renders this module through the SDK's own code generator instead of a separate template kept in the Infrahub repository. That template had drifted: it emitted bare RelatedNode and RelationshipManager, dropping the peer type of every relationship. Every relationship now carries its peer, cardinality-one relationships use the assignable RelationshipAttribute descriptor, and the module gains the relationships the API exposes implicitly along with four Profile kinds it was missing. Attributes follow their schema kind and are no longer optional when they always hold a value. CoreGenericAccount.tokens and .external_identities are gone. Their peers are internal, so /api/schema never exposed them and nothing consumes them. The golden fixtures move because the four Profile kinds are now importable from this module, so protocols generated for a user schema import them instead of redefining them. --- changelog/+protocols-peer-types.changed.md | 1 + infrahub_sdk/protocols.py | 1865 +++++++++++++---- .../protocols_generator/user_schema_async.txt | 40 +- .../protocols_generator/user_schema_sync.txt | 40 +- 4 files changed, 1444 insertions(+), 502 deletions(-) create mode 100644 changelog/+protocols-peer-types.changed.md diff --git a/changelog/+protocols-peer-types.changed.md b/changelog/+protocols-peer-types.changed.md new file mode 100644 index 00000000..7446551d --- /dev/null +++ b/changelog/+protocols-peer-types.changed.md @@ -0,0 +1 @@ +The protocols shipped in `infrahub_sdk.protocols` now carry the peer type of every relationship, so `node.rel.peer` and `node.many_rel.peers[0].peer` resolve to the peer's protocol instead of a bare `InfrahubNode`, and a cardinality-one relationship can be assigned an id, an HFID, a peer node or `None`. They are generated by the same renderer as `infrahubctl protocols` rather than by a separate template, which also adds the relationships the API exposes implicitly (`member_of_groups`, `subscriber_of_groups`, `profiles`) and the `ProfileBuiltinIPAddress`, `ProfileBuiltinIPPrefix`, `ProfileBuiltinTag` and `ProfileIpamNamespace` kinds. Attributes that always hold a value are no longer typed as optional, and each attribute now follows its schema kind, so `CoreGlobalPermission.decision` and `CoreObjectPermission.decision` are `Integer` rather than `Enum`. Two relationships that the API never exposed, `CoreGenericAccount.tokens` and `CoreGenericAccount.external_identities`, are gone. Protocols generated for your own schema now import the four `Profile*` kinds above instead of redefining them. diff --git a/infrahub_sdk/protocols.py b/infrahub_sdk/protocols.py index 81558dfb..974a8f22 100644 --- a/infrahub_sdk/protocols.py +++ b/infrahub_sdk/protocols.py @@ -7,7 +7,12 @@ from .protocols_base import CoreNode, CoreNodeSync if TYPE_CHECKING: - from infrahub_sdk.node import RelatedNode, RelatedNodeSync, RelationshipManager, RelationshipManagerSync + from infrahub_sdk.node import ( + RelationshipAttribute, + RelationshipAttributeSync, + RelationshipManager, + RelationshipManagerSync, + ) from .protocols_base import ( URL, @@ -16,12 +21,14 @@ DateTime, DateTimeOptional, Dropdown, - Enum, + DropdownOptional, HashedPassword, Integer, IntegerOptional, IPHost, + IPHostOptional, IPNetwork, + IPNetworkOptional, JSONAttribute, JSONAttributeOptional, ListAttributeOptional, @@ -30,234 +37,282 @@ ) -# --------------------------------------------- -# ASYNC -# --------------------------------------------- - - class BuiltinIPAddress(CoreNode): address: IPHost description: StringOptional - ip_namespace: RelatedNode - ip_prefix: RelatedNode + ip_namespace: RelationshipAttribute[BuiltinIPNamespace] + ip_prefix: RelationshipAttribute[BuiltinIPPrefix] + member_of_groups: RelationshipManager[CoreGroup] + profiles: RelationshipManager[CoreProfile] + subscriber_of_groups: RelationshipManager[CoreGroup] class BuiltinIPNamespace(CoreNode): - name: String description: StringOptional - ip_prefixes: RelationshipManager - ip_addresses: RelationshipManager + name: String + ip_addresses: RelationshipManager[BuiltinIPAddress] + ip_prefixes: RelationshipManager[BuiltinIPPrefix] + member_of_groups: RelationshipManager[CoreGroup] + profiles: RelationshipManager[CoreProfile] + subscriber_of_groups: RelationshipManager[CoreGroup] class BuiltinIPPrefix(CoreNode): - prefix: IPNetwork + broadcast_address: StringOptional description: StringOptional - member_type: Dropdown + hostmask: StringOptional is_pool: Boolean is_top_level: BooleanOptional - utilization: IntegerOptional + member_type: Dropdown netmask: StringOptional - hostmask: StringOptional network_address: StringOptional - broadcast_address: StringOptional - ip_namespace: RelatedNode - ip_addresses: RelationshipManager - resource_pool: RelationshipManager - parent: RelatedNode - children: RelationshipManager + prefix: IPNetwork + utilization: IntegerOptional + children: RelationshipManager[BuiltinIPPrefix] + ip_addresses: RelationshipManager[BuiltinIPAddress] + ip_namespace: RelationshipAttribute[BuiltinIPNamespace] + member_of_groups: RelationshipManager[CoreGroup] + parent: RelationshipAttribute[BuiltinIPPrefix] + profiles: RelationshipManager[CoreProfile] + resource_pool: RelationshipManager[CoreIPPool] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreAction(CoreNode): - name: String description: StringOptional - triggers: RelationshipManager + name: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + triggers: RelationshipManager[CoreTriggerRule] class CoreArtifactTarget(CoreNode): - artifacts: RelationshipManager + artifacts: RelationshipManager[CoreArtifact] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreBasePermission(CoreNode): description: StringOptional identifier: StringOptional - roles: RelationshipManager + member_of_groups: RelationshipManager[CoreGroup] + roles: RelationshipManager[CoreAccountRole] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreCheck(CoreNode): - name: StringOptional - label: StringOptional - origin: String + conclusion: String + created_at: DateTimeOptional kind: String + label: StringOptional message: StringOptional - conclusion: Enum - severity: Enum - created_at: DateTimeOptional - validator: RelatedNode + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + validator: RelationshipAttribute[CoreValidator] class CoreComment(CoreNode): text: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreCredential(CoreNode): - name: String - label: StringOptional description: StringOptional + label: StringOptional + name: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreFileObject(CoreNode): - file_name: String checksum: String + file_name: String file_size: Integer file_type: String storage_id: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreGenericAccount(CoreNode): + account_type: String + description: StringOptional + label: StringOptional name: String password: HashedPassword - label: StringOptional - description: StringOptional - account_type: Enum status: Dropdown - tokens: RelationshipManager - external_identities: RelationshipManager + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreGenericRepository(CoreNode): - name: String + commit: StringOptional description: StringOptional - location: String internal_status: Dropdown + location: String + name: String operational_status: Dropdown - commit: StringOptional sync_status: Dropdown - credential: RelatedNode - tags: RelationshipManager - transformations: RelationshipManager - queries: RelationshipManager - checks: RelationshipManager - generators: RelationshipManager - groups_objects: RelationshipManager + checks: RelationshipManager[CoreCheckDefinition] + credential: RelationshipAttribute[CoreCredential] + generators: RelationshipManager[CoreGeneratorDefinition] + groups_objects: RelationshipManager[CoreRepositoryGroup] + member_of_groups: RelationshipManager[CoreGroup] + queries: RelationshipManager[CoreGraphQLQuery] + subscriber_of_groups: RelationshipManager[CoreGroup] + tags: RelationshipManager[BuiltinTag] + transformations: RelationshipManager[CoreTransformation] class CoreGroup(CoreNode): - name: String - label: StringOptional description: StringOptional - group_type: Enum - members: RelationshipManager - subscribers: RelationshipManager - parent: RelatedNode - children: RelationshipManager + group_type: String + label: StringOptional + name: String + children: RelationshipManager[CoreGroup] + members: RelationshipManager[CoreNode] + parent: RelationshipAttribute[CoreGroup] + subscribers: RelationshipManager[CoreNode] class CoreIPPool(CoreNode): - pass + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreKeyValue(CoreNode): - name: String - key: String description: StringOptional + key: String + name: String value: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreMenu(CoreNode): - namespace: String - name: String - label: StringOptional - kind: StringOptional - path: StringOptional description: StringOptional icon: StringOptional - protected: Boolean + kind: StringOptional + label: StringOptional + name: String + namespace: String order_weight: Integer + path: StringOptional + protected: Boolean required_permissions: ListAttributeOptional - section: Enum - parent: RelatedNode - children: RelationshipManager + section: String + children: RelationshipManager[CoreMenu] + member_of_groups: RelationshipManager[CoreGroup] + parent: RelationshipAttribute[CoreMenu] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreNodeTriggerMatch(CoreNode): - trigger: RelatedNode + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + trigger: RelationshipAttribute[CoreNodeTriggerRule] class CoreObjectComponentTemplate(CoreNode): template_name: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreObjectTemplate(CoreNode): template_name: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreProfile(CoreNode): profile_name: String - profile_priority: IntegerOptional + profile_priority: Integer + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreResourcePool(CoreNode): - name: String description: StringOptional + name: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreTaskTarget(CoreNode): - pass + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreThread(CoreNode): label: StringOptional resolved: Boolean - change: RelatedNode - comments: RelationshipManager + change: RelationshipAttribute[CoreProposedChange] + comments: RelationshipManager[CoreThreadComment] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreTransformation(CoreNode): - name: String - label: StringOptional - description: StringOptional - timeout: Integer - fingerprint: StringOptional dependencies: ListAttributeOptional dependencies_complete: BooleanOptional - query: RelatedNode - repository: RelatedNode - tags: RelationshipManager - artifact_definitions: RelationshipManager + description: StringOptional + fingerprint: StringOptional + label: StringOptional + name: String + timeout: Integer + artifact_definitions: RelationshipManager[CoreArtifactDefinition] + member_of_groups: RelationshipManager[CoreGroup] + query: RelationshipAttribute[CoreGraphQLQuery] + repository: RelationshipAttribute[CoreGenericRepository] + subscriber_of_groups: RelationshipManager[CoreGroup] + tags: RelationshipManager[BuiltinTag] class CoreTriggerRule(CoreNode): - name: String - description: StringOptional active: Boolean branch_scope: Dropdown - action: RelatedNode + description: StringOptional + name: String + action: RelationshipAttribute[CoreAction] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreValidator(CoreNode): - label: StringOptional - state: Enum - conclusion: Enum completed_at: DateTimeOptional + conclusion: String + label: StringOptional started_at: DateTimeOptional - proposed_change: RelatedNode - checks: RelationshipManager + state: String + checks: RelationshipManager[CoreCheck] + member_of_groups: RelationshipManager[CoreGroup] + proposed_change: RelationshipAttribute[CoreProposedChange] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreWebhook(CoreNode): - name: String - event_type: Enum active: Boolean branch_scope: Dropdown - node_kind: StringOptional description: StringOptional + event_type: String + name: String + node_kind: StringOptional url: URL validate_certificates: BooleanOptional - headers: RelationshipManager + headers: RelationshipManager[CoreKeyValue] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreWeightedPoolResource(CoreNode): allocation_weight: IntegerOptional + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class LineageOwner(CoreNode): @@ -269,601 +324,1106 @@ class LineageSource(CoreNode): class BuiltinTag(CoreNode): - name: String description: StringOptional + name: String + member_of_groups: RelationshipManager[CoreGroup] + profiles: RelationshipManager[CoreProfile] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreAccount(LineageOwner, LineageSource, CoreGenericAccount): - pass + account_type: String + description: StringOptional + label: StringOptional + name: String + password: HashedPassword + status: Dropdown + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreAccountGroup(LineageOwner, LineageSource, CoreGroup): + description: StringOptional + group_type: String + label: StringOptional + name: String origin: StringOptional - roles: RelationshipManager + children: RelationshipManager[CoreGroup] + members: RelationshipManager[CoreNode] + parent: RelationshipAttribute[CoreGroup] + roles: RelationshipManager[CoreAccountRole] + subscribers: RelationshipManager[CoreNode] class CoreAccountRole(CoreNode): name: String - groups: RelationshipManager - permissions: RelationshipManager + groups: RelationshipManager[CoreAccountGroup] + member_of_groups: RelationshipManager[CoreGroup] + permissions: RelationshipManager[CoreBasePermission] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreArtifact(CoreTaskTarget): - name: String - status: Enum - content_type: Enum checksum: StringOptional - storage_id: StringOptional + content_type: String + name: String parameters: JSONAttributeOptional - object: RelatedNode - definition: RelatedNode + status: String + storage_id: StringOptional + definition: RelationshipAttribute[CoreArtifactDefinition] + member_of_groups: RelationshipManager[CoreGroup] + object: RelationshipAttribute[CoreArtifactTarget] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreArtifactCheck(CoreCheck): + artifact_id: StringOptional changed: BooleanOptional checksum: StringOptional - artifact_id: StringOptional - storage_id: StringOptional + conclusion: String + created_at: DateTimeOptional + kind: String + label: StringOptional line_number: IntegerOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + storage_id: StringOptional + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + validator: RelationshipAttribute[CoreValidator] class CoreArtifactDefinition(CoreTaskTarget): - name: String artifact_name: String + content_type: String description: StringOptional - parameters: JSONAttribute - content_type: Enum fingerprint: StringOptional - targets: RelatedNode - transformation: RelatedNode - artifacts: RelationshipManager - validators: RelationshipManager + name: String + parameters: JSONAttribute + artifacts: RelationshipManager[CoreArtifact] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + targets: RelationshipAttribute[CoreGroup] + transformation: RelationshipAttribute[CoreTransformation] + validators: RelationshipManager[CoreArtifactValidator] class CoreArtifactThread(CoreThread): artifact_id: StringOptional - storage_id: StringOptional + label: StringOptional line_number: IntegerOptional + resolved: Boolean + storage_id: StringOptional + change: RelationshipAttribute[CoreProposedChange] + comments: RelationshipManager[CoreThreadComment] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreArtifactValidator(CoreValidator): - definition: RelatedNode + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManager[CoreCheck] + definition: RelationshipAttribute[CoreArtifactDefinition] + member_of_groups: RelationshipManager[CoreGroup] + proposed_change: RelationshipAttribute[CoreProposedChange] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreChangeComment(CoreComment): - change: RelatedNode + text: String + change: RelationshipAttribute[CoreProposedChange] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreChangeThread(CoreThread): - pass + label: StringOptional + resolved: Boolean + change: RelationshipAttribute[CoreProposedChange] + comments: RelationshipManager[CoreThreadComment] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreCheckDefinition(CoreTaskTarget): - name: String + class_name: String description: StringOptional file_path: String - class_name: String - timeout: Integer + name: String parameters: JSONAttributeOptional - repository: RelatedNode - query: RelatedNode - targets: RelatedNode - tags: RelationshipManager - validators: RelationshipManager + timeout: Integer + member_of_groups: RelationshipManager[CoreGroup] + query: RelationshipAttribute[CoreGraphQLQuery] + repository: RelationshipAttribute[CoreGenericRepository] + subscriber_of_groups: RelationshipManager[CoreGroup] + tags: RelationshipManager[BuiltinTag] + targets: RelationshipAttribute[CoreGroup] + validators: RelationshipManager[CoreUserValidator] class CoreCustomWebhook(CoreWebhook, CoreTaskTarget): + active: Boolean + branch_scope: Dropdown + description: StringOptional + event_type: String + name: String + node_kind: StringOptional shared_key: StringOptional - transformation: RelatedNode + url: URL + validate_certificates: BooleanOptional + headers: RelationshipManager[CoreKeyValue] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + transformation: RelationshipAttribute[CoreTransformPython] class CoreDataCheck(CoreCheck): + conclusion: String conflicts: JSONAttribute - keep_branch: Enum + created_at: DateTimeOptional enriched_conflict_id: StringOptional + keep_branch: StringOptional + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + validator: RelationshipAttribute[CoreValidator] class CoreDataValidator(CoreValidator): - pass + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManager[CoreCheck] + member_of_groups: RelationshipManager[CoreGroup] + proposed_change: RelationshipAttribute[CoreProposedChange] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreEnvKeyValue(CoreKeyValue): - pass + description: StringOptional + key: String + name: String + value: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreFileCheck(CoreCheck): - files: ListAttributeOptional commit: StringOptional + conclusion: String + created_at: DateTimeOptional + files: ListAttributeOptional + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + validator: RelationshipAttribute[CoreValidator] class CoreFileThread(CoreThread): - file: StringOptional commit: StringOptional + file: StringOptional + label: StringOptional line_number: IntegerOptional - repository: RelatedNode + resolved: Boolean + change: RelationshipAttribute[CoreProposedChange] + comments: RelationshipManager[CoreThreadComment] + member_of_groups: RelationshipManager[CoreGroup] + repository: RelationshipAttribute[CoreRepository] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreGeneratorAction(CoreAction): - generator: RelatedNode + description: StringOptional + name: String + generator: RelationshipAttribute[CoreGeneratorDefinition] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + triggers: RelationshipManager[CoreTriggerRule] class CoreGeneratorAwareGroup(CoreGroup): - pass + description: StringOptional + group_type: String + label: StringOptional + name: String + children: RelationshipManager[CoreGroup] + members: RelationshipManager[CoreNode] + parent: RelationshipAttribute[CoreGroup] + subscribers: RelationshipManager[CoreNode] class CoreGeneratorCheck(CoreCheck): + conclusion: String + created_at: DateTimeOptional instance: String + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + validator: RelationshipAttribute[CoreValidator] class CoreGeneratorDefinition(CoreTaskTarget): - name: String - description: StringOptional - parameters: JSONAttribute - file_path: String class_name: String - convert_query_response: BooleanOptional - execute_in_proposed_change: BooleanOptional - execute_after_merge: BooleanOptional - fingerprint: StringOptional + convert_query_response: Boolean dependencies: ListAttributeOptional dependencies_complete: BooleanOptional - query: RelatedNode - repository: RelatedNode - targets: RelatedNode - instances: RelationshipManager - validators: RelationshipManager + description: StringOptional + execute_after_merge: Boolean + execute_in_proposed_change: Boolean + file_path: String + fingerprint: StringOptional + name: String + parameters: JSONAttribute + instances: RelationshipManager[CoreGeneratorInstance] + member_of_groups: RelationshipManager[CoreGroup] + query: RelationshipAttribute[CoreGraphQLQuery] + repository: RelationshipAttribute[CoreGenericRepository] + subscriber_of_groups: RelationshipManager[CoreGroup] + targets: RelationshipAttribute[CoreGroup] + validators: RelationshipManager[CoreGeneratorValidator] class CoreGeneratorGroup(CoreGroup): - pass + description: StringOptional + group_type: String + label: StringOptional + name: String + children: RelationshipManager[CoreGroup] + members: RelationshipManager[CoreNode] + parent: RelationshipAttribute[CoreGroup] + subscribers: RelationshipManager[CoreNode] class CoreGeneratorInstance(CoreTaskTarget): name: String - status: Enum - object: RelatedNode - definition: RelatedNode + status: String + definition: RelationshipAttribute[CoreGeneratorDefinition] + member_of_groups: RelationshipManager[CoreGroup] + object: RelationshipAttribute[CoreNode] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreGeneratorValidator(CoreValidator): - definition: RelatedNode + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManager[CoreCheck] + definition: RelationshipAttribute[CoreGeneratorDefinition] + member_of_groups: RelationshipManager[CoreGroup] + proposed_change: RelationshipAttribute[CoreProposedChange] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreGlobalPermission(CoreBasePermission): action: Dropdown - decision: Enum + decision: Integer + description: StringOptional + identifier: StringOptional + member_of_groups: RelationshipManager[CoreGroup] + roles: RelationshipManager[CoreAccountRole] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreGraphQLQuery(CoreNode): - name: String + depth: IntegerOptional description: StringOptional - query: String fingerprint: StringOptional - variables: JSONAttributeOptional - operations: ListAttributeOptional - models: ListAttributeOptional - depth: IntegerOptional height: IntegerOptional - repository: RelatedNode - tags: RelationshipManager - query_groups: RelationshipManager + models: ListAttributeOptional + name: String + operations: ListAttributeOptional + query: String + variables: JSONAttributeOptional + member_of_groups: RelationshipManager[CoreGroup] + query_groups: RelationshipManager[CoreGraphQLQueryGroup] + repository: RelationshipAttribute[CoreGenericRepository] + subscriber_of_groups: RelationshipManager[CoreGroup] + tags: RelationshipManager[BuiltinTag] class CoreGraphQLQueryGroup(CoreGroup): + description: StringOptional + group_type: String + label: StringOptional + name: String parameters: JSONAttributeOptional - query: RelatedNode + children: RelationshipManager[CoreGroup] + members: RelationshipManager[CoreNode] + parent: RelationshipAttribute[CoreGroup] + query: RelationshipAttribute[CoreGraphQLQuery] + subscribers: RelationshipManager[CoreNode] class CoreGroupAction(CoreAction): + description: StringOptional member_action: Dropdown - group: RelatedNode + name: String + group: RelationshipAttribute[CoreGroup] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + triggers: RelationshipManager[CoreTriggerRule] class CoreGroupTriggerRule(CoreTriggerRule): + active: Boolean + branch_scope: Dropdown + description: StringOptional member_update: Dropdown - group: RelatedNode + name: String + action: RelationshipAttribute[CoreAction] + group: RelationshipAttribute[CoreGroup] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreIPAddressPool(CoreResourcePool, LineageSource, CoreIPPool): default_address_type: String default_prefix_length: IntegerOptional - resources: RelationshipManager - ip_namespace: RelatedNode + description: StringOptional + name: String + ip_namespace: RelationshipAttribute[BuiltinIPNamespace] + member_of_groups: RelationshipManager[CoreGroup] + resources: RelationshipManager[BuiltinIPPrefix] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreIPPrefixPool(CoreResourcePool, LineageSource, CoreIPPool): + default_member_type: String default_prefix_length: IntegerOptional - default_member_type: Enum default_prefix_type: StringOptional - resources: RelationshipManager - ip_namespace: RelatedNode + description: StringOptional + name: String + ip_namespace: RelationshipAttribute[BuiltinIPNamespace] + member_of_groups: RelationshipManager[CoreGroup] + resources: RelationshipManager[BuiltinIPPrefix] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreMenuItem(CoreMenu): - pass + description: StringOptional + icon: StringOptional + kind: StringOptional + label: StringOptional + name: String + namespace: String + order_weight: Integer + path: StringOptional + protected: Boolean + required_permissions: ListAttributeOptional + section: String + children: RelationshipManager[CoreMenu] + member_of_groups: RelationshipManager[CoreGroup] + parent: RelationshipAttribute[CoreMenu] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreNodeTriggerAttributeMatch(CoreNodeTriggerMatch): attribute_name: String value: StringOptional - value_previous: StringOptional value_match: Dropdown + value_previous: StringOptional + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + trigger: RelationshipAttribute[CoreNodeTriggerRule] class CoreNodeTriggerRelationshipMatch(CoreNodeTriggerMatch): - relationship_name: String modification_type: Dropdown peer: StringOptional + relationship_name: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + trigger: RelationshipAttribute[CoreNodeTriggerRule] class CoreNodeTriggerRule(CoreTriggerRule): + active: Boolean + branch_scope: Dropdown + description: StringOptional + mutation_action: String + name: String node_kind: String - mutation_action: Enum - matches: RelationshipManager + action: RelationshipAttribute[CoreAction] + matches: RelationshipManager[CoreNodeTriggerMatch] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreNumberPool(CoreResourcePool, LineageSource): + description: StringOptional + end_range: Integer + name: String node: String node_attribute: String + pool_type: String start_range: Integer - end_range: Integer - pool_type: Enum + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreObjectPermission(CoreBasePermission): - namespace: String + action: String + decision: Integer + description: StringOptional + identifier: StringOptional name: String - action: Enum - decision: Enum + namespace: String + member_of_groups: RelationshipManager[CoreGroup] + roles: RelationshipManager[CoreAccountRole] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreObjectThread(CoreThread): + label: StringOptional object_path: String + resolved: Boolean + change: RelationshipAttribute[CoreProposedChange] + comments: RelationshipManager[CoreThreadComment] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CorePasswordCredential(CoreCredential): - username: StringOptional + description: StringOptional + label: StringOptional + name: String password: StringOptional + username: StringOptional + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreProposedChange(CoreTaskTarget): - name: String description: StringOptional - source_branch: String destination_branch: String - state: Enum is_draft: Boolean + name: String + source_branch: String + state: String total_comments: IntegerOptional - approved_by: RelationshipManager - rejected_by: RelationshipManager - reviewers: RelationshipManager - comments: RelationshipManager - threads: RelationshipManager - validations: RelationshipManager + approved_by: RelationshipManager[CoreGenericAccount] + comments: RelationshipManager[CoreChangeComment] + member_of_groups: RelationshipManager[CoreGroup] + rejected_by: RelationshipManager[CoreGenericAccount] + reviewers: RelationshipManager[CoreGenericAccount] + subscriber_of_groups: RelationshipManager[CoreGroup] + threads: RelationshipManager[CoreThread] + validations: RelationshipManager[CoreValidator] class CoreReadOnlyRepository(LineageOwner, LineageSource, CoreGenericRepository, CoreTaskTarget): - ref: String commit: StringOptional + description: StringOptional + internal_status: Dropdown + location: String + name: String + operational_status: Dropdown + ref: String + sync_status: Dropdown + checks: RelationshipManager[CoreCheckDefinition] + credential: RelationshipAttribute[CoreCredential] + generators: RelationshipManager[CoreGeneratorDefinition] + groups_objects: RelationshipManager[CoreRepositoryGroup] + member_of_groups: RelationshipManager[CoreGroup] + queries: RelationshipManager[CoreGraphQLQuery] + subscriber_of_groups: RelationshipManager[CoreGroup] + tags: RelationshipManager[BuiltinTag] + transformations: RelationshipManager[CoreTransformation] class CoreRepository(LineageOwner, LineageSource, CoreGenericRepository, CoreTaskTarget): - default_branch: String commit: StringOptional + default_branch: String + description: StringOptional + internal_status: Dropdown + location: String + name: String + operational_status: Dropdown + sync_status: Dropdown + checks: RelationshipManager[CoreCheckDefinition] + credential: RelationshipAttribute[CoreCredential] + generators: RelationshipManager[CoreGeneratorDefinition] + groups_objects: RelationshipManager[CoreRepositoryGroup] + member_of_groups: RelationshipManager[CoreGroup] + queries: RelationshipManager[CoreGraphQLQuery] + subscriber_of_groups: RelationshipManager[CoreGroup] + tags: RelationshipManager[BuiltinTag] + transformations: RelationshipManager[CoreTransformation] class CoreRepositoryGroup(CoreGroup): content: Dropdown - repository: RelatedNode + description: StringOptional + group_type: String + label: StringOptional + name: String + children: RelationshipManager[CoreGroup] + members: RelationshipManager[CoreNode] + parent: RelationshipAttribute[CoreGroup] + repository: RelationshipAttribute[CoreGenericRepository] + subscribers: RelationshipManager[CoreNode] class CoreRepositoryValidator(CoreValidator): - repository: RelatedNode + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManager[CoreCheck] + member_of_groups: RelationshipManager[CoreGroup] + proposed_change: RelationshipAttribute[CoreProposedChange] + repository: RelationshipAttribute[CoreGenericRepository] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreSchemaCheck(CoreCheck): + conclusion: String conflicts: JSONAttribute + created_at: DateTimeOptional enriched_conflict_id: StringOptional + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + validator: RelationshipAttribute[CoreValidator] class CoreSchemaValidator(CoreValidator): - pass + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManager[CoreCheck] + member_of_groups: RelationshipManager[CoreGroup] + proposed_change: RelationshipAttribute[CoreProposedChange] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreStandardCheck(CoreCheck): - pass + conclusion: String + created_at: DateTimeOptional + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + validator: RelationshipAttribute[CoreValidator] class CoreStandardGroup(CoreGroup): - pass + description: StringOptional + group_type: String + label: StringOptional + name: String + children: RelationshipManager[CoreGroup] + members: RelationshipManager[CoreNode] + parent: RelationshipAttribute[CoreGroup] + subscribers: RelationshipManager[CoreNode] class CoreStandardWebhook(CoreWebhook, CoreTaskTarget): + active: Boolean + branch_scope: Dropdown + description: StringOptional + event_type: String + name: String + node_kind: StringOptional shared_key: String + url: URL + validate_certificates: BooleanOptional + headers: RelationshipManager[CoreKeyValue] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreStaticKeyValue(CoreKeyValue): - pass + description: StringOptional + key: String + name: String + value: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class CoreThreadComment(CoreComment): - thread: RelatedNode + text: String + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] + thread: RelationshipAttribute[CoreThread] class CoreTransformJinja2(CoreTransformation): + dependencies: ListAttributeOptional + dependencies_complete: BooleanOptional + description: StringOptional + fingerprint: StringOptional + label: StringOptional + name: String template_path: String + timeout: Integer + artifact_definitions: RelationshipManager[CoreArtifactDefinition] + member_of_groups: RelationshipManager[CoreGroup] + query: RelationshipAttribute[CoreGraphQLQuery] + repository: RelationshipAttribute[CoreGenericRepository] + subscriber_of_groups: RelationshipManager[CoreGroup] + tags: RelationshipManager[BuiltinTag] class CoreTransformPython(CoreTransformation): - file_path: String class_name: String - convert_query_response: BooleanOptional + convert_query_response: Boolean + dependencies: ListAttributeOptional + dependencies_complete: BooleanOptional + description: StringOptional + file_path: String + fingerprint: StringOptional + label: StringOptional + name: String + timeout: Integer + artifact_definitions: RelationshipManager[CoreArtifactDefinition] + member_of_groups: RelationshipManager[CoreGroup] + query: RelationshipAttribute[CoreGraphQLQuery] + repository: RelationshipAttribute[CoreGenericRepository] + subscriber_of_groups: RelationshipManager[CoreGroup] + tags: RelationshipManager[BuiltinTag] class CoreUserValidator(CoreValidator): - check_definition: RelatedNode - repository: RelatedNode + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + check_definition: RelationshipAttribute[CoreCheckDefinition] + checks: RelationshipManager[CoreCheck] + member_of_groups: RelationshipManager[CoreGroup] + proposed_change: RelationshipAttribute[CoreProposedChange] + repository: RelationshipAttribute[CoreGenericRepository] + subscriber_of_groups: RelationshipManager[CoreGroup] class InternalAccountToken(CoreNode): + expiration: DateTimeOptional name: StringOptional token: String - expiration: DateTimeOptional - account: RelatedNode + account: RelationshipAttribute[CoreGenericAccount] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class InternalExternalIdentity(CoreNode): - sub: String - provider_name: String protocol: String - account: RelatedNode + provider_name: String + sub: String + account: RelationshipAttribute[CoreGenericAccount] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class InternalIPPrefixAvailable(BuiltinIPPrefix): - pass + broadcast_address: StringOptional + description: StringOptional + hostmask: StringOptional + is_pool: Boolean + is_top_level: BooleanOptional + member_type: Dropdown + netmask: StringOptional + network_address: StringOptional + prefix: IPNetwork + utilization: IntegerOptional + children: RelationshipManager[BuiltinIPPrefix] + ip_addresses: RelationshipManager[BuiltinIPAddress] + ip_namespace: RelationshipAttribute[BuiltinIPNamespace] + member_of_groups: RelationshipManager[CoreGroup] + parent: RelationshipAttribute[BuiltinIPPrefix] + profiles: RelationshipManager[CoreProfile] + resource_pool: RelationshipManager[CoreIPPool] + subscriber_of_groups: RelationshipManager[CoreGroup] class InternalIPRangeAvailable(BuiltinIPAddress): + address: IPHost + description: StringOptional last_address: IPHost + ip_namespace: RelationshipAttribute[BuiltinIPNamespace] + ip_prefix: RelationshipAttribute[BuiltinIPPrefix] + member_of_groups: RelationshipManager[CoreGroup] + profiles: RelationshipManager[CoreProfile] + subscriber_of_groups: RelationshipManager[CoreGroup] class InternalRefreshToken(CoreNode): expiration: DateTime - account: RelatedNode + account: RelationshipAttribute[CoreGenericAccount] + member_of_groups: RelationshipManager[CoreGroup] + subscriber_of_groups: RelationshipManager[CoreGroup] class IpamNamespace(BuiltinIPNamespace): default: BooleanOptional + description: StringOptional + name: String + ip_addresses: RelationshipManager[BuiltinIPAddress] + ip_prefixes: RelationshipManager[BuiltinIPPrefix] + member_of_groups: RelationshipManager[CoreGroup] + profiles: RelationshipManager[CoreProfile] + subscriber_of_groups: RelationshipManager[CoreGroup] + + +class ProfileBuiltinIPAddress(LineageSource, CoreProfile, CoreNode): + address: IPHostOptional + description: StringOptional + profile_name: String + profile_priority: Integer + ip_namespace: RelationshipAttribute[BuiltinIPNamespace] + member_of_groups: RelationshipManager[CoreGroup] + related_nodes: RelationshipManager[BuiltinIPAddress] + subscriber_of_groups: RelationshipManager[CoreGroup] + + +class ProfileBuiltinIPPrefix(LineageSource, CoreProfile, CoreNode): + description: StringOptional + is_pool: BooleanOptional + member_type: DropdownOptional + prefix: IPNetworkOptional + profile_name: String + profile_priority: Integer + ip_namespace: RelationshipAttribute[BuiltinIPNamespace] + member_of_groups: RelationshipManager[CoreGroup] + related_nodes: RelationshipManager[BuiltinIPPrefix] + subscriber_of_groups: RelationshipManager[CoreGroup] + + +class ProfileBuiltinTag(LineageSource, CoreProfile, CoreNode): + description: StringOptional + profile_name: String + profile_priority: Integer + member_of_groups: RelationshipManager[CoreGroup] + related_nodes: RelationshipManager[BuiltinTag] + subscriber_of_groups: RelationshipManager[CoreGroup] -# --------------------------------------------- -# SYNC -# --------------------------------------------- +class ProfileIpamNamespace(LineageSource, CoreProfile, CoreNode): + description: StringOptional + profile_name: String + profile_priority: Integer + ip_addresses: RelationshipManager[BuiltinIPAddress] + ip_prefixes: RelationshipManager[BuiltinIPPrefix] + member_of_groups: RelationshipManager[CoreGroup] + related_nodes: RelationshipManager[IpamNamespace] + subscriber_of_groups: RelationshipManager[CoreGroup] class BuiltinIPAddressSync(CoreNodeSync): address: IPHost description: StringOptional - ip_namespace: RelatedNodeSync - ip_prefix: RelatedNodeSync + ip_namespace: RelationshipAttributeSync[BuiltinIPNamespaceSync] + ip_prefix: RelationshipAttributeSync[BuiltinIPPrefixSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + profiles: RelationshipManagerSync[CoreProfileSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class BuiltinIPNamespaceSync(CoreNodeSync): - name: String description: StringOptional - ip_prefixes: RelationshipManagerSync - ip_addresses: RelationshipManagerSync + name: String + ip_addresses: RelationshipManagerSync[BuiltinIPAddressSync] + ip_prefixes: RelationshipManagerSync[BuiltinIPPrefixSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + profiles: RelationshipManagerSync[CoreProfileSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class BuiltinIPPrefixSync(CoreNodeSync): - prefix: IPNetwork + broadcast_address: StringOptional description: StringOptional - member_type: Dropdown + hostmask: StringOptional is_pool: Boolean is_top_level: BooleanOptional - utilization: IntegerOptional + member_type: Dropdown netmask: StringOptional - hostmask: StringOptional network_address: StringOptional - broadcast_address: StringOptional - ip_namespace: RelatedNodeSync - ip_addresses: RelationshipManagerSync - resource_pool: RelationshipManagerSync - parent: RelatedNodeSync - children: RelationshipManagerSync + prefix: IPNetwork + utilization: IntegerOptional + children: RelationshipManagerSync[BuiltinIPPrefixSync] + ip_addresses: RelationshipManagerSync[BuiltinIPAddressSync] + ip_namespace: RelationshipAttributeSync[BuiltinIPNamespaceSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + parent: RelationshipAttributeSync[BuiltinIPPrefixSync] + profiles: RelationshipManagerSync[CoreProfileSync] + resource_pool: RelationshipManagerSync[CoreIPPoolSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreActionSync(CoreNodeSync): - name: String description: StringOptional - triggers: RelationshipManagerSync + name: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + triggers: RelationshipManagerSync[CoreTriggerRuleSync] class CoreArtifactTargetSync(CoreNodeSync): - artifacts: RelationshipManagerSync + artifacts: RelationshipManagerSync[CoreArtifactSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreBasePermissionSync(CoreNodeSync): description: StringOptional identifier: StringOptional - roles: RelationshipManagerSync + member_of_groups: RelationshipManagerSync[CoreGroupSync] + roles: RelationshipManagerSync[CoreAccountRoleSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreCheckSync(CoreNodeSync): - name: StringOptional - label: StringOptional - origin: String + conclusion: String + created_at: DateTimeOptional kind: String + label: StringOptional message: StringOptional - conclusion: Enum - severity: Enum - created_at: DateTimeOptional - validator: RelatedNodeSync + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + validator: RelationshipAttributeSync[CoreValidatorSync] class CoreCommentSync(CoreNodeSync): text: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreCredentialSync(CoreNodeSync): - name: String - label: StringOptional description: StringOptional + label: StringOptional + name: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreFileObjectSync(CoreNodeSync): - file_name: String checksum: String + file_name: String file_size: Integer file_type: String storage_id: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreGenericAccountSync(CoreNodeSync): + account_type: String + description: StringOptional + label: StringOptional name: String password: HashedPassword - label: StringOptional - description: StringOptional - account_type: Enum status: Dropdown - tokens: RelationshipManagerSync - external_identities: RelationshipManagerSync + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreGenericRepositorySync(CoreNodeSync): - name: String + commit: StringOptional description: StringOptional - location: String internal_status: Dropdown + location: String + name: String operational_status: Dropdown - commit: StringOptional sync_status: Dropdown - credential: RelatedNodeSync - tags: RelationshipManagerSync - transformations: RelationshipManagerSync - queries: RelationshipManagerSync - checks: RelationshipManagerSync - generators: RelationshipManagerSync - groups_objects: RelationshipManagerSync + checks: RelationshipManagerSync[CoreCheckDefinitionSync] + credential: RelationshipAttributeSync[CoreCredentialSync] + generators: RelationshipManagerSync[CoreGeneratorDefinitionSync] + groups_objects: RelationshipManagerSync[CoreRepositoryGroupSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + queries: RelationshipManagerSync[CoreGraphQLQuerySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + tags: RelationshipManagerSync[BuiltinTagSync] + transformations: RelationshipManagerSync[CoreTransformationSync] class CoreGroupSync(CoreNodeSync): - name: String - label: StringOptional description: StringOptional - group_type: Enum - members: RelationshipManagerSync - subscribers: RelationshipManagerSync - parent: RelatedNodeSync - children: RelationshipManagerSync + group_type: String + label: StringOptional + name: String + children: RelationshipManagerSync[CoreGroupSync] + members: RelationshipManagerSync[CoreNodeSync] + parent: RelationshipAttributeSync[CoreGroupSync] + subscribers: RelationshipManagerSync[CoreNodeSync] class CoreIPPoolSync(CoreNodeSync): - pass + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreKeyValueSync(CoreNodeSync): - name: String - key: String description: StringOptional + key: String + name: String value: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreMenuSync(CoreNodeSync): - namespace: String - name: String - label: StringOptional - kind: StringOptional - path: StringOptional description: StringOptional icon: StringOptional - protected: Boolean + kind: StringOptional + label: StringOptional + name: String + namespace: String order_weight: Integer + path: StringOptional + protected: Boolean required_permissions: ListAttributeOptional - section: Enum - parent: RelatedNodeSync - children: RelationshipManagerSync + section: String + children: RelationshipManagerSync[CoreMenuSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + parent: RelationshipAttributeSync[CoreMenuSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreNodeTriggerMatchSync(CoreNodeSync): - trigger: RelatedNodeSync + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + trigger: RelationshipAttributeSync[CoreNodeTriggerRuleSync] class CoreObjectComponentTemplateSync(CoreNodeSync): template_name: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreObjectTemplateSync(CoreNodeSync): template_name: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreProfileSync(CoreNodeSync): profile_name: String - profile_priority: IntegerOptional + profile_priority: Integer + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreResourcePoolSync(CoreNodeSync): - name: String description: StringOptional + name: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreTaskTargetSync(CoreNodeSync): - pass + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreThreadSync(CoreNodeSync): label: StringOptional resolved: Boolean - change: RelatedNodeSync - comments: RelationshipManagerSync + change: RelationshipAttributeSync[CoreProposedChangeSync] + comments: RelationshipManagerSync[CoreThreadCommentSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreTransformationSync(CoreNodeSync): - name: String - label: StringOptional - description: StringOptional - timeout: Integer - fingerprint: StringOptional dependencies: ListAttributeOptional dependencies_complete: BooleanOptional - query: RelatedNodeSync - repository: RelatedNodeSync - tags: RelationshipManagerSync - artifact_definitions: RelationshipManagerSync + description: StringOptional + fingerprint: StringOptional + label: StringOptional + name: String + timeout: Integer + artifact_definitions: RelationshipManagerSync[CoreArtifactDefinitionSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + query: RelationshipAttributeSync[CoreGraphQLQuerySync] + repository: RelationshipAttributeSync[CoreGenericRepositorySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + tags: RelationshipManagerSync[BuiltinTagSync] class CoreTriggerRuleSync(CoreNodeSync): - name: String - description: StringOptional active: Boolean branch_scope: Dropdown - action: RelatedNodeSync + description: StringOptional + name: String + action: RelationshipAttributeSync[CoreActionSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreValidatorSync(CoreNodeSync): - label: StringOptional - state: Enum - conclusion: Enum completed_at: DateTimeOptional + conclusion: String + label: StringOptional started_at: DateTimeOptional - proposed_change: RelatedNodeSync - checks: RelationshipManagerSync + state: String + checks: RelationshipManagerSync[CoreCheckSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + proposed_change: RelationshipAttributeSync[CoreProposedChangeSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreWebhookSync(CoreNodeSync): - name: String - event_type: Enum active: Boolean branch_scope: Dropdown - node_kind: StringOptional description: StringOptional + event_type: String + name: String + node_kind: StringOptional url: URL validate_certificates: BooleanOptional - headers: RelationshipManagerSync + headers: RelationshipManagerSync[CoreKeyValueSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreWeightedPoolResourceSync(CoreNodeSync): allocation_weight: IntegerOptional + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class LineageOwnerSync(CoreNodeSync): @@ -875,368 +1435,825 @@ class LineageSourceSync(CoreNodeSync): class BuiltinTagSync(CoreNodeSync): - name: String description: StringOptional + name: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + profiles: RelationshipManagerSync[CoreProfileSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreAccountSync(LineageOwnerSync, LineageSourceSync, CoreGenericAccountSync): - pass + account_type: String + description: StringOptional + label: StringOptional + name: String + password: HashedPassword + status: Dropdown + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreAccountGroupSync(LineageOwnerSync, LineageSourceSync, CoreGroupSync): + description: StringOptional + group_type: String + label: StringOptional + name: String origin: StringOptional - roles: RelationshipManagerSync + children: RelationshipManagerSync[CoreGroupSync] + members: RelationshipManagerSync[CoreNodeSync] + parent: RelationshipAttributeSync[CoreGroupSync] + roles: RelationshipManagerSync[CoreAccountRoleSync] + subscribers: RelationshipManagerSync[CoreNodeSync] class CoreAccountRoleSync(CoreNodeSync): name: String - groups: RelationshipManagerSync - permissions: RelationshipManagerSync + groups: RelationshipManagerSync[CoreAccountGroupSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + permissions: RelationshipManagerSync[CoreBasePermissionSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreArtifactSync(CoreTaskTargetSync): - name: String - status: Enum - content_type: Enum checksum: StringOptional - storage_id: StringOptional + content_type: String + name: String parameters: JSONAttributeOptional - object: RelatedNodeSync - definition: RelatedNodeSync + status: String + storage_id: StringOptional + definition: RelationshipAttributeSync[CoreArtifactDefinitionSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + object: RelationshipAttributeSync[CoreArtifactTargetSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreArtifactCheckSync(CoreCheckSync): + artifact_id: StringOptional changed: BooleanOptional checksum: StringOptional - artifact_id: StringOptional - storage_id: StringOptional + conclusion: String + created_at: DateTimeOptional + kind: String + label: StringOptional line_number: IntegerOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + storage_id: StringOptional + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + validator: RelationshipAttributeSync[CoreValidatorSync] class CoreArtifactDefinitionSync(CoreTaskTargetSync): - name: String artifact_name: String + content_type: String description: StringOptional - parameters: JSONAttribute - content_type: Enum fingerprint: StringOptional - targets: RelatedNodeSync - transformation: RelatedNodeSync - artifacts: RelationshipManagerSync - validators: RelationshipManagerSync + name: String + parameters: JSONAttribute + artifacts: RelationshipManagerSync[CoreArtifactSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + targets: RelationshipAttributeSync[CoreGroupSync] + transformation: RelationshipAttributeSync[CoreTransformationSync] + validators: RelationshipManagerSync[CoreArtifactValidatorSync] class CoreArtifactThreadSync(CoreThreadSync): artifact_id: StringOptional - storage_id: StringOptional + label: StringOptional line_number: IntegerOptional + resolved: Boolean + storage_id: StringOptional + change: RelationshipAttributeSync[CoreProposedChangeSync] + comments: RelationshipManagerSync[CoreThreadCommentSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreArtifactValidatorSync(CoreValidatorSync): - definition: RelatedNodeSync + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManagerSync[CoreCheckSync] + definition: RelationshipAttributeSync[CoreArtifactDefinitionSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + proposed_change: RelationshipAttributeSync[CoreProposedChangeSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreChangeCommentSync(CoreCommentSync): - change: RelatedNodeSync + text: String + change: RelationshipAttributeSync[CoreProposedChangeSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreChangeThreadSync(CoreThreadSync): - pass + label: StringOptional + resolved: Boolean + change: RelationshipAttributeSync[CoreProposedChangeSync] + comments: RelationshipManagerSync[CoreThreadCommentSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreCheckDefinitionSync(CoreTaskTargetSync): - name: String + class_name: String description: StringOptional file_path: String - class_name: String - timeout: Integer + name: String parameters: JSONAttributeOptional - repository: RelatedNodeSync - query: RelatedNodeSync - targets: RelatedNodeSync - tags: RelationshipManagerSync - validators: RelationshipManagerSync + timeout: Integer + member_of_groups: RelationshipManagerSync[CoreGroupSync] + query: RelationshipAttributeSync[CoreGraphQLQuerySync] + repository: RelationshipAttributeSync[CoreGenericRepositorySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + tags: RelationshipManagerSync[BuiltinTagSync] + targets: RelationshipAttributeSync[CoreGroupSync] + validators: RelationshipManagerSync[CoreUserValidatorSync] class CoreCustomWebhookSync(CoreWebhookSync, CoreTaskTargetSync): + active: Boolean + branch_scope: Dropdown + description: StringOptional + event_type: String + name: String + node_kind: StringOptional shared_key: StringOptional - transformation: RelatedNodeSync + url: URL + validate_certificates: BooleanOptional + headers: RelationshipManagerSync[CoreKeyValueSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + transformation: RelationshipAttributeSync[CoreTransformPythonSync] class CoreDataCheckSync(CoreCheckSync): + conclusion: String conflicts: JSONAttribute - keep_branch: Enum + created_at: DateTimeOptional enriched_conflict_id: StringOptional + keep_branch: StringOptional + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + validator: RelationshipAttributeSync[CoreValidatorSync] class CoreDataValidatorSync(CoreValidatorSync): - pass + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManagerSync[CoreCheckSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + proposed_change: RelationshipAttributeSync[CoreProposedChangeSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreEnvKeyValueSync(CoreKeyValueSync): - pass + description: StringOptional + key: String + name: String + value: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreFileCheckSync(CoreCheckSync): - files: ListAttributeOptional commit: StringOptional + conclusion: String + created_at: DateTimeOptional + files: ListAttributeOptional + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + validator: RelationshipAttributeSync[CoreValidatorSync] class CoreFileThreadSync(CoreThreadSync): - file: StringOptional commit: StringOptional + file: StringOptional + label: StringOptional line_number: IntegerOptional - repository: RelatedNodeSync + resolved: Boolean + change: RelationshipAttributeSync[CoreProposedChangeSync] + comments: RelationshipManagerSync[CoreThreadCommentSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + repository: RelationshipAttributeSync[CoreRepositorySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreGeneratorActionSync(CoreActionSync): - generator: RelatedNodeSync + description: StringOptional + name: String + generator: RelationshipAttributeSync[CoreGeneratorDefinitionSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + triggers: RelationshipManagerSync[CoreTriggerRuleSync] class CoreGeneratorAwareGroupSync(CoreGroupSync): - pass + description: StringOptional + group_type: String + label: StringOptional + name: String + children: RelationshipManagerSync[CoreGroupSync] + members: RelationshipManagerSync[CoreNodeSync] + parent: RelationshipAttributeSync[CoreGroupSync] + subscribers: RelationshipManagerSync[CoreNodeSync] class CoreGeneratorCheckSync(CoreCheckSync): + conclusion: String + created_at: DateTimeOptional instance: String + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + validator: RelationshipAttributeSync[CoreValidatorSync] class CoreGeneratorDefinitionSync(CoreTaskTargetSync): - name: String - description: StringOptional - parameters: JSONAttribute - file_path: String class_name: String - convert_query_response: BooleanOptional - execute_in_proposed_change: BooleanOptional - execute_after_merge: BooleanOptional - fingerprint: StringOptional + convert_query_response: Boolean dependencies: ListAttributeOptional dependencies_complete: BooleanOptional - query: RelatedNodeSync - repository: RelatedNodeSync - targets: RelatedNodeSync - instances: RelationshipManagerSync - validators: RelationshipManagerSync + description: StringOptional + execute_after_merge: Boolean + execute_in_proposed_change: Boolean + file_path: String + fingerprint: StringOptional + name: String + parameters: JSONAttribute + instances: RelationshipManagerSync[CoreGeneratorInstanceSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + query: RelationshipAttributeSync[CoreGraphQLQuerySync] + repository: RelationshipAttributeSync[CoreGenericRepositorySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + targets: RelationshipAttributeSync[CoreGroupSync] + validators: RelationshipManagerSync[CoreGeneratorValidatorSync] class CoreGeneratorGroupSync(CoreGroupSync): - pass + description: StringOptional + group_type: String + label: StringOptional + name: String + children: RelationshipManagerSync[CoreGroupSync] + members: RelationshipManagerSync[CoreNodeSync] + parent: RelationshipAttributeSync[CoreGroupSync] + subscribers: RelationshipManagerSync[CoreNodeSync] class CoreGeneratorInstanceSync(CoreTaskTargetSync): name: String - status: Enum - object: RelatedNodeSync - definition: RelatedNodeSync + status: String + definition: RelationshipAttributeSync[CoreGeneratorDefinitionSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + object: RelationshipAttributeSync[CoreNodeSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreGeneratorValidatorSync(CoreValidatorSync): - definition: RelatedNodeSync + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManagerSync[CoreCheckSync] + definition: RelationshipAttributeSync[CoreGeneratorDefinitionSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + proposed_change: RelationshipAttributeSync[CoreProposedChangeSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreGlobalPermissionSync(CoreBasePermissionSync): action: Dropdown - decision: Enum + decision: Integer + description: StringOptional + identifier: StringOptional + member_of_groups: RelationshipManagerSync[CoreGroupSync] + roles: RelationshipManagerSync[CoreAccountRoleSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreGraphQLQuerySync(CoreNodeSync): - name: String + depth: IntegerOptional description: StringOptional - query: String fingerprint: StringOptional - variables: JSONAttributeOptional - operations: ListAttributeOptional - models: ListAttributeOptional - depth: IntegerOptional height: IntegerOptional - repository: RelatedNodeSync - tags: RelationshipManagerSync - query_groups: RelationshipManagerSync + models: ListAttributeOptional + name: String + operations: ListAttributeOptional + query: String + variables: JSONAttributeOptional + member_of_groups: RelationshipManagerSync[CoreGroupSync] + query_groups: RelationshipManagerSync[CoreGraphQLQueryGroupSync] + repository: RelationshipAttributeSync[CoreGenericRepositorySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + tags: RelationshipManagerSync[BuiltinTagSync] class CoreGraphQLQueryGroupSync(CoreGroupSync): + description: StringOptional + group_type: String + label: StringOptional + name: String parameters: JSONAttributeOptional - query: RelatedNodeSync + children: RelationshipManagerSync[CoreGroupSync] + members: RelationshipManagerSync[CoreNodeSync] + parent: RelationshipAttributeSync[CoreGroupSync] + query: RelationshipAttributeSync[CoreGraphQLQuerySync] + subscribers: RelationshipManagerSync[CoreNodeSync] class CoreGroupActionSync(CoreActionSync): + description: StringOptional member_action: Dropdown - group: RelatedNodeSync + name: String + group: RelationshipAttributeSync[CoreGroupSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + triggers: RelationshipManagerSync[CoreTriggerRuleSync] class CoreGroupTriggerRuleSync(CoreTriggerRuleSync): + active: Boolean + branch_scope: Dropdown + description: StringOptional member_update: Dropdown - group: RelatedNodeSync + name: String + action: RelationshipAttributeSync[CoreActionSync] + group: RelationshipAttributeSync[CoreGroupSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreIPAddressPoolSync(CoreResourcePoolSync, LineageSourceSync, CoreIPPoolSync): default_address_type: String default_prefix_length: IntegerOptional - resources: RelationshipManagerSync - ip_namespace: RelatedNodeSync + description: StringOptional + name: String + ip_namespace: RelationshipAttributeSync[BuiltinIPNamespaceSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + resources: RelationshipManagerSync[BuiltinIPPrefixSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreIPPrefixPoolSync(CoreResourcePoolSync, LineageSourceSync, CoreIPPoolSync): + default_member_type: String default_prefix_length: IntegerOptional - default_member_type: Enum default_prefix_type: StringOptional - resources: RelationshipManagerSync - ip_namespace: RelatedNodeSync + description: StringOptional + name: String + ip_namespace: RelationshipAttributeSync[BuiltinIPNamespaceSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + resources: RelationshipManagerSync[BuiltinIPPrefixSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreMenuItemSync(CoreMenuSync): - pass + description: StringOptional + icon: StringOptional + kind: StringOptional + label: StringOptional + name: String + namespace: String + order_weight: Integer + path: StringOptional + protected: Boolean + required_permissions: ListAttributeOptional + section: String + children: RelationshipManagerSync[CoreMenuSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + parent: RelationshipAttributeSync[CoreMenuSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreNodeTriggerAttributeMatchSync(CoreNodeTriggerMatchSync): attribute_name: String value: StringOptional - value_previous: StringOptional value_match: Dropdown + value_previous: StringOptional + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + trigger: RelationshipAttributeSync[CoreNodeTriggerRuleSync] class CoreNodeTriggerRelationshipMatchSync(CoreNodeTriggerMatchSync): - relationship_name: String modification_type: Dropdown peer: StringOptional + relationship_name: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + trigger: RelationshipAttributeSync[CoreNodeTriggerRuleSync] class CoreNodeTriggerRuleSync(CoreTriggerRuleSync): + active: Boolean + branch_scope: Dropdown + description: StringOptional + mutation_action: String + name: String node_kind: String - mutation_action: Enum - matches: RelationshipManagerSync + action: RelationshipAttributeSync[CoreActionSync] + matches: RelationshipManagerSync[CoreNodeTriggerMatchSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreNumberPoolSync(CoreResourcePoolSync, LineageSourceSync): + description: StringOptional + end_range: Integer + name: String node: String node_attribute: String + pool_type: String start_range: Integer - end_range: Integer - pool_type: Enum + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreObjectPermissionSync(CoreBasePermissionSync): - namespace: String + action: String + decision: Integer + description: StringOptional + identifier: StringOptional name: String - action: Enum - decision: Enum + namespace: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + roles: RelationshipManagerSync[CoreAccountRoleSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreObjectThreadSync(CoreThreadSync): + label: StringOptional object_path: String + resolved: Boolean + change: RelationshipAttributeSync[CoreProposedChangeSync] + comments: RelationshipManagerSync[CoreThreadCommentSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CorePasswordCredentialSync(CoreCredentialSync): - username: StringOptional + description: StringOptional + label: StringOptional + name: String password: StringOptional + username: StringOptional + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreProposedChangeSync(CoreTaskTargetSync): - name: String description: StringOptional - source_branch: String destination_branch: String - state: Enum is_draft: Boolean + name: String + source_branch: String + state: String total_comments: IntegerOptional - approved_by: RelationshipManagerSync - rejected_by: RelationshipManagerSync - reviewers: RelationshipManagerSync - comments: RelationshipManagerSync - threads: RelationshipManagerSync - validations: RelationshipManagerSync + approved_by: RelationshipManagerSync[CoreGenericAccountSync] + comments: RelationshipManagerSync[CoreChangeCommentSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + rejected_by: RelationshipManagerSync[CoreGenericAccountSync] + reviewers: RelationshipManagerSync[CoreGenericAccountSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + threads: RelationshipManagerSync[CoreThreadSync] + validations: RelationshipManagerSync[CoreValidatorSync] class CoreReadOnlyRepositorySync(LineageOwnerSync, LineageSourceSync, CoreGenericRepositorySync, CoreTaskTargetSync): - ref: String commit: StringOptional + description: StringOptional + internal_status: Dropdown + location: String + name: String + operational_status: Dropdown + ref: String + sync_status: Dropdown + checks: RelationshipManagerSync[CoreCheckDefinitionSync] + credential: RelationshipAttributeSync[CoreCredentialSync] + generators: RelationshipManagerSync[CoreGeneratorDefinitionSync] + groups_objects: RelationshipManagerSync[CoreRepositoryGroupSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + queries: RelationshipManagerSync[CoreGraphQLQuerySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + tags: RelationshipManagerSync[BuiltinTagSync] + transformations: RelationshipManagerSync[CoreTransformationSync] class CoreRepositorySync(LineageOwnerSync, LineageSourceSync, CoreGenericRepositorySync, CoreTaskTargetSync): - default_branch: String commit: StringOptional + default_branch: String + description: StringOptional + internal_status: Dropdown + location: String + name: String + operational_status: Dropdown + sync_status: Dropdown + checks: RelationshipManagerSync[CoreCheckDefinitionSync] + credential: RelationshipAttributeSync[CoreCredentialSync] + generators: RelationshipManagerSync[CoreGeneratorDefinitionSync] + groups_objects: RelationshipManagerSync[CoreRepositoryGroupSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + queries: RelationshipManagerSync[CoreGraphQLQuerySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + tags: RelationshipManagerSync[BuiltinTagSync] + transformations: RelationshipManagerSync[CoreTransformationSync] class CoreRepositoryGroupSync(CoreGroupSync): content: Dropdown - repository: RelatedNodeSync + description: StringOptional + group_type: String + label: StringOptional + name: String + children: RelationshipManagerSync[CoreGroupSync] + members: RelationshipManagerSync[CoreNodeSync] + parent: RelationshipAttributeSync[CoreGroupSync] + repository: RelationshipAttributeSync[CoreGenericRepositorySync] + subscribers: RelationshipManagerSync[CoreNodeSync] class CoreRepositoryValidatorSync(CoreValidatorSync): - repository: RelatedNodeSync + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManagerSync[CoreCheckSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + proposed_change: RelationshipAttributeSync[CoreProposedChangeSync] + repository: RelationshipAttributeSync[CoreGenericRepositorySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreSchemaCheckSync(CoreCheckSync): + conclusion: String conflicts: JSONAttribute + created_at: DateTimeOptional enriched_conflict_id: StringOptional + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + validator: RelationshipAttributeSync[CoreValidatorSync] class CoreSchemaValidatorSync(CoreValidatorSync): - pass + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + checks: RelationshipManagerSync[CoreCheckSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + proposed_change: RelationshipAttributeSync[CoreProposedChangeSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreStandardCheckSync(CoreCheckSync): - pass + conclusion: String + created_at: DateTimeOptional + kind: String + label: StringOptional + message: StringOptional + name: StringOptional + origin: String + severity: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + validator: RelationshipAttributeSync[CoreValidatorSync] class CoreStandardGroupSync(CoreGroupSync): - pass + description: StringOptional + group_type: String + label: StringOptional + name: String + children: RelationshipManagerSync[CoreGroupSync] + members: RelationshipManagerSync[CoreNodeSync] + parent: RelationshipAttributeSync[CoreGroupSync] + subscribers: RelationshipManagerSync[CoreNodeSync] class CoreStandardWebhookSync(CoreWebhookSync, CoreTaskTargetSync): + active: Boolean + branch_scope: Dropdown + description: StringOptional + event_type: String + name: String + node_kind: StringOptional shared_key: String + url: URL + validate_certificates: BooleanOptional + headers: RelationshipManagerSync[CoreKeyValueSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreStaticKeyValueSync(CoreKeyValueSync): - pass + description: StringOptional + key: String + name: String + value: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class CoreThreadCommentSync(CoreCommentSync): - thread: RelatedNodeSync + text: String + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + thread: RelationshipAttributeSync[CoreThreadSync] class CoreTransformJinja2Sync(CoreTransformationSync): + dependencies: ListAttributeOptional + dependencies_complete: BooleanOptional + description: StringOptional + fingerprint: StringOptional + label: StringOptional + name: String template_path: String + timeout: Integer + artifact_definitions: RelationshipManagerSync[CoreArtifactDefinitionSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + query: RelationshipAttributeSync[CoreGraphQLQuerySync] + repository: RelationshipAttributeSync[CoreGenericRepositorySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + tags: RelationshipManagerSync[BuiltinTagSync] class CoreTransformPythonSync(CoreTransformationSync): - file_path: String class_name: String - convert_query_response: BooleanOptional + convert_query_response: Boolean + dependencies: ListAttributeOptional + dependencies_complete: BooleanOptional + description: StringOptional + file_path: String + fingerprint: StringOptional + label: StringOptional + name: String + timeout: Integer + artifact_definitions: RelationshipManagerSync[CoreArtifactDefinitionSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + query: RelationshipAttributeSync[CoreGraphQLQuerySync] + repository: RelationshipAttributeSync[CoreGenericRepositorySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + tags: RelationshipManagerSync[BuiltinTagSync] class CoreUserValidatorSync(CoreValidatorSync): - check_definition: RelatedNodeSync - repository: RelatedNodeSync + completed_at: DateTimeOptional + conclusion: String + label: StringOptional + started_at: DateTimeOptional + state: String + check_definition: RelationshipAttributeSync[CoreCheckDefinitionSync] + checks: RelationshipManagerSync[CoreCheckSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + proposed_change: RelationshipAttributeSync[CoreProposedChangeSync] + repository: RelationshipAttributeSync[CoreGenericRepositorySync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class InternalAccountTokenSync(CoreNodeSync): + expiration: DateTimeOptional name: StringOptional token: String - expiration: DateTimeOptional - account: RelatedNodeSync + account: RelationshipAttributeSync[CoreGenericAccountSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class InternalExternalIdentitySync(CoreNodeSync): - sub: String - provider_name: String protocol: String - account: RelatedNodeSync + provider_name: String + sub: String + account: RelationshipAttributeSync[CoreGenericAccountSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class InternalIPPrefixAvailableSync(BuiltinIPPrefixSync): - pass + broadcast_address: StringOptional + description: StringOptional + hostmask: StringOptional + is_pool: Boolean + is_top_level: BooleanOptional + member_type: Dropdown + netmask: StringOptional + network_address: StringOptional + prefix: IPNetwork + utilization: IntegerOptional + children: RelationshipManagerSync[BuiltinIPPrefixSync] + ip_addresses: RelationshipManagerSync[BuiltinIPAddressSync] + ip_namespace: RelationshipAttributeSync[BuiltinIPNamespaceSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + parent: RelationshipAttributeSync[BuiltinIPPrefixSync] + profiles: RelationshipManagerSync[CoreProfileSync] + resource_pool: RelationshipManagerSync[CoreIPPoolSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class InternalIPRangeAvailableSync(BuiltinIPAddressSync): + address: IPHost + description: StringOptional last_address: IPHost + ip_namespace: RelationshipAttributeSync[BuiltinIPNamespaceSync] + ip_prefix: RelationshipAttributeSync[BuiltinIPPrefixSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + profiles: RelationshipManagerSync[CoreProfileSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class InternalRefreshTokenSync(CoreNodeSync): expiration: DateTime - account: RelatedNodeSync + account: RelationshipAttributeSync[CoreGenericAccountSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] class IpamNamespaceSync(BuiltinIPNamespaceSync): default: BooleanOptional + description: StringOptional + name: String + ip_addresses: RelationshipManagerSync[BuiltinIPAddressSync] + ip_prefixes: RelationshipManagerSync[BuiltinIPPrefixSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + profiles: RelationshipManagerSync[CoreProfileSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + + +class ProfileBuiltinIPAddressSync(LineageSourceSync, CoreProfileSync, CoreNodeSync): + address: IPHostOptional + description: StringOptional + profile_name: String + profile_priority: Integer + ip_namespace: RelationshipAttributeSync[BuiltinIPNamespaceSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + related_nodes: RelationshipManagerSync[BuiltinIPAddressSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + + +class ProfileBuiltinIPPrefixSync(LineageSourceSync, CoreProfileSync, CoreNodeSync): + description: StringOptional + is_pool: BooleanOptional + member_type: DropdownOptional + prefix: IPNetworkOptional + profile_name: String + profile_priority: Integer + ip_namespace: RelationshipAttributeSync[BuiltinIPNamespaceSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + related_nodes: RelationshipManagerSync[BuiltinIPPrefixSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + + +class ProfileBuiltinTagSync(LineageSourceSync, CoreProfileSync, CoreNodeSync): + description: StringOptional + profile_name: String + profile_priority: Integer + member_of_groups: RelationshipManagerSync[CoreGroupSync] + related_nodes: RelationshipManagerSync[BuiltinTagSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] + + +class ProfileIpamNamespaceSync(LineageSourceSync, CoreProfileSync, CoreNodeSync): + description: StringOptional + profile_name: String + profile_priority: Integer + ip_addresses: RelationshipManagerSync[BuiltinIPAddressSync] + ip_prefixes: RelationshipManagerSync[BuiltinIPPrefixSync] + member_of_groups: RelationshipManagerSync[CoreGroupSync] + related_nodes: RelationshipManagerSync[IpamNamespaceSync] + subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] diff --git a/tests/fixtures/protocols_generator/user_schema_async.txt b/tests/fixtures/protocols_generator/user_schema_async.txt index 1db0ae90..6f2ea2ec 100644 --- a/tests/fixtures/protocols_generator/user_schema_async.txt +++ b/tests/fixtures/protocols_generator/user_schema_async.txt @@ -6,7 +6,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Optional -from infrahub_sdk.protocols import CoreNode, BuiltinIPAddress, BuiltinIPAddressSync, BuiltinIPNamespace, BuiltinIPNamespaceSync, BuiltinIPPrefix, BuiltinIPPrefixSync, BuiltinTag, BuiltinTagSync, CoreAccount, CoreAccountGroup, CoreAccountGroupSync, CoreAccountRole, CoreAccountRoleSync, CoreAccountSync, CoreAction, CoreActionSync, CoreArtifact, CoreArtifactCheck, CoreArtifactCheckSync, CoreArtifactDefinition, CoreArtifactDefinitionSync, CoreArtifactSync, CoreArtifactTarget, CoreArtifactTargetSync, CoreArtifactThread, CoreArtifactThreadSync, CoreArtifactValidator, CoreArtifactValidatorSync, CoreBasePermission, CoreBasePermissionSync, CoreChangeComment, CoreChangeCommentSync, CoreChangeThread, CoreChangeThreadSync, CoreCheck, CoreCheckDefinition, CoreCheckDefinitionSync, CoreCheckSync, CoreComment, CoreCommentSync, CoreCredential, CoreCredentialSync, CoreCustomWebhook, CoreCustomWebhookSync, CoreDataCheck, CoreDataCheckSync, CoreDataValidator, CoreDataValidatorSync, CoreEnvKeyValue, CoreEnvKeyValueSync, CoreFileCheck, CoreFileCheckSync, CoreFileObject, CoreFileObjectSync, CoreFileThread, CoreFileThreadSync, CoreGeneratorAction, CoreGeneratorActionSync, CoreGeneratorAwareGroup, CoreGeneratorAwareGroupSync, CoreGeneratorCheck, CoreGeneratorCheckSync, CoreGeneratorDefinition, CoreGeneratorDefinitionSync, CoreGeneratorGroup, CoreGeneratorGroupSync, CoreGeneratorInstance, CoreGeneratorInstanceSync, CoreGeneratorValidator, CoreGeneratorValidatorSync, CoreGenericAccount, CoreGenericAccountSync, CoreGenericRepository, CoreGenericRepositorySync, CoreGlobalPermission, CoreGlobalPermissionSync, CoreGraphQLQuery, CoreGraphQLQueryGroup, CoreGraphQLQueryGroupSync, CoreGraphQLQuerySync, CoreGroup, CoreGroupAction, CoreGroupActionSync, CoreGroupSync, CoreGroupTriggerRule, CoreGroupTriggerRuleSync, CoreIPAddressPool, CoreIPAddressPoolSync, CoreIPPool, CoreIPPoolSync, CoreIPPrefixPool, CoreIPPrefixPoolSync, CoreKeyValue, CoreKeyValueSync, CoreMenu, CoreMenuItem, CoreMenuItemSync, CoreMenuSync, CoreNodeSync, CoreNodeTriggerAttributeMatch, CoreNodeTriggerAttributeMatchSync, CoreNodeTriggerMatch, CoreNodeTriggerMatchSync, CoreNodeTriggerRelationshipMatch, CoreNodeTriggerRelationshipMatchSync, CoreNodeTriggerRule, CoreNodeTriggerRuleSync, CoreNumberPool, CoreNumberPoolSync, CoreObjectComponentTemplate, CoreObjectComponentTemplateSync, CoreObjectPermission, CoreObjectPermissionSync, CoreObjectTemplate, CoreObjectTemplateSync, CoreObjectThread, CoreObjectThreadSync, CorePasswordCredential, CorePasswordCredentialSync, CoreProfile, CoreProfileSync, CoreProposedChange, CoreProposedChangeSync, CoreReadOnlyRepository, CoreReadOnlyRepositorySync, CoreRepository, CoreRepositoryGroup, CoreRepositoryGroupSync, CoreRepositorySync, CoreRepositoryValidator, CoreRepositoryValidatorSync, CoreResourcePool, CoreResourcePoolSync, CoreSchemaCheck, CoreSchemaCheckSync, CoreSchemaValidator, CoreSchemaValidatorSync, CoreStandardCheck, CoreStandardCheckSync, CoreStandardGroup, CoreStandardGroupSync, CoreStandardWebhook, CoreStandardWebhookSync, CoreStaticKeyValue, CoreStaticKeyValueSync, CoreTaskTarget, CoreTaskTargetSync, CoreThread, CoreThreadComment, CoreThreadCommentSync, CoreThreadSync, CoreTransformJinja2, CoreTransformJinja2Sync, CoreTransformPython, CoreTransformPythonSync, CoreTransformation, CoreTransformationSync, CoreTriggerRule, CoreTriggerRuleSync, CoreUserValidator, CoreUserValidatorSync, CoreValidator, CoreValidatorSync, CoreWebhook, CoreWebhookSync, CoreWeightedPoolResource, CoreWeightedPoolResourceSync, InternalAccountToken, InternalAccountTokenSync, InternalExternalIdentity, InternalExternalIdentitySync, InternalIPPrefixAvailable, InternalIPPrefixAvailableSync, InternalIPRangeAvailable, InternalIPRangeAvailableSync, InternalRefreshToken, InternalRefreshTokenSync, IpamNamespace, IpamNamespaceSync, LineageOwner, LineageOwnerSync, LineageSource, LineageSourceSync +from infrahub_sdk.protocols import CoreNode, BuiltinIPAddress, BuiltinIPAddressSync, BuiltinIPNamespace, BuiltinIPNamespaceSync, BuiltinIPPrefix, BuiltinIPPrefixSync, BuiltinTag, BuiltinTagSync, CoreAccount, CoreAccountGroup, CoreAccountGroupSync, CoreAccountRole, CoreAccountRoleSync, CoreAccountSync, CoreAction, CoreActionSync, CoreArtifact, CoreArtifactCheck, CoreArtifactCheckSync, CoreArtifactDefinition, CoreArtifactDefinitionSync, CoreArtifactSync, CoreArtifactTarget, CoreArtifactTargetSync, CoreArtifactThread, CoreArtifactThreadSync, CoreArtifactValidator, CoreArtifactValidatorSync, CoreBasePermission, CoreBasePermissionSync, CoreChangeComment, CoreChangeCommentSync, CoreChangeThread, CoreChangeThreadSync, CoreCheck, CoreCheckDefinition, CoreCheckDefinitionSync, CoreCheckSync, CoreComment, CoreCommentSync, CoreCredential, CoreCredentialSync, CoreCustomWebhook, CoreCustomWebhookSync, CoreDataCheck, CoreDataCheckSync, CoreDataValidator, CoreDataValidatorSync, CoreEnvKeyValue, CoreEnvKeyValueSync, CoreFileCheck, CoreFileCheckSync, CoreFileObject, CoreFileObjectSync, CoreFileThread, CoreFileThreadSync, CoreGeneratorAction, CoreGeneratorActionSync, CoreGeneratorAwareGroup, CoreGeneratorAwareGroupSync, CoreGeneratorCheck, CoreGeneratorCheckSync, CoreGeneratorDefinition, CoreGeneratorDefinitionSync, CoreGeneratorGroup, CoreGeneratorGroupSync, CoreGeneratorInstance, CoreGeneratorInstanceSync, CoreGeneratorValidator, CoreGeneratorValidatorSync, CoreGenericAccount, CoreGenericAccountSync, CoreGenericRepository, CoreGenericRepositorySync, CoreGlobalPermission, CoreGlobalPermissionSync, CoreGraphQLQuery, CoreGraphQLQueryGroup, CoreGraphQLQueryGroupSync, CoreGraphQLQuerySync, CoreGroup, CoreGroupAction, CoreGroupActionSync, CoreGroupSync, CoreGroupTriggerRule, CoreGroupTriggerRuleSync, CoreIPAddressPool, CoreIPAddressPoolSync, CoreIPPool, CoreIPPoolSync, CoreIPPrefixPool, CoreIPPrefixPoolSync, CoreKeyValue, CoreKeyValueSync, CoreMenu, CoreMenuItem, CoreMenuItemSync, CoreMenuSync, CoreNodeSync, CoreNodeTriggerAttributeMatch, CoreNodeTriggerAttributeMatchSync, CoreNodeTriggerMatch, CoreNodeTriggerMatchSync, CoreNodeTriggerRelationshipMatch, CoreNodeTriggerRelationshipMatchSync, CoreNodeTriggerRule, CoreNodeTriggerRuleSync, CoreNumberPool, CoreNumberPoolSync, CoreObjectComponentTemplate, CoreObjectComponentTemplateSync, CoreObjectPermission, CoreObjectPermissionSync, CoreObjectTemplate, CoreObjectTemplateSync, CoreObjectThread, CoreObjectThreadSync, CorePasswordCredential, CorePasswordCredentialSync, CoreProfile, CoreProfileSync, CoreProposedChange, CoreProposedChangeSync, CoreReadOnlyRepository, CoreReadOnlyRepositorySync, CoreRepository, CoreRepositoryGroup, CoreRepositoryGroupSync, CoreRepositorySync, CoreRepositoryValidator, CoreRepositoryValidatorSync, CoreResourcePool, CoreResourcePoolSync, CoreSchemaCheck, CoreSchemaCheckSync, CoreSchemaValidator, CoreSchemaValidatorSync, CoreStandardCheck, CoreStandardCheckSync, CoreStandardGroup, CoreStandardGroupSync, CoreStandardWebhook, CoreStandardWebhookSync, CoreStaticKeyValue, CoreStaticKeyValueSync, CoreTaskTarget, CoreTaskTargetSync, CoreThread, CoreThreadComment, CoreThreadCommentSync, CoreThreadSync, CoreTransformJinja2, CoreTransformJinja2Sync, CoreTransformPython, CoreTransformPythonSync, CoreTransformation, CoreTransformationSync, CoreTriggerRule, CoreTriggerRuleSync, CoreUserValidator, CoreUserValidatorSync, CoreValidator, CoreValidatorSync, CoreWebhook, CoreWebhookSync, CoreWeightedPoolResource, CoreWeightedPoolResourceSync, InternalAccountToken, InternalAccountTokenSync, InternalExternalIdentity, InternalExternalIdentitySync, InternalIPPrefixAvailable, InternalIPPrefixAvailableSync, InternalIPRangeAvailable, InternalIPRangeAvailableSync, InternalRefreshToken, InternalRefreshTokenSync, IpamNamespace, IpamNamespaceSync, LineageOwner, LineageOwnerSync, LineageSource, LineageSourceSync, ProfileBuiltinIPAddress, ProfileBuiltinIPAddressSync, ProfileBuiltinIPPrefix, ProfileBuiltinIPPrefixSync, ProfileBuiltinTag, ProfileBuiltinTagSync, ProfileIpamNamespace, ProfileIpamNamespaceSync if TYPE_CHECKING: from infrahub_sdk.node import RelatedNode, RelationshipAttribute, RelationshipManager @@ -194,35 +194,6 @@ class NetworkNTPServer(NetworkManagementServer): -class ProfileBuiltinIPAddress(LineageSource, CoreProfile, CoreNode): - description: StringOptional - profile_name: String - profile_priority: Integer - member_of_groups: RelationshipManager[CoreGroup] - related_nodes: RelationshipManager[BuiltinIPAddress] - subscriber_of_groups: RelationshipManager[CoreGroup] - - -class ProfileBuiltinIPPrefix(LineageSource, CoreProfile, CoreNode): - description: StringOptional - is_pool: BooleanOptional - member_type: DropdownOptional - profile_name: String - profile_priority: Integer - member_of_groups: RelationshipManager[CoreGroup] - related_nodes: RelationshipManager[BuiltinIPPrefix] - subscriber_of_groups: RelationshipManager[CoreGroup] - - -class ProfileBuiltinTag(LineageSource, CoreProfile, CoreNode): - description: StringOptional - profile_name: String - profile_priority: Integer - member_of_groups: RelationshipManager[CoreGroup] - related_nodes: RelationshipManager[BuiltinTag] - subscriber_of_groups: RelationshipManager[CoreGroup] - - class ProfileInfraDevice(LineageSource, CoreProfile, CoreNode): description: StringOptional profile_name: String @@ -244,15 +215,6 @@ class ProfileIpamIPAddress(LineageSource, CoreProfile, CoreNode): subscriber_of_groups: RelationshipManager[CoreGroup] -class ProfileIpamNamespace(LineageSource, CoreProfile, CoreNode): - description: StringOptional - profile_name: String - profile_priority: Integer - member_of_groups: RelationshipManager[CoreGroup] - related_nodes: RelationshipManager[IpamNamespace] - subscriber_of_groups: RelationshipManager[CoreGroup] - - class ProfileIpamPrefix(LineageSource, CoreProfile, CoreNode): description: StringOptional is_pool: BooleanOptional diff --git a/tests/fixtures/protocols_generator/user_schema_sync.txt b/tests/fixtures/protocols_generator/user_schema_sync.txt index 57fff057..3cb51add 100644 --- a/tests/fixtures/protocols_generator/user_schema_sync.txt +++ b/tests/fixtures/protocols_generator/user_schema_sync.txt @@ -6,7 +6,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Optional -from infrahub_sdk.protocols import CoreNodeSync, BuiltinIPAddress, BuiltinIPAddressSync, BuiltinIPNamespace, BuiltinIPNamespaceSync, BuiltinIPPrefix, BuiltinIPPrefixSync, BuiltinTag, BuiltinTagSync, CoreAccount, CoreAccountGroup, CoreAccountGroupSync, CoreAccountRole, CoreAccountRoleSync, CoreAccountSync, CoreAction, CoreActionSync, CoreArtifact, CoreArtifactCheck, CoreArtifactCheckSync, CoreArtifactDefinition, CoreArtifactDefinitionSync, CoreArtifactSync, CoreArtifactTarget, CoreArtifactTargetSync, CoreArtifactThread, CoreArtifactThreadSync, CoreArtifactValidator, CoreArtifactValidatorSync, CoreBasePermission, CoreBasePermissionSync, CoreChangeComment, CoreChangeCommentSync, CoreChangeThread, CoreChangeThreadSync, CoreCheck, CoreCheckDefinition, CoreCheckDefinitionSync, CoreCheckSync, CoreComment, CoreCommentSync, CoreCredential, CoreCredentialSync, CoreCustomWebhook, CoreCustomWebhookSync, CoreDataCheck, CoreDataCheckSync, CoreDataValidator, CoreDataValidatorSync, CoreEnvKeyValue, CoreEnvKeyValueSync, CoreFileCheck, CoreFileCheckSync, CoreFileObject, CoreFileObjectSync, CoreFileThread, CoreFileThreadSync, CoreGeneratorAction, CoreGeneratorActionSync, CoreGeneratorAwareGroup, CoreGeneratorAwareGroupSync, CoreGeneratorCheck, CoreGeneratorCheckSync, CoreGeneratorDefinition, CoreGeneratorDefinitionSync, CoreGeneratorGroup, CoreGeneratorGroupSync, CoreGeneratorInstance, CoreGeneratorInstanceSync, CoreGeneratorValidator, CoreGeneratorValidatorSync, CoreGenericAccount, CoreGenericAccountSync, CoreGenericRepository, CoreGenericRepositorySync, CoreGlobalPermission, CoreGlobalPermissionSync, CoreGraphQLQuery, CoreGraphQLQueryGroup, CoreGraphQLQueryGroupSync, CoreGraphQLQuerySync, CoreGroup, CoreGroupAction, CoreGroupActionSync, CoreGroupSync, CoreGroupTriggerRule, CoreGroupTriggerRuleSync, CoreIPAddressPool, CoreIPAddressPoolSync, CoreIPPool, CoreIPPoolSync, CoreIPPrefixPool, CoreIPPrefixPoolSync, CoreKeyValue, CoreKeyValueSync, CoreMenu, CoreMenuItem, CoreMenuItemSync, CoreMenuSync, CoreNodeSync, CoreNodeTriggerAttributeMatch, CoreNodeTriggerAttributeMatchSync, CoreNodeTriggerMatch, CoreNodeTriggerMatchSync, CoreNodeTriggerRelationshipMatch, CoreNodeTriggerRelationshipMatchSync, CoreNodeTriggerRule, CoreNodeTriggerRuleSync, CoreNumberPool, CoreNumberPoolSync, CoreObjectComponentTemplate, CoreObjectComponentTemplateSync, CoreObjectPermission, CoreObjectPermissionSync, CoreObjectTemplate, CoreObjectTemplateSync, CoreObjectThread, CoreObjectThreadSync, CorePasswordCredential, CorePasswordCredentialSync, CoreProfile, CoreProfileSync, CoreProposedChange, CoreProposedChangeSync, CoreReadOnlyRepository, CoreReadOnlyRepositorySync, CoreRepository, CoreRepositoryGroup, CoreRepositoryGroupSync, CoreRepositorySync, CoreRepositoryValidator, CoreRepositoryValidatorSync, CoreResourcePool, CoreResourcePoolSync, CoreSchemaCheck, CoreSchemaCheckSync, CoreSchemaValidator, CoreSchemaValidatorSync, CoreStandardCheck, CoreStandardCheckSync, CoreStandardGroup, CoreStandardGroupSync, CoreStandardWebhook, CoreStandardWebhookSync, CoreStaticKeyValue, CoreStaticKeyValueSync, CoreTaskTarget, CoreTaskTargetSync, CoreThread, CoreThreadComment, CoreThreadCommentSync, CoreThreadSync, CoreTransformJinja2, CoreTransformJinja2Sync, CoreTransformPython, CoreTransformPythonSync, CoreTransformation, CoreTransformationSync, CoreTriggerRule, CoreTriggerRuleSync, CoreUserValidator, CoreUserValidatorSync, CoreValidator, CoreValidatorSync, CoreWebhook, CoreWebhookSync, CoreWeightedPoolResource, CoreWeightedPoolResourceSync, InternalAccountToken, InternalAccountTokenSync, InternalExternalIdentity, InternalExternalIdentitySync, InternalIPPrefixAvailable, InternalIPPrefixAvailableSync, InternalIPRangeAvailable, InternalIPRangeAvailableSync, InternalRefreshToken, InternalRefreshTokenSync, IpamNamespace, IpamNamespaceSync, LineageOwner, LineageOwnerSync, LineageSource, LineageSourceSync +from infrahub_sdk.protocols import CoreNodeSync, BuiltinIPAddress, BuiltinIPAddressSync, BuiltinIPNamespace, BuiltinIPNamespaceSync, BuiltinIPPrefix, BuiltinIPPrefixSync, BuiltinTag, BuiltinTagSync, CoreAccount, CoreAccountGroup, CoreAccountGroupSync, CoreAccountRole, CoreAccountRoleSync, CoreAccountSync, CoreAction, CoreActionSync, CoreArtifact, CoreArtifactCheck, CoreArtifactCheckSync, CoreArtifactDefinition, CoreArtifactDefinitionSync, CoreArtifactSync, CoreArtifactTarget, CoreArtifactTargetSync, CoreArtifactThread, CoreArtifactThreadSync, CoreArtifactValidator, CoreArtifactValidatorSync, CoreBasePermission, CoreBasePermissionSync, CoreChangeComment, CoreChangeCommentSync, CoreChangeThread, CoreChangeThreadSync, CoreCheck, CoreCheckDefinition, CoreCheckDefinitionSync, CoreCheckSync, CoreComment, CoreCommentSync, CoreCredential, CoreCredentialSync, CoreCustomWebhook, CoreCustomWebhookSync, CoreDataCheck, CoreDataCheckSync, CoreDataValidator, CoreDataValidatorSync, CoreEnvKeyValue, CoreEnvKeyValueSync, CoreFileCheck, CoreFileCheckSync, CoreFileObject, CoreFileObjectSync, CoreFileThread, CoreFileThreadSync, CoreGeneratorAction, CoreGeneratorActionSync, CoreGeneratorAwareGroup, CoreGeneratorAwareGroupSync, CoreGeneratorCheck, CoreGeneratorCheckSync, CoreGeneratorDefinition, CoreGeneratorDefinitionSync, CoreGeneratorGroup, CoreGeneratorGroupSync, CoreGeneratorInstance, CoreGeneratorInstanceSync, CoreGeneratorValidator, CoreGeneratorValidatorSync, CoreGenericAccount, CoreGenericAccountSync, CoreGenericRepository, CoreGenericRepositorySync, CoreGlobalPermission, CoreGlobalPermissionSync, CoreGraphQLQuery, CoreGraphQLQueryGroup, CoreGraphQLQueryGroupSync, CoreGraphQLQuerySync, CoreGroup, CoreGroupAction, CoreGroupActionSync, CoreGroupSync, CoreGroupTriggerRule, CoreGroupTriggerRuleSync, CoreIPAddressPool, CoreIPAddressPoolSync, CoreIPPool, CoreIPPoolSync, CoreIPPrefixPool, CoreIPPrefixPoolSync, CoreKeyValue, CoreKeyValueSync, CoreMenu, CoreMenuItem, CoreMenuItemSync, CoreMenuSync, CoreNodeSync, CoreNodeTriggerAttributeMatch, CoreNodeTriggerAttributeMatchSync, CoreNodeTriggerMatch, CoreNodeTriggerMatchSync, CoreNodeTriggerRelationshipMatch, CoreNodeTriggerRelationshipMatchSync, CoreNodeTriggerRule, CoreNodeTriggerRuleSync, CoreNumberPool, CoreNumberPoolSync, CoreObjectComponentTemplate, CoreObjectComponentTemplateSync, CoreObjectPermission, CoreObjectPermissionSync, CoreObjectTemplate, CoreObjectTemplateSync, CoreObjectThread, CoreObjectThreadSync, CorePasswordCredential, CorePasswordCredentialSync, CoreProfile, CoreProfileSync, CoreProposedChange, CoreProposedChangeSync, CoreReadOnlyRepository, CoreReadOnlyRepositorySync, CoreRepository, CoreRepositoryGroup, CoreRepositoryGroupSync, CoreRepositorySync, CoreRepositoryValidator, CoreRepositoryValidatorSync, CoreResourcePool, CoreResourcePoolSync, CoreSchemaCheck, CoreSchemaCheckSync, CoreSchemaValidator, CoreSchemaValidatorSync, CoreStandardCheck, CoreStandardCheckSync, CoreStandardGroup, CoreStandardGroupSync, CoreStandardWebhook, CoreStandardWebhookSync, CoreStaticKeyValue, CoreStaticKeyValueSync, CoreTaskTarget, CoreTaskTargetSync, CoreThread, CoreThreadComment, CoreThreadCommentSync, CoreThreadSync, CoreTransformJinja2, CoreTransformJinja2Sync, CoreTransformPython, CoreTransformPythonSync, CoreTransformation, CoreTransformationSync, CoreTriggerRule, CoreTriggerRuleSync, CoreUserValidator, CoreUserValidatorSync, CoreValidator, CoreValidatorSync, CoreWebhook, CoreWebhookSync, CoreWeightedPoolResource, CoreWeightedPoolResourceSync, InternalAccountToken, InternalAccountTokenSync, InternalExternalIdentity, InternalExternalIdentitySync, InternalIPPrefixAvailable, InternalIPPrefixAvailableSync, InternalIPRangeAvailable, InternalIPRangeAvailableSync, InternalRefreshToken, InternalRefreshTokenSync, IpamNamespace, IpamNamespaceSync, LineageOwner, LineageOwnerSync, LineageSource, LineageSourceSync, ProfileBuiltinIPAddress, ProfileBuiltinIPAddressSync, ProfileBuiltinIPPrefix, ProfileBuiltinIPPrefixSync, ProfileBuiltinTag, ProfileBuiltinTagSync, ProfileIpamNamespace, ProfileIpamNamespaceSync if TYPE_CHECKING: from infrahub_sdk.node import RelatedNodeSync, RelationshipAttributeSync, RelationshipManagerSync @@ -194,35 +194,6 @@ class NetworkNTPServer(NetworkManagementServer): -class ProfileBuiltinIPAddress(LineageSource, CoreProfileSync, CoreNodeSync): - description: StringOptional - profile_name: String - profile_priority: Integer - member_of_groups: RelationshipManagerSync[CoreGroupSync] - related_nodes: RelationshipManagerSync[BuiltinIPAddressSync] - subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] - - -class ProfileBuiltinIPPrefix(LineageSource, CoreProfileSync, CoreNodeSync): - description: StringOptional - is_pool: BooleanOptional - member_type: DropdownOptional - profile_name: String - profile_priority: Integer - member_of_groups: RelationshipManagerSync[CoreGroupSync] - related_nodes: RelationshipManagerSync[BuiltinIPPrefixSync] - subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] - - -class ProfileBuiltinTag(LineageSource, CoreProfileSync, CoreNodeSync): - description: StringOptional - profile_name: String - profile_priority: Integer - member_of_groups: RelationshipManagerSync[CoreGroupSync] - related_nodes: RelationshipManagerSync[BuiltinTagSync] - subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] - - class ProfileInfraDevice(LineageSource, CoreProfileSync, CoreNodeSync): description: StringOptional profile_name: String @@ -244,15 +215,6 @@ class ProfileIpamIPAddress(LineageSource, CoreProfileSync, CoreNodeSync): subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] -class ProfileIpamNamespace(LineageSource, CoreProfileSync, CoreNodeSync): - description: StringOptional - profile_name: String - profile_priority: Integer - member_of_groups: RelationshipManagerSync[CoreGroupSync] - related_nodes: RelationshipManagerSync[IpamNamespaceSync] - subscriber_of_groups: RelationshipManagerSync[CoreGroupSync] - - class ProfileIpamPrefix(LineageSource, CoreProfileSync, CoreNodeSync): description: StringOptional is_pool: BooleanOptional