diff --git a/.vale/styles/Infrahub/branded-terms-case-swap.yml b/.vale/styles/Infrahub/branded-terms-case-swap.yml index 24b7db60..5fac9b9f 100644 --- a/.vale/styles/Infrahub/branded-terms-case-swap.yml +++ b/.vale/styles/Infrahub/branded-terms-case-swap.yml @@ -6,9 +6,31 @@ ignorecase: false action: name: replace swap: - (?i:[^/]Github): GitHub - (?i:gitpod): GitPod - (?i:[^/]Graphql): GraphQL + (?:ansible): Ansible + (?:[^"]docker): Docker + (?:[Dd]ockerhub): DockerHub + (?:[^/][Gg]ithub): GitHub + (?:[Gg]itlab): GitLab + (?:gitpod): GitPod + (?:grafana): Grafana + (?:[^/][Gg]raphql): GraphQL + (?:[Ii]nflux[Dd]b): InfluxDB infrahub(?:\s|$): Infrahub - (?i:Openconfig): OpenConfig + (?:jinja2): Jinja2 + (?:k3s): K3s + (?:k8s): K8s + (?:kubernetes): Kubernetes + (?:[^/][Mm]y[Ss]ql): MySQL + (?:neo4j): Neo4j + (?:[^/][Nn]ginx): NGINX + (?:[Nn]odejs): Node.js + (?:[^/][Oo]penapi): OpenAPI + (?:Openconfig): OpenConfig opsmill(?:\s|$): OpsMill + (?:[Pp]ostgre[Ss]ql): PostgreSQL + (?:[^/]prometheus): Prometheus + (?:[^/-]python): Python + (?:[Rr]abbitmq): RabbitMQ + (?:[^/]terraform): Terraform + (?:ubuntu): Ubuntu + (?:[Vv]s\W?[Cc]ode): VS Code diff --git a/changelog/+docs-tasks.housekeeping.md b/changelog/+docs-tasks.housekeeping.md new file mode 100644 index 00000000..84ed59da --- /dev/null +++ b/changelog/+docs-tasks.housekeeping.md @@ -0,0 +1 @@ +Add `invoke lint-doc` command to help run the docs linters locally \ No newline at end of file diff --git a/changelog/+guide-typing.added.md b/changelog/+guide-typing.added.md new file mode 100644 index 00000000..e2fa4b89 --- /dev/null +++ b/changelog/+guide-typing.added.md @@ -0,0 +1 @@ +Add a Guide related to Python Typing \ No newline at end of file diff --git a/changelog/+protocol-sync.fixed.md b/changelog/+protocol-sync.fixed.md new file mode 100644 index 00000000..52aea2e2 --- /dev/null +++ b/changelog/+protocol-sync.fixed.md @@ -0,0 +1 @@ +Fix support for Sync when generating Python Protocols \ No newline at end of file diff --git a/changelog/329.added.md b/changelog/329.added.md new file mode 100644 index 00000000..6f03f404 --- /dev/null +++ b/changelog/329.added.md @@ -0,0 +1 @@ +Add support for object Template when generating protocols \ No newline at end of file diff --git a/docs/docs/python-sdk/guides/python-typing.mdx b/docs/docs/python-sdk/guides/python-typing.mdx new file mode 100644 index 00000000..e65e32e8 --- /dev/null +++ b/docs/docs/python-sdk/guides/python-typing.mdx @@ -0,0 +1,103 @@ +--- +title: Strict Typing in Python +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Overview + +This guide explains how to use Python's type system effectively with the Infrahub SDK, focusing on the use of Protocols for type-safe development. + +:::note What is Python Typing + +Python typing allows you to specify the expected data types of variables, function arguments, and return values to improve code clarity and catch bugs early. + +```python +# Basic type hints +def percentage(num1: int, num2: int) -> float: + return (num1 / num2) * 100 +``` + +::: + +## Leveraging Python protocols + +The Python SDK for Infrahub has been designed to automatically work with any schemas loaded into Infrahub. +Internally, the Python SDK generates dynamic Python representations of your schemas. + +While this approach improves code readability, it presents challenges with type checking because each object has a different signature based on your schema. + +### Without protocols + +In the example below, type checkers like Mypy will typically complain about `blue_tag.description.value` because `description` is a dynamic parameter generated by the SDK. + +```python +# Type checker cannot verify the existence of 'description' +blue_tag = client.get("BuiltinTag", name__value="blue") # blue_tag is of type InfrahubNode or InfrahubNodeSync +blue_tag.description.value = "The blue tag" # Mypy: error: "InfrahubNode" has no attribute "description" +blue_tag.save() +``` + +### With protocols + +To provide strict type checking while maintaining platform extensibility, the Python SDK integrates with Python Protocols. + +For all core and internal models, the protocols are included in the SDK under `infrahub_sdk.protocols`. +Whenever you need to specify the kind of object you're working with as a string, you can use the corresponding protocol instead. + +```python +from infrahub_sdk.protocols import BuiltinTag + +# Type checker can now verify all attributes +blue_tag = client.get(BuiltinTag, name__value="blue") # blue_tag is of type BuiltinTag +blue_tag.description.value = "The blue tag" # No type errors +blue_tag.save() +``` + +:::note Python Protocols + +Python Protocols, introduced in PEP 544, define a set of method and property signatures that a class must implement to be considered a match, enabling structural subtyping (also known as "duck typing" with static checks). They allow you to specify behavior without requiring inheritance, making code more flexible and type-safe. + +More information about Python Protocols can be found [here](https://typing.python.org/en/latest/spec/protocol.html) + +::: + +## Generating custom protocols based on your schema + +You can generate Python Protocols for your own models using the `infrahubctl protocols` command. This supports both synchronous and asynchronous Python code. + +It's possible to provide the schema from a local directory or from an existing Infrahub Instance. + + + + + ```shell + export INFRAHUB_ADDRESS=https://infrahub.example.com + infrahubctl protocols --out lib/protocols.py --sync + ``` + + + + + ```shell + infrahubctl protocols --schemas schemas/tag.schema.yml --out lib/protocols.py + ``` + + + + +> When using a local directory, Protocols for Profiles and Object Templates won't be generated. + +## Using custom protocols + +After generation, you can import and use your custom protocols as describe below. + +```python +from lib.protocols import MyOwnObject + +# Use your custom protocol +my_object = client.get(MyOwnObject, name__value="example") +``` + +> if you don't have your own Python module, it's possible to use relative path by having the `procotols.py` in the same directory as your script/transform/generator diff --git a/docs/sidebars-python-sdk.ts b/docs/sidebars-python-sdk.ts index 7cde4058..354c9006 100644 --- a/docs/sidebars-python-sdk.ts +++ b/docs/sidebars-python-sdk.ts @@ -21,6 +21,7 @@ const sidebars: SidebarsConfig = { 'guides/branches', 'guides/store', 'guides/tracking', + 'guides/python-typing', 'guides/batch', 'guides/object-storage', 'guides/resource-manager', diff --git a/infrahub_sdk/ctl/cli_commands.py b/infrahub_sdk/ctl/cli_commands.py index 0d9a850f..f503024e 100644 --- a/infrahub_sdk/ctl/cli_commands.py +++ b/infrahub_sdk/ctl/cli_commands.py @@ -20,7 +20,6 @@ from .. import __version__ as sdk_version from ..async_typer import AsyncTyper -from ..code_generator import CodeGenerator from ..ctl import config from ..ctl.branch import app as branch_app from ..ctl.check import run as run_check @@ -42,6 +41,7 @@ ) from ..ctl.validate import app as validate_app from ..exceptions import GraphQLError, ModuleImportError +from ..protocols_generator.generator import CodeGenerator from ..schema import MainSchemaTypesAll, SchemaRoot from ..template import Jinja2Template from ..template.exceptions import JinjaTemplateError diff --git a/infrahub_sdk/ctl/constants.py b/infrahub_sdk/ctl/constants.py deleted file mode 100644 index 8d797150..00000000 --- a/infrahub_sdk/ctl/constants.py +++ /dev/null @@ -1,115 +0,0 @@ -PROTOCOLS_TEMPLATE = """# -# Generated by "infrahubctl protocols" -# - -from __future__ import annotations - -from typing import TYPE_CHECKING, Optional - -from infrahub_sdk.protocols import CoreNode, {{ base_protocols | join(', ') }} - -if TYPE_CHECKING: - {% if sync %} - from infrahub_sdk.node import RelatedNodeSync, RelationshipManagerSync - {% else %} - from infrahub_sdk.node import RelatedNode, RelationshipManager - {% endif %} - from infrahub_sdk.protocols_base import ( - AnyAttribute, - AnyAttributeOptional, - String, - StringOptional, - Integer, - IntegerOptional, - Boolean, - BooleanOptional, - DateTime, - DateTimeOptional, - Dropdown, - DropdownOptional, - HashedPassword, - HashedPasswordOptional, - MacAddress, - MacAddressOptional, - IPHost, - IPHostOptional, - IPNetwork, - IPNetworkOptional, - JSONAttribute, - JSONAttributeOptional, - ListAttribute, - ListAttributeOptional, - URL, - URLOptional, - ) -{% for generic in generics %} - - -class {{ generic.namespace + generic.name }}(CoreNode): - {% if not generic.attributes|default([]) and not generic.relationships|default([]) %} - pass - {% endif %} - {% for attribute in generic.attributes|default([]) %} - {{ attribute | render_attribute }} - {% endfor %} - {% for relationship in generic.relationships|default([]) %} - {{ relationship | render_relationship(sync) }} - {% endfor %} - {% if generic.hierarchical | default(false) %} - {% if sync %} - parent: RelatedNodeSync - children: RelationshipManagerSync - {% else %} - parent: RelatedNode - children: RelationshipManager - {% endif %} - {% endif %} -{% endfor %} -{% for node in nodes %} - - -class {{ node.namespace + node.name }}({{ node.inherit_from | join(", ") or "CoreNode" }}): - {% if not node.attributes|default([]) and not node.relationships|default([]) %} - pass - {% endif %} - {% for attribute in node.attributes|default([]) %} - {{ attribute | render_attribute }} - {% endfor %} - {% for relationship in node.relationships|default([]) %} - {{ relationship | render_relationship(sync) }} - {% endfor %} - {% if node.hierarchical | default(false) %} - {% if sync %} - parent: RelatedNodeSync - children: RelationshipManagerSync - {% else %} - parent: RelatedNode - children: RelationshipManager - {% endif %} - {% endif %} -{% endfor %} -{% for node in profiles %} - - -class {{ node.namespace + node.name }}({{ node.inherit_from | join(", ") or "CoreNode" }}): - {% if not node.attributes|default([]) and not node.relationships|default([]) %} - pass - {% endif %} - {% for attribute in node.attributes|default([]) %} - {{ attribute | render_attribute }} - {% endfor %} - {% for relationship in node.relationships|default([]) %} - {{ relationship | render_relationship(sync) }} - {% endfor %} - {% if node.hierarchical | default(false) %} - {% if sync %} - parent: RelatedNodeSync - children: RelationshipManagerSync - {% else %} - parent: RelatedNode - children: RelationshipManager - {% endif %} - {% endif %} -{% endfor %} - -""" diff --git a/infrahub_sdk/protocols_generator/__init__.py b/infrahub_sdk/protocols_generator/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/infrahub_sdk/protocols_generator/constants.py b/infrahub_sdk/protocols_generator/constants.py new file mode 100644 index 00000000..d0bdb076 --- /dev/null +++ b/infrahub_sdk/protocols_generator/constants.py @@ -0,0 +1,28 @@ +TEMPLATE_FILE_NAME = "template.j2" + +ATTRIBUTE_KIND_MAP = { + "ID": "String", + "Text": "String", + "TextArea": "String", + "DateTime": "DateTime", + "Email": "String", + "Password": "String", + "HashedPassword": "HashedPassword", + "URL": "URL", + "File": "String", + "MacAddress": "MacAddress", + "Color": "String", + "Dropdown": "Dropdown", + "Number": "Integer", + "Bandwidth": "Integer", + "IPHost": "IPHost", + "IPNetwork": "IPNetwork", + "Boolean": "Boolean", + "Checkbox": "Boolean", + "List": "ListAttribute", + "JSON": "JSONAttribute", + "Any": "AnyAttribute", +} + +# The order of the classes in the list determines the order of the classes in the generated code +CORE_BASE_CLASS_TO_SYNCIFY = ["CoreProfile", "CoreObjectTemplate", "CoreNode"] diff --git a/infrahub_sdk/code_generator.py b/infrahub_sdk/protocols_generator/generator.py similarity index 63% rename from infrahub_sdk/code_generator.py rename to infrahub_sdk/protocols_generator/generator.py index 6dba2433..e6fe0ce3 100644 --- a/infrahub_sdk/code_generator.py +++ b/infrahub_sdk/protocols_generator/generator.py @@ -1,13 +1,12 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any +from pathlib import Path import jinja2 -from . import protocols as sdk_protocols -from .ctl.constants import PROTOCOLS_TEMPLATE -from .schema import ( +from .. import protocols as sdk_protocols +from ..schema import ( AttributeSchemaAPI, GenericSchema, GenericSchemaAPI, @@ -16,31 +15,22 @@ NodeSchemaAPI, ProfileSchemaAPI, RelationshipSchemaAPI, + TemplateSchemaAPI, ) +from .constants import ATTRIBUTE_KIND_MAP, CORE_BASE_CLASS_TO_SYNCIFY, TEMPLATE_FILE_NAME -ATTRIBUTE_KIND_MAP = { - "ID": "String", - "Text": "String", - "TextArea": "String", - "DateTime": "DateTime", - "Email": "String", - "Password": "String", - "HashedPassword": "HashedPassword", - "URL": "URL", - "File": "String", - "MacAddress": "MacAddress", - "Color": "String", - "Dropdown": "Dropdown", - "Number": "Integer", - "Bandwidth": "Integer", - "IPHost": "IPHost", - "IPNetwork": "IPNetwork", - "Boolean": "Boolean", - "Checkbox": "Boolean", - "List": "ListAttribute", - "JSON": "JSONAttribute", - "Any": "AnyAttribute", -} + +def load_template() -> str: + path = Path(__file__).parent / TEMPLATE_FILE_NAME + return path.read_text() + + +def move_to_end_of_list(lst: list, item: str) -> list: + """Move an item to the end of a list if it exists in the list""" + if item in lst: + lst.remove(item) + lst.append(item) + return lst class CodeGenerator: @@ -48,6 +38,7 @@ def __init__(self, schema: dict[str, MainSchemaTypesAll]): self.generics: dict[str, GenericSchemaAPI | GenericSchema] = {} self.nodes: dict[str, NodeSchemaAPI | NodeSchema] = {} self.profiles: dict[str, ProfileSchemaAPI] = {} + self.templates: dict[str, TemplateSchemaAPI] = {} for name, schema_type in schema.items(): if isinstance(schema_type, (GenericSchemaAPI, GenericSchema)): @@ -56,6 +47,8 @@ def __init__(self, schema: dict[str, MainSchemaTypesAll]): self.nodes[name] = schema_type if isinstance(schema_type, ProfileSchemaAPI): self.profiles[name] = schema_type + if isinstance(schema_type, TemplateSchemaAPI): + self.templates[name] = schema_type self.base_protocols = [ e @@ -71,29 +64,49 @@ def __init__(self, schema: dict[str, MainSchemaTypesAll]): self.sorted_profiles = self._sort_and_filter_models( self.profiles, filters=["CoreProfile"] + self.base_protocols ) + self.sorted_templates = self._sort_and_filter_models( + self.templates, filters=["CoreObjectTemplate"] + self.base_protocols + ) def render(self, sync: bool = True) -> str: jinja2_env = jinja2.Environment(loader=jinja2.BaseLoader(), trim_blocks=True, lstrip_blocks=True) - jinja2_env.filters["inheritance"] = self._jinja2_filter_inheritance jinja2_env.filters["render_attribute"] = self._jinja2_filter_render_attribute jinja2_env.filters["render_relationship"] = self._jinja2_filter_render_relationship + jinja2_env.filters["syncify"] = self._jinja2_filter_syncify - template = jinja2_env.from_string(PROTOCOLS_TEMPLATE) + template = jinja2_env.from_string(load_template()) return template.render( generics=self.sorted_generics, nodes=self.sorted_nodes, profiles=self.sorted_profiles, + templates=self.sorted_templates, base_protocols=self.base_protocols, + core_node_name="CoreNodeSync" if sync else "CoreNode", sync=sync, ) @staticmethod - def _jinja2_filter_inheritance(value: dict[str, Any]) -> str: - inherit_from: list[str] = value.get("inherit_from", []) + def _jinja2_filter_syncify(value: str | list, sync: bool = False) -> str | list: + """Filter to help with the convertion to sync + + If a string is provided, append Sync to the end of the string + If a list is provided, search for CoreNode and replace it with CoreNodeSync + """ + if isinstance(value, list): + # Order the list based on the CORE_BASE_CLASS_TO_SYNCIFY list to ensure the base classes are always last + for item in CORE_BASE_CLASS_TO_SYNCIFY: + value = move_to_end_of_list(value, item) + + if not sync: + return value + + if isinstance(value, str): + return f"{value}Sync" + + if isinstance(value, list): + return [f"{item}Sync" if item in CORE_BASE_CLASS_TO_SYNCIFY else item for item in value] - if not inherit_from: - return "CoreNode" - return ", ".join(inherit_from) + return value @staticmethod def _jinja2_filter_render_attribute(value: AttributeSchemaAPI) -> str: diff --git a/infrahub_sdk/protocols_generator/template.j2 b/infrahub_sdk/protocols_generator/template.j2 new file mode 100644 index 00000000..2f4f9e89 --- /dev/null +++ b/infrahub_sdk/protocols_generator/template.j2 @@ -0,0 +1,114 @@ +# +# Generated by "infrahubctl protocols" +# + +from __future__ import annotations + +from typing import TYPE_CHECKING, Optional + +from infrahub_sdk.protocols import {{ "CoreNode" | syncify(sync) }}, {{ base_protocols | join(', ') }} + +if TYPE_CHECKING: + from infrahub_sdk.node import {{ "RelatedNode" | syncify(sync) }}, {{ "RelationshipManager" | syncify(sync) }} + from infrahub_sdk.protocols_base import ( + AnyAttribute, + AnyAttributeOptional, + String, + StringOptional, + Integer, + IntegerOptional, + Boolean, + BooleanOptional, + DateTime, + DateTimeOptional, + Dropdown, + DropdownOptional, + HashedPassword, + HashedPasswordOptional, + MacAddress, + MacAddressOptional, + IPHost, + IPHostOptional, + IPNetwork, + IPNetworkOptional, + JSONAttribute, + JSONAttributeOptional, + ListAttribute, + ListAttributeOptional, + URL, + URLOptional, + ) + +{% for generic in generics %} + +class {{ generic.namespace + generic.name }}({{core_node_name}}): + {% if not generic.attributes|default([]) and not generic.relationships|default([]) %} + pass + {% endif %} + {% for attribute in generic.attributes | sort(attribute='name') | default([]) %} + {{ attribute | render_attribute }} + {% endfor %} + {% for relationship in generic.relationships | sort(attribute='name') | default([]) %} + {{ relationship | render_relationship(sync) }} + {% endfor %} + {% if generic.hierarchical | default(false) %} + parent: {{ "RelatedNode" | syncify(sync) }} + children: {{ "RelationshipManager" | syncify(sync) }} + {% endif %} +{% endfor %} + + +{% for node in nodes %} + +class {{ node.namespace + node.name }}({{ node.inherit_from | syncify(sync) | join(", ") or core_node_name }}): + {% if not node.attributes|default([]) and not node.relationships|default([]) %} + pass + {% endif %} + {% for attribute in node.attributes | sort(attribute='name') | default([]) %} + {{ attribute | render_attribute }} + {% endfor %} + {% for relationship in node.relationships | sort(attribute='name') | default([]) %} + {{ relationship | render_relationship(sync) }} + {% endfor %} + {% if node.hierarchical | default(false) %} + parent: {{ "RelatedNode" | syncify(sync) }} + children: {{ "RelationshipManager" | syncify(sync) }} + {% endif %} + +{% endfor %} + + +{% for node in profiles %} + +class {{ node.namespace + node.name }}({{ node.inherit_from | syncify(sync) | join(", ") or core_node_name }}): + {% if not node.attributes|default([]) and not node.relationships|default([]) %} + pass + {% endif %} + {% for attribute in node.attributes | sort(attribute='name') | default([]) %} + {{ attribute | render_attribute }} + {% endfor %} + {% for relationship in node.relationships | sort(attribute='name') | default([]) %} + {{ relationship | render_relationship(sync) }} + {% endfor %} + {% if node.hierarchical | default(false) %} + parent: {{ "RelatedNode" | syncify(sync) }} + children: {{ "RelationshipManager" | syncify(sync) }} + {% endif %} + +{% endfor %} + + +{% for node in templates %} + +class {{ node.namespace + node.name }}({{ node.inherit_from | syncify(sync) | join(", ") or core_node_name }}): + {% if not node.attributes|default([]) and not node.relationships|default([]) %} + pass + {% endif %} + {% for attribute in node.attributes | sort(attribute='name') | default([]) %} + {{ attribute | render_attribute }} + {% endfor %} + {% for relationship in node.relationships | sort(attribute='name') | default([]) %} + {{ relationship | render_relationship(sync) }} + {% endfor %} + +{% endfor %} \ No newline at end of file diff --git a/infrahub_sdk/schema/repository.py b/infrahub_sdk/schema/repository.py index 275a6ddc..1628fd6d 100644 --- a/infrahub_sdk/schema/repository.py +++ b/infrahub_sdk/schema/repository.py @@ -83,6 +83,7 @@ def load_class(self, import_root: str | None = None, relative_path: str | None = class InfrahubGeneratorDefinitionConfig(InfrahubRepositoryConfigElement): model_config = ConfigDict(extra="forbid") + name: str = Field(..., description="The name of the Generator Definition") file_path: Path = Field(..., description="The file within the repository with the generator code.") query: str = Field(..., description="The GraphQL query to use as input.") @@ -112,6 +113,7 @@ def load_class(self, import_root: str | None = None, relative_path: str | None = class InfrahubPythonTransformConfig(InfrahubRepositoryConfigElement): model_config = ConfigDict(extra="forbid") + name: str = Field(..., description="The name of the Transform") file_path: Path = Field(..., description="The file within the repository with the transform code.") class_name: str = Field(default="Transform", description="The name of the transform class to run.") diff --git a/tasks.py b/tasks.py index b5e00b17..15e004b2 100644 --- a/tasks.py +++ b/tasks.py @@ -1,6 +1,7 @@ import asyncio import sys from pathlib import Path +from shutil import which from typing import Any from invoke import Context, task @@ -11,6 +12,11 @@ MAIN_DIRECTORY_PATH = Path(__file__).parent +def is_tool_installed(name: str) -> bool: + """Check whether `name` is on PATH and marked as executable.""" + return which(name) is not None + + def _generate(context: Context) -> None: """Generate documentation output from code.""" _generate_infrahubctl_documentation(context=context) @@ -165,12 +171,46 @@ def lint_ruff(context: Context) -> None: context.run(exec_cmd) +@task +def lint_markdownlint(context: Context) -> None: + """Run markdownlint to check all markdown files.""" + if not is_tool_installed("markdownlint-cli2"): + print(" - markdownlint-cli2 is not installed, skipping documentation linting") + return + + print(" - Check documentation with markdownlint-cli2") + exec_cmd = "markdownlint-cli2 **/*.{md,mdx} --config .markdownlint.yaml" + with context.cd(MAIN_DIRECTORY_PATH): + context.run(exec_cmd) + + +@task +def lint_vale(context: Context) -> None: + """Run vale to check all documentation files.""" + if not is_tool_installed("vale"): + print(" - vale is not installed, skipping documentation style linting") + return + + print(" - Check documentation style with vale") + exec_cmd = r'vale $(find ./docs -type f \( -name "*.mdx" -o -name "*.md" \))' + with context.cd(MAIN_DIRECTORY_PATH): + context.run(exec_cmd) + + +@task +def lint_docs(context: Context) -> None: + """Run all documentation linters.""" + lint_markdownlint(context) + lint_vale(context) + + @task(name="lint") def lint_all(context: Context) -> None: """Run all linters.""" lint_yaml(context) lint_ruff(context) lint_mypy(context) + lint_docs(context) @task(name="docs-validate") diff --git a/tests/fixtures/schema_05.json b/tests/fixtures/schema_05.json new file mode 100644 index 00000000..193de317 --- /dev/null +++ b/tests/fixtures/schema_05.json @@ -0,0 +1,24557 @@ +{ + "main": "72a3561b868b55a552b7e79762fe379e", + "nodes": [ + { + "id": "1833c77a-3d39-ff5a-3536-c51610a98cb0", + "state": "present", + "name": "MenuItem", + "namespace": "Core", + "description": "Menu Item", + "label": "Menu Item", + "branch": "aware", + "default_filter": null, + "human_friendly_id": [ + "namespace__value", + "name__value" + ], + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": null, + "uniqueness_constraints": [ + [ + "namespace__value", + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "kind", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Kind", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2500, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "required_permissions", + "kind": "List", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Required Permissions", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 7000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "protected", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Protected", + "description": null, + "read_only": true, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 5000, + "default_value": false, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "order_weight", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Order Weight", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 6000, + "default_value": 2000, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "path", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Path", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2500, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "namespace", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "^[A-Z][a-z0-9]+$", + "max_length": null, + "min_length": null, + "label": "Namespace", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "icon", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Icon", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "section", + "kind": "Text", + "enum": [ + "object", + "internal" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Section", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 8000, + "default_value": "object", + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-3e8c-ae7a-353b-c51ee712cf08", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 15000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-3de3-0124-353c-c51bb1a9492a", + "state": "present", + "name": "children", + "peer": "CoreMenu", + "kind": "Hierarchy", + "label": "Children", + "description": null, + "identifier": "parent__child", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 13000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "inbound", + "hierarchical": "CoreMenu", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-3e3b-6cb8-3539-c51dc096c3d8", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 14000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-3d8a-10c0-3536-c51ea9431165", + "state": "present", + "name": "parent", + "peer": "CoreMenu", + "kind": "Hierarchy", + "label": "Parent", + "description": null, + "identifier": "parent__child", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "outbound", + "hierarchical": "CoreMenu", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreMenu" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": "CoreMenu", + "parent": "CoreMenu", + "children": "CoreMenu", + "kind": "CoreMenuItem", + "hash": "2f1ec73b5643a4bcd34ff82e796d0567" + }, + { + "id": "1833c77a-3ee8-b418-3539-c51742553b89", + "state": "present", + "name": "StandardGroup", + "namespace": "Core", + "description": "Group of nodes of any kind.", + "label": "Standard Group", + "branch": "aware", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:account-group", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "group_type", + "kind": "Text", + "enum": [ + "default", + "internal" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Group Type", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 4000, + "default_value": "default", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-3f3c-c2a6-353f-c51f517132c6", + "state": "present", + "name": "parent", + "peer": "CoreGroup", + "kind": "Hierarchy", + "label": "Parent", + "description": null, + "identifier": "parent__child", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "outbound", + "hierarchical": "CoreGroup", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-4047-608e-353f-c51e30d05e00", + "state": "present", + "name": "children", + "peer": "CoreGroup", + "kind": "Hierarchy", + "label": "Children", + "description": null, + "identifier": "parent__child", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "inbound", + "hierarchical": "CoreGroup", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "members", + "peer": "CoreNode", + "kind": "Generic", + "label": "Members", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "subscribers", + "peer": "CoreNode", + "kind": "Generic", + "label": "Subscribers", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreGroup" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": "CoreGroup", + "parent": "CoreGroup", + "children": "CoreGroup", + "kind": "CoreStandardGroup", + "hash": "8321ed82b37a899808beb33fc82961b8" + }, + { + "id": "1833c77a-40ae-6d94-3537-c514fe861005", + "state": "present", + "name": "GeneratorGroup", + "namespace": "Core", + "description": "Group of nodes that are created by a generator.", + "label": "Generator Group", + "branch": "local", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:state-machine", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "local", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "group_type", + "kind": "Text", + "enum": [ + "default", + "internal" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Group Type", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 4000, + "default_value": "default", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-4124-c9b5-353c-c51174b74c0c", + "state": "present", + "name": "parent", + "peer": "CoreGroup", + "kind": "Hierarchy", + "label": "Parent", + "description": null, + "identifier": "parent__child", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "outbound", + "hierarchical": "CoreGroup", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-4181-832d-353b-c51a574b8529", + "state": "present", + "name": "children", + "peer": "CoreGroup", + "kind": "Hierarchy", + "label": "Children", + "description": null, + "identifier": "parent__child", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "inbound", + "hierarchical": "CoreGroup", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "members", + "peer": "CoreNode", + "kind": "Generic", + "label": "Members", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "local", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "subscribers", + "peer": "CoreNode", + "kind": "Generic", + "label": "Subscribers", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "local", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreGroup" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": "CoreGroup", + "parent": "CoreGroup", + "children": "CoreGroup", + "kind": "CoreGeneratorGroup", + "hash": "1e97c61f155d88eb41c5e2b3d1e60334" + }, + { + "id": "1833c77a-41d6-76bc-3535-c5180425d75f", + "state": "present", + "name": "GraphQLQueryGroup", + "namespace": "Core", + "description": "Group of nodes associated with a given GraphQLQuery.", + "label": "GraphQL Query Group", + "branch": "local", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:account-group", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-4227-99bb-3533-c51156d8881b", + "state": "present", + "name": "parameters", + "kind": "JSON", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Parameters", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "local", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "group_type", + "kind": "Text", + "enum": [ + "default", + "internal" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Group Type", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 4000, + "default_value": "default", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-4352-c6c3-3537-c510bc5549c0", + "state": "present", + "name": "children", + "peer": "CoreGroup", + "kind": "Hierarchy", + "label": "Children", + "description": null, + "identifier": "parent__child", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "inbound", + "hierarchical": "CoreGroup", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-427c-4918-3530-c51e4fa5f836", + "state": "present", + "name": "query", + "peer": "CoreGraphQLQuery", + "kind": "Attribute", + "label": "Query", + "description": null, + "identifier": "coregraphqlquery__coregraphqlquerygroup", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "local", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-42d3-5c1c-3533-c51f40e206c0", + "state": "present", + "name": "parent", + "peer": "CoreGroup", + "kind": "Hierarchy", + "label": "Parent", + "description": null, + "identifier": "parent__child", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "outbound", + "hierarchical": "CoreGroup", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "members", + "peer": "CoreNode", + "kind": "Generic", + "label": "Members", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "local", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "subscribers", + "peer": "CoreNode", + "kind": "Generic", + "label": "Subscribers", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "local", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreGroup" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": "CoreGroup", + "parent": "CoreGroup", + "children": "CoreGroup", + "kind": "CoreGraphQLQueryGroup", + "hash": "14ad013a3a1ec9b5fef577123b6cc8de" + }, + { + "id": "1833c77a-43b7-c594-3530-c5130cc33c69", + "state": "present", + "name": "Tag", + "namespace": "Builtin", + "description": "Standard Tag object to attached to other objects to provide some context.", + "label": "Tag", + "branch": "aware", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": true, + "menu_placement": null, + "icon": "mdi:tag-multiple", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-4419-5adc-353a-c51546bbf282", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-447c-3992-3539-c5181626d9a4", + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-44ef-71fd-3531-c51de98672c0", + "state": "present", + "name": "profiles", + "peer": "CoreProfile", + "kind": "Profile", + "label": "Profiles", + "description": null, + "identifier": "node__profile", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 3000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-45a8-4eb2-353a-c51e27d68bee", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-454b-8283-353e-c519a9da6ad2", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 4000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [], + "generate_profile": true, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "BuiltinTag", + "hash": "092aa4b4237ed1c41786a0ad8d55825a" + }, + { + "id": "1833c77a-4627-9cb4-3539-c51c9c496bca", + "state": "present", + "name": "Account", + "namespace": "Core", + "description": "User Account for Infrahub", + "label": "Account", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:account", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "account_type", + "kind": "Text", + "enum": [ + "User", + "Script", + "Bot", + "Git" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Account Type", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": "User", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "status", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "inactive", + "description": "Account is not allowed to login", + "color": "#e74c3c", + "label": "Inactive" + }, + { + "id": null, + "state": "present", + "name": "active", + "description": "Account is allowed to login", + "color": "#52be80", + "label": "Active" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Status", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 6000, + "default_value": "active", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "password", + "kind": "HashedPassword", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Password", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-46da-b5d3-3531-c51c84b19014", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-4686-224b-3536-c514275e41be", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "LineageOwner", + "LineageSource", + "CoreGenericAccount" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreAccount", + "hash": "5d575b012bdd7f411339323659e9b061" + }, + { + "id": "1833c77a-4a8f-9e8f-353c-c51401e47982", + "state": "present", + "name": "PasswordCredential", + "namespace": "Core", + "description": "Username/Password based credential", + "label": "Username / Password", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:key-variant", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-4b51-eb1f-353b-c5148f2bcbc9", + "state": "present", + "name": "password", + "kind": "Password", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Password", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 7000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-4afc-cc44-353e-c513e7c914e5", + "state": "present", + "name": "username", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Username", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 6000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-4bad-3db3-353d-c515ff23ad61", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-4c0e-df31-353f-c51e109202bd", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreCredential" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CorePasswordCredential", + "hash": "eb5dbbe88bc5a8b092001e4b2a149fd4" + }, + { + "id": "1833c77a-4e38-d7c2-3532-c51139f99a47", + "state": "present", + "name": "ProposedChange", + "namespace": "Core", + "description": "Metadata related to a proposed change", + "label": "Proposed Change", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": null, + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:file-replace-outline", + "order_by": null, + "uniqueness_constraints": null, + "documentation": "/topics/proposed-change", + "attributes": [ + { + "id": "1833c77a-4e89-d5f9-353f-c51cb0406c57", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-4edd-a396-353b-c51878cff432", + "state": "present", + "name": "description", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-4fdd-73de-3534-c516fdfec21d", + "state": "present", + "name": "state", + "kind": "Text", + "enum": [ + "open", + "merged", + "merging", + "closed", + "canceled" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "State", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": "open", + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-4f30-71fd-3538-c51f3afdafa5", + "state": "present", + "name": "source_branch", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Source Branch", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-4f85-e8bc-3530-c51063b2aa4b", + "state": "present", + "name": "destination_branch", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Destination Branch", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-52c8-beab-3536-c51885a35c8f", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 13000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-51b7-f198-3539-c51f223c32e3", + "state": "present", + "name": "threads", + "peer": "CoreThread", + "kind": "Component", + "label": "Threads", + "description": null, + "identifier": "proposedchange__thread", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-514e-cacf-353f-c51a74c6590a", + "state": "present", + "name": "comments", + "peer": "CoreChangeComment", + "kind": "Component", + "label": "Comments", + "description": null, + "identifier": "corechangecomment__coreproposedchange", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-50f2-d2b4-3533-c51e63c2c6d7", + "state": "present", + "name": "created_by", + "peer": "CoreGenericAccount", + "kind": "Attribute", + "label": "Created By", + "description": null, + "identifier": "coreaccount__proposedchange_created_by", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 8000, + "optional": true, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5038-b367-353a-c51f1aaf5fdc", + "state": "present", + "name": "approved_by", + "peer": "CoreGenericAccount", + "kind": "Attribute", + "label": "Approved By", + "description": null, + "identifier": "coreaccount__proposedchange_approved_by", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5274-8043-3530-c51ab523f1ed", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5095-135a-353e-c514f52375ac", + "state": "present", + "name": "reviewers", + "peer": "CoreGenericAccount", + "kind": "Attribute", + "label": "Reviewers", + "description": null, + "identifier": "coreaccount__proposedchange_reviewed_by", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-521c-663a-353c-c518fcef9452", + "state": "present", + "name": "validations", + "peer": "CoreValidator", + "kind": "Component", + "label": "Validations", + "description": null, + "identifier": "proposed_change__validator", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreProposedChange", + "hash": "64b842a159c781033b3b61b4e7095240" + }, + { + "id": "1833c77a-5329-0a33-3538-c5162094728f", + "state": "present", + "name": "ChangeThread", + "namespace": "Core", + "description": "A thread on proposed change", + "label": "Change Thread", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": null, + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "created_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "resolved", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Resolved", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": false, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-53d5-801a-3537-c511b5f29629", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-537c-653b-3538-c5102b754683", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Change", + "description": null, + "identifier": "proposedchange__thread", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 4000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_by", + "peer": "CoreGenericAccount", + "kind": "Generic", + "label": "Created By", + "description": null, + "identifier": "thread__account", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 6000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "comments", + "peer": "CoreThreadComment", + "kind": "Component", + "label": "Comments", + "description": null, + "identifier": "thread__threadcomment", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreThread" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreChangeThread", + "hash": "fdd36f63f63afdabc05281dbdd3bb109" + }, + { + "id": "1833c77a-5450-1908-353a-c5169ba02060", + "state": "present", + "name": "FileThread", + "namespace": "Core", + "description": "A thread related to a file on a proposed change", + "label": "Thread - File", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": null, + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "created_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": "1833c77a-5511-cee0-353a-c518d37d97ae", + "state": "present", + "name": "commit", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Commit", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-54ac-b77b-3533-c514e7dac89e", + "state": "present", + "name": "file", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "File", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-5562-d29f-3539-c51ecd11eab2", + "state": "present", + "name": "line_number", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Line Number", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "resolved", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Resolved", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": false, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-55b3-d082-353b-c51232cb20b7", + "state": "present", + "name": "repository", + "peer": "CoreRepository", + "kind": "Generic", + "label": "Repository", + "description": null, + "identifier": "corefilethread__corerepository", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 7000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5662-8aa6-3537-c51cb67c2b01", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-560a-0da8-3531-c5114998bd8b", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Change", + "description": null, + "identifier": "proposedchange__thread", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 4000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_by", + "peer": "CoreGenericAccount", + "kind": "Generic", + "label": "Created By", + "description": null, + "identifier": "thread__account", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 6000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "comments", + "peer": "CoreThreadComment", + "kind": "Component", + "label": "Comments", + "description": null, + "identifier": "thread__threadcomment", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreThread" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreFileThread", + "hash": "b548aa41621c07539408757af6bf93fd" + }, + { + "id": "1833c77a-56c3-9f07-3539-c511b230695f", + "state": "present", + "name": "ArtifactThread", + "namespace": "Core", + "description": "A thread related to an artifact on a proposed change", + "label": "Thread - Artifact", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": null, + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "created_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": "1833c77a-5719-311d-3531-c51443adbf4d", + "state": "present", + "name": "artifact_id", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Artifact Id", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-57c6-e6ad-3530-c519e47feacd", + "state": "present", + "name": "line_number", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Line Number", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-5770-0c4d-3534-c51d377993e0", + "state": "present", + "name": "storage_id", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Storage Id", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "resolved", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Resolved", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": false, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-587e-b21c-3537-c5185fe3e60c", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5822-feb0-353a-c51e11ec8d63", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Change", + "description": null, + "identifier": "proposedchange__thread", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 4000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_by", + "peer": "CoreGenericAccount", + "kind": "Generic", + "label": "Created By", + "description": null, + "identifier": "thread__account", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 6000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "comments", + "peer": "CoreThreadComment", + "kind": "Component", + "label": "Comments", + "description": null, + "identifier": "thread__threadcomment", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreThread" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreArtifactThread", + "hash": "25568e7d372b58c61ad72604a13661ea" + }, + { + "id": "1833c77a-58dd-7e57-3536-c51d63a777c9", + "state": "present", + "name": "ObjectThread", + "namespace": "Core", + "description": "A thread related to an object on a proposed change", + "label": "Thread - Object", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": null, + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "created_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": "1833c77a-593e-d7e4-3536-c5124f35826f", + "state": "present", + "name": "object_path", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Object Path", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "resolved", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Resolved", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": false, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-59fd-4b96-353d-c516cee68b64", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-59a8-1040-3532-c510cac66bb1", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Change", + "description": null, + "identifier": "proposedchange__thread", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 4000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_by", + "peer": "CoreGenericAccount", + "kind": "Generic", + "label": "Created By", + "description": null, + "identifier": "thread__account", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 6000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "comments", + "peer": "CoreThreadComment", + "kind": "Component", + "label": "Comments", + "description": null, + "identifier": "thread__threadcomment", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreThread" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreObjectThread", + "hash": "17251ce1f78adae56ad5a0ddcbe02606" + }, + { + "id": "1833c77a-5a5b-0925-3534-c516db295bde", + "state": "present", + "name": "ChangeComment", + "namespace": "Core", + "description": "A comment on proposed change", + "label": "Change Comment", + "branch": "agnostic", + "default_filter": "text__value", + "human_friendly_id": null, + "display_labels": [ + "text__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "created_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "text", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Text", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-5b64-1bde-3535-c51c9d95a36a", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5aad-4346-3531-c5172defe282", + "state": "present", + "name": "change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Change", + "description": null, + "identifier": "corechangecomment__coreproposedchange", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 3000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5b0e-cbdd-353d-c515ac9db4f5", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_by", + "peer": "CoreGenericAccount", + "kind": "Generic", + "label": "Created By", + "description": null, + "identifier": "comment__account", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 3000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreComment" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreChangeComment", + "hash": "52897a1720a5413cd81847abd563ea00" + }, + { + "id": "1833c77a-5bc0-5f02-353d-c511defa073b", + "state": "present", + "name": "ThreadComment", + "namespace": "Core", + "description": "A comment on thread within a Proposed Change", + "label": "Thread Comment", + "branch": "agnostic", + "default_filter": "text__value", + "human_friendly_id": null, + "display_labels": [ + "text__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "created_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "text", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Text", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-5cc2-e2dc-353b-c517c870aa94", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5c6f-013a-3532-c51d6e688932", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5c1d-b413-3538-c51438879885", + "state": "present", + "name": "thread", + "peer": "CoreThread", + "kind": "Parent", + "label": "Thread", + "description": null, + "identifier": "thread__threadcomment", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 3000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_by", + "peer": "CoreGenericAccount", + "kind": "Generic", + "label": "Created By", + "description": null, + "identifier": "comment__account", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 3000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreComment" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreThreadComment", + "hash": "b250c3a7a4803881d560af1d6718b4f9" + }, + { + "id": "1833c77a-5d1c-411d-3534-c51679ecedb1", + "state": "present", + "name": "Repository", + "namespace": "Core", + "description": "A Git Repository integrated with Infrahub", + "label": "Repository", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:source-repository", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ], + [ + "location__value" + ] + ], + "documentation": "/topics/repository", + "attributes": [ + { + "id": "1833c77a-5dcc-11be-3538-c51dd2c17c20", + "state": "present", + "name": "commit", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Commit", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 7000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-5d76-322e-3536-c51e70c58f79", + "state": "present", + "name": "default_branch", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Default Branch", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 6000, + "default_value": "main", + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "operational_status", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "unknown", + "description": "Status of the repository is unknown and mostlikely because it hasn't been synced yet", + "color": "#9ca3af", + "label": "Unknown" + }, + { + "id": null, + "state": "present", + "name": "online", + "description": "Repository connection is working", + "color": "#86efac", + "label": "Online" + }, + { + "id": null, + "state": "present", + "name": "error-cred", + "description": "Repository can't be synced due to some credential error(s)", + "color": "#f87171", + "label": "Credential Error" + }, + { + "id": null, + "state": "present", + "name": "error-connection", + "description": "Repository can't be synced due to some connectivity error(s)", + "color": "#f87171", + "label": "Connectivity Error" + }, + { + "id": null, + "state": "present", + "name": "error", + "description": "Repository can't be synced due to an unknown error", + "color": "#ef4444", + "label": "Error" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Operational Status", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "internal_status", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "staging", + "description": "Repository was recently added to this branch.", + "color": "#fef08a", + "label": "Staging" + }, + { + "id": null, + "state": "present", + "name": "inactive", + "description": "Repository is not active on this branch.", + "color": "#e5e7eb", + "label": "Inactive" + }, + { + "id": null, + "state": "present", + "name": "active", + "description": "Repository is actively being synced for this branch", + "color": "#86efac", + "label": "Active" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Internal Status", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 7000, + "default_value": "inactive", + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "^[^/]*$", + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "location", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Location", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "sync_status", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "unknown", + "description": "Status of the repository is unknown and mostlikely because it hasn't been synced yet", + "color": "#9ca3af", + "label": "Unknown" + }, + { + "id": null, + "state": "present", + "name": "syncing", + "description": "A sync job is currently running against the repository.", + "color": "#a855f7", + "label": "Syncing" + }, + { + "id": null, + "state": "present", + "name": "in-sync", + "description": "The repository is syncing correctly", + "color": "#60a5fa", + "label": "In Sync" + }, + { + "id": null, + "state": "present", + "name": "error-import", + "description": "Repository import error observed", + "color": "#f87171", + "label": "Import Error" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Sync Status", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 6000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-5e26-2332-353f-c51552b2dfd4", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 15000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5e80-a283-3531-c5106a97e93d", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 16000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "generators", + "peer": "CoreGeneratorDefinition", + "kind": "Generic", + "label": "Generators", + "description": null, + "identifier": "generator_definition__repository", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "checks", + "peer": "CoreCheckDefinition", + "kind": "Generic", + "label": "Checks", + "description": null, + "identifier": "check_definition__repository", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "credential", + "peer": "CoreCredential", + "kind": "Attribute", + "label": "Credential", + "description": null, + "identifier": "gitrepository__credential", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 4000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "tags", + "peer": "BuiltinTag", + "kind": "Attribute", + "label": "Tags", + "description": null, + "identifier": "builtintag__coregenericrepository", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "transformations", + "peer": "CoreTransformation", + "kind": "Generic", + "label": "Transformations", + "description": null, + "identifier": "repository__transformation", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "queries", + "peer": "CoreGraphQLQuery", + "kind": "Generic", + "label": "Queries", + "description": null, + "identifier": "graphql_query__repository", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "LineageOwner", + "LineageSource", + "CoreGenericRepository", + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreRepository", + "hash": "c8bef5f7683b61e0a16f14a60d660eaf" + }, + { + "id": "1833c77a-5ee8-2001-353e-c511ea413495", + "state": "present", + "name": "ReadOnlyRepository", + "namespace": "Core", + "description": "A Git Repository integrated with Infrahub, Git-side will not be updated", + "label": "Read-Only Repository", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:source-repository", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ], + [ + "location__value" + ] + ], + "documentation": "/topics/repository", + "attributes": [ + { + "id": "1833c77a-5f3d-046d-3537-c51020dd49f7", + "state": "present", + "name": "ref", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Ref", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 6000, + "default_value": "main", + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-5f96-55fc-3537-c5141b7a7e6a", + "state": "present", + "name": "commit", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Commit", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 7000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "operational_status", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "unknown", + "description": "Status of the repository is unknown and mostlikely because it hasn't been synced yet", + "color": "#9ca3af", + "label": "Unknown" + }, + { + "id": null, + "state": "present", + "name": "online", + "description": "Repository connection is working", + "color": "#86efac", + "label": "Online" + }, + { + "id": null, + "state": "present", + "name": "error-cred", + "description": "Repository can't be synced due to some credential error(s)", + "color": "#f87171", + "label": "Credential Error" + }, + { + "id": null, + "state": "present", + "name": "error-connection", + "description": "Repository can't be synced due to some connectivity error(s)", + "color": "#f87171", + "label": "Connectivity Error" + }, + { + "id": null, + "state": "present", + "name": "error", + "description": "Repository can't be synced due to an unknown error", + "color": "#ef4444", + "label": "Error" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Operational Status", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "internal_status", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "staging", + "description": "Repository was recently added to this branch.", + "color": "#fef08a", + "label": "Staging" + }, + { + "id": null, + "state": "present", + "name": "inactive", + "description": "Repository is not active on this branch.", + "color": "#e5e7eb", + "label": "Inactive" + }, + { + "id": null, + "state": "present", + "name": "active", + "description": "Repository is actively being synced for this branch", + "color": "#86efac", + "label": "Active" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Internal Status", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 7000, + "default_value": "inactive", + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "^[^/]*$", + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "location", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Location", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "sync_status", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "unknown", + "description": "Status of the repository is unknown and mostlikely because it hasn't been synced yet", + "color": "#9ca3af", + "label": "Unknown" + }, + { + "id": null, + "state": "present", + "name": "syncing", + "description": "A sync job is currently running against the repository.", + "color": "#a855f7", + "label": "Syncing" + }, + { + "id": null, + "state": "present", + "name": "in-sync", + "description": "The repository is syncing correctly", + "color": "#60a5fa", + "label": "In Sync" + }, + { + "id": null, + "state": "present", + "name": "error-import", + "description": "Repository import error observed", + "color": "#f87171", + "label": "Import Error" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Sync Status", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 6000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-6044-ab0e-3536-c51ead510b6e", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 16000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-5fee-15da-353d-c51334ac4291", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 15000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "generators", + "peer": "CoreGeneratorDefinition", + "kind": "Generic", + "label": "Generators", + "description": null, + "identifier": "generator_definition__repository", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "checks", + "peer": "CoreCheckDefinition", + "kind": "Generic", + "label": "Checks", + "description": null, + "identifier": "check_definition__repository", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "credential", + "peer": "CoreCredential", + "kind": "Attribute", + "label": "Credential", + "description": null, + "identifier": "gitrepository__credential", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 4000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "tags", + "peer": "BuiltinTag", + "kind": "Attribute", + "label": "Tags", + "description": null, + "identifier": "builtintag__coregenericrepository", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "transformations", + "peer": "CoreTransformation", + "kind": "Generic", + "label": "Transformations", + "description": null, + "identifier": "repository__transformation", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "queries", + "peer": "CoreGraphQLQuery", + "kind": "Generic", + "label": "Queries", + "description": null, + "identifier": "graphql_query__repository", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "LineageOwner", + "LineageSource", + "CoreGenericRepository", + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreReadOnlyRepository", + "hash": "d87b41f0c784419af06e716923d6eeaf" + }, + { + "id": "1833c77a-60ae-9b02-3537-c51b8a5f9f47", + "state": "present", + "name": "TransformJinja2", + "namespace": "Core", + "description": "A file rendered from a Jinja2 template", + "label": "Transform Jinja2", + "branch": "aware", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:cog-transfer", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": "/topics/transformation", + "attributes": [ + { + "id": "1833c77a-6106-41cf-3538-c51f5a1e3308", + "state": "present", + "name": "template_path", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Template Path", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "timeout", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Timeout", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 4000, + "default_value": 10, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-6166-ddbe-3534-c514f1b30f2f", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-61d1-8e92-353e-c5139ea9ec02", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "repository", + "peer": "CoreGenericRepository", + "kind": "Attribute", + "label": "Repository", + "description": null, + "identifier": "repository__transformation", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "query", + "peer": "CoreGraphQLQuery", + "kind": "Attribute", + "label": "Query", + "description": null, + "identifier": "graphql_query__transformation", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 5000, + "optional": false, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "tags", + "peer": "BuiltinTag", + "kind": "Attribute", + "label": "Tags", + "description": null, + "identifier": "builtintag__coretransformation", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreTransformation" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreTransformJinja2", + "hash": "2cb207fbfb135dfc5519a29634015440" + }, + { + "id": "1833c77a-6234-085e-353a-c5108efd94ca", + "state": "present", + "name": "DataCheck", + "namespace": "Core", + "description": "A check related to some Data", + "label": "Data Check", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": null, + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": "1833c77a-6330-713b-3531-c51b9e721dd8", + "state": "present", + "name": "enriched_conflict_id", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Enriched Conflict Id", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-6288-9a6f-353a-c51d58e112cf", + "state": "present", + "name": "conflicts", + "kind": "JSON", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conflicts", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-62db-6eb2-3536-c51e10d6f379", + "state": "present", + "name": "keep_branch", + "kind": "Text", + "enum": [ + "target", + "source" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Keep Branch", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "message", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Message", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 6000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "kind", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "^[A-Z][a-zA-Z0-9]+$", + "max_length": 32, + "min_length": 3, + "label": "Kind", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "origin", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Origin", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 8000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "severity", + "kind": "Text", + "enum": [ + "success", + "info", + "warning", + "error", + "critical" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Severity", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 7000, + "default_value": "info", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-638c-1725-353c-c515e11f1d5a", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 13000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-63e7-d455-353c-c5129b1d269c", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 14000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "validator", + "peer": "CoreValidator", + "kind": "Parent", + "label": "Validator", + "description": null, + "identifier": "validator__check", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 9000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreCheck" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreDataCheck", + "hash": "b241fc1dca267b2697de22245c79307b" + }, + { + "id": "1833c77a-6450-dae3-3539-c5169d474a5c", + "state": "present", + "name": "StandardCheck", + "namespace": "Core", + "description": "A standard check", + "label": "Standard Check", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": null, + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "message", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Message", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 6000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "kind", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "^[A-Z][a-zA-Z0-9]+$", + "max_length": 32, + "min_length": 3, + "label": "Kind", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "origin", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Origin", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 8000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "severity", + "kind": "Text", + "enum": [ + "success", + "info", + "warning", + "error", + "critical" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Severity", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 7000, + "default_value": "info", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-64b1-1f6b-3530-c5111594b6a7", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-6515-904f-3535-c51833712c93", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "validator", + "peer": "CoreValidator", + "kind": "Parent", + "label": "Validator", + "description": null, + "identifier": "validator__check", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 9000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreCheck" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreStandardCheck", + "hash": "3070cb556ae15bd0e4722128fbe418d7" + }, + { + "id": "1833c77a-658d-55ee-3531-c51d0de6c7b0", + "state": "present", + "name": "SchemaCheck", + "namespace": "Core", + "description": "A check related to the schema", + "label": "Schema Check", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": null, + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": "1833c77a-6646-e600-353a-c51754c4f758", + "state": "present", + "name": "enriched_conflict_id", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Enriched Conflict Id", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-65e7-ee27-353c-c516ffac5e86", + "state": "present", + "name": "conflicts", + "kind": "JSON", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conflicts", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "message", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Message", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 6000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "kind", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "^[A-Z][a-zA-Z0-9]+$", + "max_length": 32, + "min_length": 3, + "label": "Kind", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "origin", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Origin", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 8000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "severity", + "kind": "Text", + "enum": [ + "success", + "info", + "warning", + "error", + "critical" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Severity", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 7000, + "default_value": "info", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-66ef-84ab-353b-c51c6a5c1eab", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 13000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-669c-442b-3533-c5107d162a08", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "validator", + "peer": "CoreValidator", + "kind": "Parent", + "label": "Validator", + "description": null, + "identifier": "validator__check", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 9000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreCheck" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreSchemaCheck", + "hash": "b1586c11a0381025f1158f686f9ebdcf" + }, + { + "id": "1833c77a-675f-f30e-3530-c516c94a8862", + "state": "present", + "name": "FileCheck", + "namespace": "Core", + "description": "A check related to a file in a Git Repository", + "label": "File Check", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": null, + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": "1833c77a-680d-e772-353d-c513b1c449f7", + "state": "present", + "name": "commit", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Commit", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-67bb-e20d-353c-c5145654046a", + "state": "present", + "name": "files", + "kind": "List", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Files", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "message", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Message", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 6000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "kind", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "^[A-Z][a-zA-Z0-9]+$", + "max_length": 32, + "min_length": 3, + "label": "Kind", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "origin", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Origin", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 8000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "severity", + "kind": "Text", + "enum": [ + "success", + "info", + "warning", + "error", + "critical" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Severity", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 7000, + "default_value": "info", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-68c1-2724-353d-c517d74e3191", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 13000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-686b-9b90-3538-c51dde78b08b", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "validator", + "peer": "CoreValidator", + "kind": "Parent", + "label": "Validator", + "description": null, + "identifier": "validator__check", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 9000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreCheck" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreFileCheck", + "hash": "3dc6a5045041680d9e0120468bbe90b8" + }, + { + "id": "1833c77a-6922-53ee-3535-c51c0a5ed41c", + "state": "present", + "name": "ArtifactCheck", + "namespace": "Core", + "description": "A check related to an artifact", + "label": "Artifact Check", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": null, + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": "1833c77a-6a88-d0b8-3530-c51136d3edb2", + "state": "present", + "name": "storage_id", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Storage Id", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-6979-82c7-353a-c5192f6cb9ac", + "state": "present", + "name": "changed", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Changed", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-69ce-17c6-3536-c5196d7ec5ee", + "state": "present", + "name": "checksum", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Checksum", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-6a2b-ba27-3530-c51e93c0cfd1", + "state": "present", + "name": "artifact_id", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Artifact Id", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-6ae5-49e5-3535-c515a5076534", + "state": "present", + "name": "line_number", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Line Number", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "message", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Message", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 6000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "kind", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "^[A-Z][a-zA-Z0-9]+$", + "max_length": 32, + "min_length": 3, + "label": "Kind", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "origin", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Origin", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 8000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "severity", + "kind": "Text", + "enum": [ + "success", + "info", + "warning", + "error", + "critical" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Severity", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 7000, + "default_value": "info", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-6b95-5de7-3531-c51311692025", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 16000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-6b3a-ab7b-353b-c51901e7848a", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 15000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "validator", + "peer": "CoreValidator", + "kind": "Parent", + "label": "Validator", + "description": null, + "identifier": "validator__check", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 9000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreCheck" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreArtifactCheck", + "hash": "30d3b8ac2f26ef35cd1f0fca2e7ebff4" + }, + { + "id": "1833c77a-6bf8-4e07-3535-c5138d578930", + "state": "present", + "name": "GeneratorCheck", + "namespace": "Core", + "description": "A check related to a Generator instance", + "label": "Generator Check", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": null, + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": "1833c77a-6c4d-c737-353f-c519e6ec27c0", + "state": "present", + "name": "instance", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Instance", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "message", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Message", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 6000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "kind", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "^[A-Z][a-zA-Z0-9]+$", + "max_length": 32, + "min_length": 3, + "label": "Kind", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "origin", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Origin", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "created_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Created At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 8000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "severity", + "kind": "Text", + "enum": [ + "success", + "info", + "warning", + "error", + "critical" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Severity", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 7000, + "default_value": "info", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-6ca4-97a9-3535-c51e3bb0e8b7", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-6d01-d88b-353c-c51cdcec1be3", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "validator", + "peer": "CoreValidator", + "kind": "Parent", + "label": "Validator", + "description": null, + "identifier": "validator__check", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 9000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreCheck" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreGeneratorCheck", + "hash": "954d07e69fa7f2edf51295af5590dcb4" + }, + { + "id": "1833c77a-6d6b-2804-3536-c51395fad49c", + "state": "present", + "name": "DataValidator", + "namespace": "Core", + "description": "A check to validate the data integrity between two branches", + "label": "Data Validator", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "started_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "completed_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Completed At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "state", + "kind": "Text", + "enum": [ + "queued", + "in_progress", + "completed" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "State", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": "queued", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "started_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Started At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-6e57-60d6-353f-c5173a6203b2", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-6dd0-c0ce-3537-c51d587c5f02", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "proposed_change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Proposed Change", + "description": null, + "identifier": "proposed_change__validator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "checks", + "peer": "CoreCheck", + "kind": "Component", + "label": "Checks", + "description": null, + "identifier": "validator__check", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreValidator" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreDataValidator", + "hash": "067f31fad6e1d8d0dbfede2f8e7427fb" + }, + { + "id": "1833c77a-6ebc-e836-3530-c51799d8a6bb", + "state": "present", + "name": "RepositoryValidator", + "namespace": "Core", + "description": "A Validator related to a specific repository", + "label": "Repository Validator", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "started_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "completed_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Completed At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "state", + "kind": "Text", + "enum": [ + "queued", + "in_progress", + "completed" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "State", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": "queued", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "started_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Started At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-6fcd-59fa-3535-c519f1227150", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-6f6f-a7d0-353d-c51936aecc2b", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-6f18-de0a-353d-c51b86d594c3", + "state": "present", + "name": "repository", + "peer": "CoreGenericRepository", + "kind": "Attribute", + "label": "Repository", + "description": null, + "identifier": "coregenericrepository__corerepositoryvalidator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "proposed_change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Proposed Change", + "description": null, + "identifier": "proposed_change__validator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "checks", + "peer": "CoreCheck", + "kind": "Component", + "label": "Checks", + "description": null, + "identifier": "validator__check", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreValidator" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreRepositoryValidator", + "hash": "9e78b32ed642ef92544760d9eb09f0ed" + }, + { + "id": "1833c77a-7030-55fc-353e-c51aada07976", + "state": "present", + "name": "UserValidator", + "namespace": "Core", + "description": "A Validator related to a user defined checks in a repository", + "label": "User Validator", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "started_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "completed_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Completed At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "state", + "kind": "Text", + "enum": [ + "queued", + "in_progress", + "completed" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "State", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": "queued", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "started_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Started At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-7143-0070-3532-c512eb7e1b15", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-71b2-ca70-353b-c515f77fc553", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-70ec-06a6-3532-c512d9a91316", + "state": "present", + "name": "repository", + "peer": "CoreGenericRepository", + "kind": "Attribute", + "label": "Repository", + "description": null, + "identifier": "coregenericrepository__coreuservalidator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 7000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-708c-fdb6-353d-c51e9371c92c", + "state": "present", + "name": "check_definition", + "peer": "CoreCheckDefinition", + "kind": "Attribute", + "label": "Check Definition", + "description": null, + "identifier": "corecheckdefinition__coreuservalidator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "proposed_change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Proposed Change", + "description": null, + "identifier": "proposed_change__validator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "checks", + "peer": "CoreCheck", + "kind": "Component", + "label": "Checks", + "description": null, + "identifier": "validator__check", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreValidator" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreUserValidator", + "hash": "65baa1d572f0f928fcf166d00e192f69" + }, + { + "id": "1833c77a-7224-5fea-353e-c5119ddd2a61", + "state": "present", + "name": "SchemaValidator", + "namespace": "Core", + "description": "A validator related to the schema", + "label": "Schema Validator", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "started_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "completed_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Completed At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "state", + "kind": "Text", + "enum": [ + "queued", + "in_progress", + "completed" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "State", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": "queued", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "started_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Started At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-72e6-882d-3532-c51397d23261", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-7284-bc88-353f-c51426a9bc0e", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "proposed_change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Proposed Change", + "description": null, + "identifier": "proposed_change__validator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "checks", + "peer": "CoreCheck", + "kind": "Component", + "label": "Checks", + "description": null, + "identifier": "validator__check", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreValidator" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreSchemaValidator", + "hash": "85e18bb6ceafa367b1760d597cf4daf1" + }, + { + "id": "1833c77a-734c-2821-3530-c51949c1d9cf", + "state": "present", + "name": "ArtifactValidator", + "namespace": "Core", + "description": "A validator related to the artifacts", + "label": "Artifact Validator", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "started_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "completed_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Completed At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "state", + "kind": "Text", + "enum": [ + "queued", + "in_progress", + "completed" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "State", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": "queued", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "started_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Started At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-7408-cde9-3534-c514c1ec3f1b", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-73a6-6175-3531-c510e2ffeeed", + "state": "present", + "name": "definition", + "peer": "CoreArtifactDefinition", + "kind": "Attribute", + "label": "Definition", + "description": null, + "identifier": "coreartifactdefinition__coreartifactvalidator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-746f-ec2f-353c-c51589dee50f", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "proposed_change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Proposed Change", + "description": null, + "identifier": "proposed_change__validator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "checks", + "peer": "CoreCheck", + "kind": "Component", + "label": "Checks", + "description": null, + "identifier": "validator__check", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreValidator" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreArtifactValidator", + "hash": "e8e6cbe338021887a9608664c316293e" + }, + { + "id": "1833c77a-74d8-3dc0-353f-c51ff37ab04d", + "state": "present", + "name": "GeneratorValidator", + "namespace": "Core", + "description": "A validator related to generators", + "label": "Generator Validator", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": null, + "display_labels": [ + "label__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": null, + "order_by": [ + "started_at__value" + ], + "uniqueness_constraints": null, + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "completed_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Completed At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "conclusion", + "kind": "Text", + "enum": [ + "unknown", + "failure", + "success" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Conclusion", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": "unknown", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "state", + "kind": "Text", + "enum": [ + "queued", + "in_progress", + "completed" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "State", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": "queued", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "started_at", + "kind": "DateTime", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Started At", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-752f-bcd7-3534-c51d7d13024b", + "state": "present", + "name": "definition", + "peer": "CoreGeneratorDefinition", + "kind": "Attribute", + "label": "Definition", + "description": null, + "identifier": "coregeneratordefinition__coregeneratorvalidator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-75e9-54b9-3532-c51e6d172b34", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-7590-cc55-353e-c5168dac4128", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "proposed_change", + "peer": "CoreProposedChange", + "kind": "Parent", + "label": "Proposed Change", + "description": null, + "identifier": "proposed_change__validator", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "checks", + "peer": "CoreCheck", + "kind": "Component", + "label": "Checks", + "description": null, + "identifier": "validator__check", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "agnostic", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreValidator" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreGeneratorValidator", + "hash": "dee5f753c9c5cce877c46f4062c28f44" + }, + { + "id": "1833c77a-7646-1ef4-3534-c5115fb12abd", + "state": "present", + "name": "CheckDefinition", + "namespace": "Core", + "description": null, + "label": "Check Definition", + "branch": "aware", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:check-all", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-769c-32c3-3539-c51076036b95", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-76ef-6bc6-353c-c51b87478bf6", + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-77b7-f968-353b-c514ebd5bfaa", + "state": "present", + "name": "class_name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Class Name", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-774e-4fc4-3533-c5122f5cf38e", + "state": "present", + "name": "file_path", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "File Path", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7818-fecf-3539-c518dc8f9755", + "state": "present", + "name": "timeout", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Timeout", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 5000, + "default_value": 10, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7876-9401-3537-c5195eedbe81", + "state": "present", + "name": "parameters", + "kind": "JSON", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Parameters", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 6000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-78d6-d59b-353d-c5181466060e", + "state": "present", + "name": "repository", + "peer": "CoreGenericRepository", + "kind": "Attribute", + "label": "Repository", + "description": null, + "identifier": "check_definition__repository", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 7000, + "optional": false, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-792f-84e5-3531-c519d948d14b", + "state": "present", + "name": "query", + "peer": "CoreGraphQLQuery", + "kind": "Attribute", + "label": "Query", + "description": null, + "identifier": "check_definition__graphql_query", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-7abe-ebf7-353b-c51989dbd389", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-798b-a587-3534-c518ecc1321e", + "state": "present", + "name": "targets", + "peer": "CoreGroup", + "kind": "Attribute", + "label": "Targets", + "description": null, + "identifier": "check_definition___group", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-79e7-3813-3536-c51d33ee09b0", + "state": "present", + "name": "tags", + "peer": "BuiltinTag", + "kind": "Attribute", + "label": "Tags", + "description": null, + "identifier": "builtintag__corecheckdefinition", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-7a5e-e9d7-353c-c51209f8f734", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreCheckDefinition", + "hash": "ccd79c897607dea1acf59714597d837f" + }, + { + "id": "1833c77a-7b1e-9dd9-353f-c51fbe90f4cd", + "state": "present", + "name": "TransformPython", + "namespace": "Core", + "description": "A transform function written in Python", + "label": "Transform Python", + "branch": "aware", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:cog-transfer", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": "/topics/transformation", + "attributes": [ + { + "id": "1833c77a-7b7a-552d-353f-c51f78d366a0", + "state": "present", + "name": "file_path", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "File Path", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7bd3-8271-353b-c51fb4e8a305", + "state": "present", + "name": "class_name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Class Name", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "timeout", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Timeout", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 4000, + "default_value": 10, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-7c95-0dce-3534-c51a332dba03", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-7c35-6c09-3539-c5114aedade7", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "repository", + "peer": "CoreGenericRepository", + "kind": "Attribute", + "label": "Repository", + "description": null, + "identifier": "repository__transformation", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "query", + "peer": "CoreGraphQLQuery", + "kind": "Attribute", + "label": "Query", + "description": null, + "identifier": "graphql_query__transformation", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 5000, + "optional": false, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "tags", + "peer": "BuiltinTag", + "kind": "Attribute", + "label": "Tags", + "description": null, + "identifier": "builtintag__coretransformation", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreTransformation" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreTransformPython", + "hash": "24939b3896c8ca208bdd97cc96b45e0d" + }, + { + "id": "1833c77a-7cfc-297a-353e-c5157a7e7c77", + "state": "present", + "name": "GraphQLQuery", + "namespace": "Core", + "description": "A pre-defined GraphQL Query", + "label": "GraphQL Query", + "branch": "aware", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:graphql", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": "/topics/graphql", + "attributes": [ + { + "id": "1833c77a-7f24-72e4-353b-c51d30ab3938", + "state": "present", + "name": "models", + "kind": "List", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Models", + "description": "List of models associated with this query", + "read_only": true, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 6000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7ec8-f5d5-3536-c51a184b7fc7", + "state": "present", + "name": "operations", + "kind": "List", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Operations", + "description": "Operations in use in the query, valid operations: 'query', 'mutation' or 'subscription'", + "read_only": true, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 5000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7e0b-89ce-3531-c51d7e831517", + "state": "present", + "name": "query", + "kind": "TextArea", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Query", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7e67-85a8-3534-c519e63edbc7", + "state": "present", + "name": "variables", + "kind": "JSON", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Variables", + "description": "variables in use in the query", + "read_only": true, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7db3-0cd0-3537-c518e57c4ebe", + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7f84-b384-3535-c510a7a9ef04", + "state": "present", + "name": "depth", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Depth", + "description": "number of nested levels in the query", + "read_only": true, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 7000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7fe4-2640-353d-c51c62544848", + "state": "present", + "name": "height", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Height", + "description": "total number of fields requested in the query", + "read_only": true, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 8000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-7d5a-3adb-353e-c518b97d2c02", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-8040-eb70-3537-c51c28ef60d8", + "state": "present", + "name": "repository", + "peer": "CoreGenericRepository", + "kind": "Attribute", + "label": "Repository", + "description": null, + "identifier": "graphql_query__repository", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-809c-7e25-3536-c519b3757861", + "state": "present", + "name": "tags", + "peer": "BuiltinTag", + "kind": "Attribute", + "label": "Tags", + "description": null, + "identifier": "builtintag__coregraphqlquery", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8153-9e07-3535-c51ab9ada569", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 12000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-80fa-212c-3539-c5148359cdae", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreGraphQLQuery", + "hash": "f6e7dc05e6e9982b8f9d958de64bd350" + }, + { + "id": "1833c77a-81b8-8662-3539-c5125d7a1aee", + "state": "present", + "name": "Artifact", + "namespace": "Core", + "description": null, + "label": "Artifact", + "branch": "local", + "default_filter": "name__value", + "human_friendly_id": null, + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:file-document-outline", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": null, + "documentation": "/topics/artifact", + "attributes": [ + { + "id": "1833c77a-82c7-267f-3537-c51956ca7541", + "state": "present", + "name": "content_type", + "kind": "Text", + "enum": [ + "application/json", + "application/yaml", + "application/xml", + "text/plain", + "text/markdown", + "text/csv", + "image/svg+xml" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Content Type", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "local", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-83df-d7eb-353d-c511c11b47e3", + "state": "present", + "name": "parameters", + "kind": "JSON", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Parameters", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 6000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-8383-32cc-353d-c5101c34db4f", + "state": "present", + "name": "storage_id", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Storage Id", + "description": "ID of the file in the object store", + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 5000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-8213-9900-3532-c51cd140e878", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "local", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-8320-8a9c-3530-c51220af1bbc", + "state": "present", + "name": "checksum", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Checksum", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "local", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-826e-4b43-353c-c51026fc80ad", + "state": "present", + "name": "status", + "kind": "Text", + "enum": [ + "Error", + "Pending", + "Processing", + "Ready" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Status", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "local", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-843a-14d4-3538-c510bfb4d97d", + "state": "present", + "name": "object", + "peer": "CoreArtifactTarget", + "kind": "Attribute", + "label": "Object", + "description": null, + "identifier": "artifact__node", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 7000, + "optional": false, + "branch": "local", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-84e4-3102-3530-c51ac04b9c53", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8555-fa90-3530-c51e3c352dd1", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8490-5f00-3538-c51a01eb24a1", + "state": "present", + "name": "definition", + "peer": "CoreArtifactDefinition", + "kind": "Attribute", + "label": "Definition", + "description": null, + "identifier": "artifact__artifact_definition", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 8000, + "optional": false, + "branch": "local", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreArtifact", + "hash": "9b3370be81ed0925abdd63439ed5bdac" + }, + { + "id": "1833c77a-85b5-4cbf-353b-c5155cc14885", + "state": "present", + "name": "ArtifactDefinition", + "namespace": "Core", + "description": null, + "label": "Artifact Definition", + "branch": "aware", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:file-document-multiple-outline", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": "/topics/artifact", + "attributes": [ + { + "id": "1833c77a-8711-08ed-3536-c51192324c58", + "state": "present", + "name": "parameters", + "kind": "JSON", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Parameters", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-876b-e26a-3539-c5166c1c3ed2", + "state": "present", + "name": "content_type", + "kind": "Text", + "enum": [ + "application/json", + "application/yaml", + "application/xml", + "text/plain", + "text/markdown", + "text/csv", + "image/svg+xml" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Content Type", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 5000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-860b-e657-3533-c519332ce4f9", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-8662-c4f3-3537-c51f9474f797", + "state": "present", + "name": "artifact_name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Artifact Name", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-86ba-259a-3531-c518b487f8fb", + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-87c9-038f-353f-c51e2ccf9977", + "state": "present", + "name": "targets", + "peer": "CoreGroup", + "kind": "Attribute", + "label": "Targets", + "description": null, + "identifier": "artifact_definition___group", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8819-984e-3533-c518396e5b4e", + "state": "present", + "name": "transformation", + "peer": "CoreTransformation", + "kind": "Attribute", + "label": "Transformation", + "description": null, + "identifier": "artifact_definition___transformation", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 7000, + "optional": false, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-88c0-bb6a-3539-c51f5b3bd73a", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-886c-ec56-3537-c51dd46d209a", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreArtifactDefinition", + "hash": "42d3ec80278adbc2d1aba713e4ba4d63" + }, + { + "id": "1833c77a-8919-7a7d-353e-c51cd5a2ebd9", + "state": "present", + "name": "GeneratorDefinition", + "namespace": "Core", + "description": null, + "label": "Generator Definition", + "branch": "aware", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:state-machine", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": "/topics/generator", + "attributes": [ + { + "id": "1833c77a-8b08-b358-353b-c51b8585c0c7", + "state": "present", + "name": "convert_query_response", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Convert Query Response", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 6000, + "default_value": false, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-8ab7-bc75-3531-c51f3f14708f", + "state": "present", + "name": "class_name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Class Name", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 5000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-89bc-b9fe-3531-c5105d71b662", + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-896a-8759-3530-c51f2239f784", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-8a12-0424-353c-c5184c2c018e", + "state": "present", + "name": "parameters", + "kind": "JSON", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Parameters", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-8a67-193a-3538-c518a3e81a97", + "state": "present", + "name": "file_path", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "File Path", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-8b5d-e2a3-3538-c512bb743ae9", + "state": "present", + "name": "query", + "peer": "CoreGraphQLQuery", + "kind": "Attribute", + "label": "Query", + "description": null, + "identifier": "generator_definition__graphql_query", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 7000, + "optional": false, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8bb2-c738-3531-c518af7d96e0", + "state": "present", + "name": "repository", + "peer": "CoreGenericRepository", + "kind": "Attribute", + "label": "Repository", + "description": null, + "identifier": "generator_definition__repository", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 8000, + "optional": false, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8cc1-14f9-3539-c5142a1302f1", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 11000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8c6c-b91c-353d-c51b53164d56", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8c0e-10d9-3533-c5192411847d", + "state": "present", + "name": "targets", + "peer": "CoreGroup", + "kind": "Attribute", + "label": "Targets", + "description": null, + "identifier": "generator_definition___group", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 9000, + "optional": false, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreGeneratorDefinition", + "hash": "f3ca0b7240c9a7448329d3868e29ac43" + }, + { + "id": "1833c77a-8d1e-bf7d-3531-c51159b9cee0", + "state": "present", + "name": "GeneratorInstance", + "namespace": "Core", + "description": null, + "label": "Generator Instance", + "branch": "local", + "default_filter": "name__value", + "human_friendly_id": null, + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:file-document-outline", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": null, + "documentation": "/topics/generator", + "attributes": [ + { + "id": "1833c77a-8d74-ba65-3532-c51f865e18f2", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "local", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-8dce-95d0-3535-c51145a09c14", + "state": "present", + "name": "status", + "kind": "Text", + "enum": [ + "Error", + "Pending", + "Processing", + "Ready" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Status", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "local", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-8e27-737d-353f-c51bb374ab0b", + "state": "present", + "name": "object", + "peer": "CoreNode", + "kind": "Attribute", + "label": "Object", + "description": null, + "identifier": "generator__node", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 3000, + "optional": false, + "branch": "local", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8ecf-67e8-353e-c510b13b2afb", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8e7c-85f8-353d-c5104194a59a", + "state": "present", + "name": "definition", + "peer": "CoreGeneratorDefinition", + "kind": "Attribute", + "label": "Definition", + "description": null, + "identifier": "generator__generator_definition", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 4000, + "optional": false, + "branch": "local", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-8f4d-efff-3538-c5132bac95f3", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreGeneratorInstance", + "hash": "bc12eb9312356efce1a0af2dd5cfefd7" + }, + { + "id": "1833c77a-8faa-3e88-3539-c5111318486f", + "state": "present", + "name": "StandardWebhook", + "namespace": "Core", + "description": "A webhook that connects to an external integration", + "label": "Standard Webhook", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:webhook", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-9001-13b2-3539-c51cc08836d1", + "state": "present", + "name": "shared_key", + "kind": "Password", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Shared Key", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "node_kind", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Node Kind", + "description": "Only send node mutation events for nodes of this kind", + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2250, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "branch_scope", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "other_branches", + "description": "All branches except the default branch", + "color": "#e5e7eb", + "label": "Other Branches" + }, + { + "id": null, + "state": "present", + "name": "default_branch", + "description": "Only the default branch", + "color": "#86efac", + "label": "Default Branch" + }, + { + "id": null, + "state": "present", + "name": "all_branches", + "description": "All branches", + "color": "#fef08a", + "label": "All Branches" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Branch Scope", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": "default_branch", + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "validate_certificates", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Validate Certificates", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": true, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "url", + "kind": "URL", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Url", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2500, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "event_type", + "kind": "Text", + "enum": [ + "all", + "infrahub.branch.created", + "infrahub.branch.deleted", + "infrahub.branch.merged", + "infrahub.branch.rebased", + "infrahub.schema.updated", + "infrahub.node.created", + "infrahub.node.updated", + "infrahub.node.deleted", + "infrahub.group.member_added", + "infrahub.group.member_removed", + "infrahub.repository.update_commit", + "infrahub.artifact.created", + "infrahub.artifact.updated", + "infrahub.validator.started", + "infrahub.validator.passed", + "infrahub.validator.failed" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Event Type", + "description": "The event type that triggers the webhook", + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1500, + "default_value": "all", + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-9053-e21a-3535-c519be0ba2bf", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-90ab-649c-353a-c51a18e69393", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreWebhook", + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreStandardWebhook", + "hash": "d699f53477d74b4d4b3a3d2f5a0b95fc" + }, + { + "id": "1833c77a-9113-6e12-353e-c513932c0680", + "state": "present", + "name": "CustomWebhook", + "namespace": "Core", + "description": "A webhook that connects to an external integration", + "label": "Custom Webhook", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:cog-outline", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "node_kind", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Node Kind", + "description": "Only send node mutation events for nodes of this kind", + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2250, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "branch_scope", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "other_branches", + "description": "All branches except the default branch", + "color": "#e5e7eb", + "label": "Other Branches" + }, + { + "id": null, + "state": "present", + "name": "default_branch", + "description": "Only the default branch", + "color": "#86efac", + "label": "Default Branch" + }, + { + "id": null, + "state": "present", + "name": "all_branches", + "description": "All branches", + "color": "#fef08a", + "label": "All Branches" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Branch Scope", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": "default_branch", + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "validate_certificates", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Validate Certificates", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": true, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "url", + "kind": "URL", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Url", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2500, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "event_type", + "kind": "Text", + "enum": [ + "all", + "infrahub.branch.created", + "infrahub.branch.deleted", + "infrahub.branch.merged", + "infrahub.branch.rebased", + "infrahub.schema.updated", + "infrahub.node.created", + "infrahub.node.updated", + "infrahub.node.deleted", + "infrahub.group.member_added", + "infrahub.group.member_removed", + "infrahub.repository.update_commit", + "infrahub.artifact.created", + "infrahub.artifact.updated", + "infrahub.validator.started", + "infrahub.validator.passed", + "infrahub.validator.failed" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Event Type", + "description": "The event type that triggers the webhook", + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1500, + "default_value": "all", + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-9216-b9a1-3538-c51ef9e16f38", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 10000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-91c2-62cf-3539-c512d2cac1e8", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-916b-5624-3536-c519b5950ec7", + "state": "present", + "name": "transformation", + "peer": "CoreTransformPython", + "kind": "Attribute", + "label": "Transformation", + "description": null, + "identifier": "webhook___transformation", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreWebhook", + "CoreTaskTarget" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreCustomWebhook", + "hash": "dfbab8307e355961197c3c09a2121398" + }, + { + "id": "1833c77a-9273-a2c9-353c-c5182b71726a", + "state": "present", + "name": "Namespace", + "namespace": "Ipam", + "description": "A namespace that segments IPAM", + "label": "IPAM Namespace", + "branch": "aware", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:format-list-group", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-92c9-b521-3538-c5111bb7bf04", + "state": "present", + "name": "default", + "kind": "Boolean", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Default", + "description": null, + "read_only": true, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 9000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-93d5-9a58-3539-c5114915254a", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-9381-5cc1-3534-c51316629713", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-9323-be9b-353e-c511fa8e0e84", + "state": "present", + "name": "profiles", + "peer": "CoreProfile", + "kind": "Profile", + "label": "Profiles", + "description": null, + "identifier": "node__profile", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "ip_prefixes", + "peer": "BuiltinIPPrefix", + "kind": "Generic", + "label": "IP Prefixes", + "description": null, + "identifier": "ip_namespace__ip_prefix", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 3000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "none", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "ip_addresses", + "peer": "BuiltinIPAddress", + "kind": "Generic", + "label": "IP Addresses", + "description": null, + "identifier": "ip_namespace__ip_address", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 4000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "cascade", + "allow_override": "none", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "BuiltinIPNamespace" + ], + "generate_profile": true, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "IpamNamespace", + "hash": "3e64fca1fdc066fc9466a2718dfe043b" + }, + { + "id": "1833c77a-9431-6176-3534-c51c6f95eebd", + "state": "present", + "name": "IPPrefixPool", + "namespace": "Core", + "description": "A pool of IP prefix resources", + "label": "IP Prefix Pool", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:view-grid-outline", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-94d9-553b-3539-c51b217b4a74", + "state": "present", + "name": "default_member_type", + "kind": "Text", + "enum": [ + "prefix", + "address" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Default Member Type", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": "prefix", + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-952e-bf9b-353c-c515c6731c8b", + "state": "present", + "name": "default_prefix_type", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Default Prefix Type", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-9484-2014-353d-c5122f82842a", + "state": "present", + "name": "default_prefix_length", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Default Prefix Length", + "description": "The default prefix length as an integer for prefixes allocated from this pool.", + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-9583-4235-3538-c51a1d4c8376", + "state": "present", + "name": "resources", + "peer": "BuiltinIPPrefix", + "kind": "Attribute", + "label": "Resources", + "description": null, + "identifier": "prefixpool__resource", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-9636-e33c-3534-c51a863df354", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-95e1-7bca-353d-c51de1ecdf59", + "state": "present", + "name": "ip_namespace", + "peer": "BuiltinIPNamespace", + "kind": "Attribute", + "label": "Ip Namespace", + "description": null, + "identifier": "prefixpool__ipnamespace", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 7000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-968c-6d82-353c-c515b45fc046", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreResourcePool", + "LineageSource" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreIPPrefixPool", + "hash": "e347813212c262ed20ef0b2dafcb1822" + }, + { + "id": "1833c77a-96ea-b2cf-3533-c51e1f8ed29a", + "state": "present", + "name": "IPAddressPool", + "namespace": "Core", + "description": "A pool of IP address resources", + "label": "IP Address Pool", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:view-grid-outline", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-979d-92f7-353c-c51f9c18aa6d", + "state": "present", + "name": "default_prefix_length", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Default Prefix Length", + "description": "The default prefix length as an integer for addresses allocated from this pool.", + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-9744-62c5-3537-c515e68647fe", + "state": "present", + "name": "default_address_type", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Default Address Type", + "description": "The object type to create when reserving a resource in the pool", + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-98cf-4955-3535-c515ab3a0a1d", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-9876-7884-353f-c5137c4190d6", + "state": "present", + "name": "ip_namespace", + "peer": "BuiltinIPNamespace", + "kind": "Attribute", + "label": "Ip Namespace", + "description": null, + "identifier": "ipaddresspool__ipnamespace", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 6000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-994b-fda6-3539-c518753ee9eb", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-9817-ebed-3535-c5197862f537", + "state": "present", + "name": "resources", + "peer": "BuiltinIPPrefix", + "kind": "Attribute", + "label": "Resources", + "description": null, + "identifier": "ipaddresspool__resource", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": false, + "branch": "agnostic", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreResourcePool", + "LineageSource" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreIPAddressPool", + "hash": "d8500345652beaa8e02a54ebd2739aaa" + }, + { + "id": "1833c77a-99b3-7836-3530-c51160e36a90", + "state": "present", + "name": "NumberPool", + "namespace": "Core", + "description": "A pool of number resources", + "label": "Number Pool", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:view-grid-outline", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-9ac3-6501-3538-c5106d1d6a7f", + "state": "present", + "name": "start_range", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Start Range", + "description": "The start range for the pool", + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 5000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-9a6d-fa4e-353f-c517448ac9ed", + "state": "present", + "name": "node_attribute", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Node Attribute", + "description": "The attribute of the selected model", + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 4000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-9a16-cb21-3536-c51039a77db3", + "state": "present", + "name": "node", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Node", + "description": "The model of the object that requires integers to be allocated", + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-9b1b-9e4a-3534-c516fc9dc18d", + "state": "present", + "name": "end_range", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "End Range", + "description": "The end range for the pool", + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 6000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-9bca-5e21-3532-c519c9bf8ba1", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-9b74-bdb8-3534-c51cee0a1c4b", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreResourcePool", + "LineageSource" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreNumberPool", + "hash": "f425d4f1258f8dd0eaffcfc584f01773" + }, + { + "id": "1833c77a-9c2b-6ec3-3536-c5194e4d2a91", + "state": "present", + "name": "GlobalPermission", + "namespace": "Core", + "description": "A permission that grants global rights to perform actions in Infrahub", + "label": "Global permission", + "branch": "agnostic", + "default_filter": null, + "human_friendly_id": [ + "action__value", + "decision__value" + ], + "display_labels": [ + "action__value", + "decision__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:user-key", + "order_by": [ + "action__value", + "decision__value" + ], + "uniqueness_constraints": [ + [ + "action__value", + "decision__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-9cdc-1fff-3537-c511d3f94b3a", + "state": "present", + "name": "decision", + "kind": "Number", + "enum": [ + 1, + 2, + 4, + 6 + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Decision", + "description": "Decide to deny or allow the action at a global level", + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": 6, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-9c81-787a-353e-c511f2f0cd7f", + "state": "present", + "name": "action", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "super_admin", + "description": "", + "color": "#ed6a5a", + "label": "Super Admin" + }, + { + "id": null, + "state": "present", + "name": "override_context", + "description": "", + "color": "#f4f1bb", + "label": "Override Context" + }, + { + "id": null, + "state": "present", + "name": "merge_proposed_change", + "description": "", + "color": "#9bc1bc", + "label": "Merge Proposed Change" + }, + { + "id": null, + "state": "present", + "name": "merge_branch", + "description": "", + "color": "#5ca4a9", + "label": "Merge Branch" + }, + { + "id": null, + "state": "present", + "name": "manage_schema", + "description": "", + "color": "#e6ebe0", + "label": "Manage Schema" + }, + { + "id": null, + "state": "present", + "name": "manage_repositories", + "description": "", + "color": "#52489c", + "label": "Manage Repositories" + }, + { + "id": null, + "state": "present", + "name": "manage_permissions", + "description": "", + "color": "#4062bb", + "label": "Manage Permissions" + }, + { + "id": null, + "state": "present", + "name": "manage_accounts", + "description": "", + "color": "#59c3c3", + "label": "Manage Accounts" + }, + { + "id": null, + "state": "present", + "name": "edit_default_branch", + "description": "", + "color": "#56638a", + "label": "Edit Default Branch" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Action", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "identifier", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Identifier", + "description": null, + "read_only": true, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-9d97-0c60-3532-c51a73fc0314", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-9d3b-427d-353c-c513d86e9e9c", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "roles", + "peer": "CoreAccountRole", + "kind": "Attribute", + "label": "Roles", + "description": null, + "identifier": "role__permissions", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 3000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreBasePermission" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreGlobalPermission", + "hash": "c8b55a7344801ae27150b08df2b3aae3" + }, + { + "id": "1833c77a-9e15-83b3-353e-c510b36139c8", + "state": "present", + "name": "ObjectPermission", + "namespace": "Core", + "description": "A permission that grants rights to perform actions on objects", + "label": "Object permission", + "branch": "aware", + "default_filter": null, + "human_friendly_id": [ + "namespace__value", + "name__value", + "action__value", + "decision__value" + ], + "display_labels": [ + "namespace__value", + "name__value", + "action__value", + "decision__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:user-key", + "order_by": [ + "namespace__value", + "name__value", + "action__value", + "decision__value" + ], + "uniqueness_constraints": [ + [ + "namespace__value", + "name__value", + "action__value", + "decision__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-9ecb-af71-3538-c5156efab14c", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 3000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-9e6e-c719-3531-c512d655d423", + "state": "present", + "name": "namespace", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Namespace", + "description": null, + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-9f28-9216-3536-c513ebc0645b", + "state": "present", + "name": "action", + "kind": "Text", + "enum": [ + "any", + "create", + "update", + "delete", + "view" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Action", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 4000, + "default_value": "any", + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c77a-9f86-bbe2-3535-c514d88aeb98", + "state": "present", + "name": "decision", + "kind": "Number", + "enum": [ + 1, + 2, + 4, + 6 + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Decision", + "description": "Decide to deny or allow the action.If allowed, it can be configured for the default branch, any other branches or all branches", + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 5000, + "default_value": 6, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "identifier", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Identifier", + "description": null, + "read_only": true, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "none", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-9fe0-2dab-3539-c51ded8c871f", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-a040-2b66-353d-c51e791b23e4", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "roles", + "peer": "CoreAccountRole", + "kind": "Attribute", + "label": "Roles", + "description": null, + "identifier": "role__permissions", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 3000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "CoreBasePermission" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreObjectPermission", + "hash": "b0b38f562a3b1fc0b2c33f6f04722416" + }, + { + "id": "1833c77a-a0a0-6fee-353a-c51fbf1842f9", + "state": "present", + "name": "AccountRole", + "namespace": "Core", + "description": "A role defines a set of permissions to grant to a group of accounts", + "label": "Account role", + "branch": "aware", + "default_filter": null, + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:user-badge", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c77a-a0f9-5089-353b-c513a5910461", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-a294-3292-3535-c5199e173f19", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-a153-0273-3532-c5191147288c", + "state": "present", + "name": "groups", + "peer": "CoreAccountGroup", + "kind": "Attribute", + "label": "Groups", + "description": null, + "identifier": "role__accountgroups", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 2000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-a1b0-dcd1-3533-c512f63e4b63", + "state": "present", + "name": "permissions", + "peer": "CoreBasePermission", + "kind": "Attribute", + "label": "Permissions", + "description": null, + "identifier": "role__permissions", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 3000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-a20c-356b-353e-c517f9f1aef3", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 4000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [], + "generate_profile": false, + "generate_template": false, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "CoreAccountRole", + "hash": "2c582f0556177f98650ac3d9b67e552f" + }, + { + "id": "1833c77a-a319-f6b6-353f-c51803986e5f", + "state": "present", + "name": "AccountGroup", + "namespace": "Core", + "description": "A group of users to manage common permissions", + "label": "Account group", + "branch": "agnostic", + "default_filter": "name__value", + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:account-group", + "order_by": [ + "name__value" + ], + "uniqueness_constraints": [ + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": null, + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": false, + "unique": true, + "optional": false, + "branch": "agnostic", + "order_weight": 1000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "label", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Label", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 2000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "group_type", + "kind": "Text", + "enum": [ + "default", + "internal" + ], + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Group Type", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 4000, + "default_value": "default", + "inherited": true, + "allow_override": "any", + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "agnostic", + "order_weight": 3000, + "default_value": null, + "inherited": true, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c77a-a3ea-3e0c-353f-c512952f82e9", + "state": "present", + "name": "parent", + "peer": "CoreGroup", + "kind": "Hierarchy", + "label": "Parent", + "description": null, + "identifier": "parent__child", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "outbound", + "hierarchical": "CoreGroup", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-a44f-a9ea-3539-c5132898898a", + "state": "present", + "name": "children", + "peer": "CoreGroup", + "kind": "Hierarchy", + "label": "Children", + "description": null, + "identifier": "parent__child", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "inbound", + "hierarchical": "CoreGroup", + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c77a-a387-a676-3536-c515275655e1", + "state": "present", + "name": "roles", + "peer": "CoreAccountRole", + "kind": "Attribute", + "label": "Roles", + "description": null, + "identifier": "role__accountgroups", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "members", + "peer": "CoreNode", + "kind": "Generic", + "label": "Members", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 5000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": null, + "state": "present", + "name": "subscribers", + "peer": "CoreNode", + "kind": "Generic", + "label": "Subscribers", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 6000, + "optional": true, + "branch": "aware", + "inherited": true, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [ + "LineageOwner", + "LineageSource", + "CoreGroup" + ], + "generate_profile": false, + "generate_template": false, + "hierarchy": "CoreGroup", + "parent": "CoreGroup", + "children": "CoreGroup", + "kind": "CoreAccountGroup", + "hash": "1538f03104a0d68aec4036d053d09839" + }, + { + "id": "1833c7eb-96e5-7b31-3536-c5179bcb2a8c", + "state": "present", + "name": "Device", + "namespace": "Infra", + "description": null, + "label": "Device", + "branch": "aware", + "default_filter": null, + "human_friendly_id": [ + "name__value" + ], + "display_labels": [ + "name__value" + ], + "include_in_menu": true, + "menu_placement": null, + "icon": "gis:search-country", + "order_by": null, + "uniqueness_constraints": [ + [ + "location", + "role__value", + "role_id__value" + ], + [ + "name__value" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c7eb-9ed0-521f-353a-c5104c94cadb", + "state": "present", + "name": "description", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Description", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 2000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c8ff-ae78-59dd-353a-c511c91a4d61", + "state": "present", + "name": "role_id", + "kind": "Number", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Role Id", + "description": "Id of the device for a given role on a given location", + "read_only": false, + "unique": false, + "optional": false, + "branch": "aware", + "order_weight": 1000, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c7eb-9f4b-39d4-353b-c51a4451c6ac", + "state": "present", + "name": "role", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "core", + "description": "", + "color": "#ed6a5a", + "label": "Core" + }, + { + "id": null, + "state": "present", + "name": "aggregation", + "description": "", + "color": "#f4f1bb", + "label": "Aggregation" + }, + { + "id": null, + "state": "present", + "name": "access", + "description": "", + "color": "#9bc1bc", + "label": "Access" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Role", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 3000, + "default_value": "core", + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c7eb-99e1-e016-3534-c511aeb5291f", + "state": "present", + "name": "name", + "kind": "Text", + "enum": null, + "computed_attribute": { + "kind": "Jinja2", + "jinja2_template": "{{ role__value }}{{ '%03d' % role_id__value }}-{{ location__shortname__value }}", + "transform": null + }, + "choices": null, + "regex": null, + "max_length": null, + "min_length": null, + "label": "Name", + "description": null, + "read_only": true, + "unique": true, + "optional": false, + "branch": "aware", + "order_weight": 1300, + "default_value": null, + "inherited": false, + "allow_override": "any", + "deprecation": null + }, + { + "id": "1833c7eb-9fcf-2dc6-353f-c5191cb5c102", + "state": "present", + "name": "status", + "kind": "Dropdown", + "enum": null, + "computed_attribute": null, + "choices": [ + { + "id": null, + "state": "present", + "name": "provisioning", + "description": "", + "color": "#ed6a5a", + "label": "Provisioning" + }, + { + "id": null, + "state": "present", + "name": "maintenance", + "description": "", + "color": "#f4f1bb", + "label": "Maintenance" + }, + { + "id": null, + "state": "present", + "name": "active", + "description": "", + "color": "#9bc1bc", + "label": "Active" + } + ], + "regex": null, + "max_length": null, + "min_length": null, + "label": "Status", + "description": null, + "read_only": false, + "unique": false, + "optional": true, + "branch": "aware", + "order_weight": 4000, + "default_value": "active", + "inherited": false, + "allow_override": "any", + "deprecation": null + } + ], + "relationships": [ + { + "id": "1833c7eb-a048-4f0d-353d-c5118813e40f", + "state": "present", + "name": "location", + "peer": "LocationSite", + "kind": "Generic", + "label": "Location", + "description": null, + "identifier": "infradevice__locationsite", + "cardinality": "one", + "min_count": 1, + "max_count": 1, + "order_weight": 5000, + "optional": false, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c7eb-a58a-6392-3531-c513fb9d4879", + "state": "present", + "name": "profiles", + "peer": "CoreProfile", + "kind": "Profile", + "label": "Profiles", + "description": null, + "identifier": "node__profile", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 7000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c7eb-a511-94d0-3531-c518cbca8b0b", + "state": "present", + "name": "primary_ip", + "peer": "IpamIPAddress", + "kind": "Generic", + "label": "Primary Ip", + "description": null, + "identifier": "infradevice__ipamipaddress", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 6000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c7eb-a60c-fb36-353b-c5165ae31278", + "state": "present", + "name": "member_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Member Of Groups", + "description": null, + "identifier": "group_member", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 8000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833f419-14f9-fdce-3533-c5159faf4c00", + "state": "present", + "name": "object_template", + "peer": "TemplateInfraDevice", + "kind": "Template", + "label": "Object Template", + "description": null, + "identifier": "node__objecttemplate", + "cardinality": "one", + "min_count": 0, + "max_count": 1, + "order_weight": 1, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + }, + { + "id": "1833c7eb-a686-9f05-3538-c516b34611af", + "state": "present", + "name": "subscriber_of_groups", + "peer": "CoreGroup", + "kind": "Group", + "label": "Subscriber Of Groups", + "description": null, + "identifier": "group_subscriber", + "cardinality": "many", + "min_count": 0, + "max_count": 0, + "order_weight": 9000, + "optional": true, + "branch": "aware", + "inherited": false, + "direction": "bidirectional", + "hierarchical": null, + "on_delete": "no-action", + "allow_override": "any", + "read_only": false, + "deprecation": null + } + ], + "inherit_from": [], + "generate_profile": true, + "generate_template": true, + "hierarchy": null, + "parent": null, + "children": null, + "kind": "InfraDevice", + "hash": "16fae1e61f5b7649703410c09e49c1da" + }, + { + "id": "1833c7eb-a704-ce92-3539-c5180e5e6c4c", + "state": "present", + "name": "IPAddress", + "namespace": "Ipam", + "description": "IP Address", + "label": "IP Address", + "branch": "aware", + "default_filter": "address__value", + "human_friendly_id": [ + "address__value", + "ip_namespace__name__value" + ], + "display_labels": [ + "address__value" + ], + "include_in_menu": false, + "menu_placement": null, + "icon": "mdi:ip", + "order_by": [ + "address__value" + ], + "uniqueness_constraints": [ + [ + "ip_namespace", + "address__value" + ], + [ + "address__value", + "ip_namespace" + ] + ], + "documentation": null, + "attributes": [ + { + "id": "1833c7eb-aa0e-bd1f-3534-c51e6254d901", + "state": "present", + "name": "fqdn", + "kind": "Text", + "enum": null, + "computed_attribute": null, + "choices": null, + "regex": "(?=^.{1,253}$)(^(((?!-)[a-zA-Z0-9-]{1,63}(? HTTPXMock: return httpx_mock +@pytest.fixture +async def mock_schema_query_05(httpx_mock: HTTPXMock) -> HTTPXMock: + response_text = (get_fixtures_dir() / "schema_05.json").read_text(encoding="UTF-8") + + httpx_mock.add_response( + method="GET", + url="http://mock/api/schema?branch=main", + json=ujson.loads(response_text), + ) + return httpx_mock + + @pytest.fixture async def mock_rest_api_artifact_definition_generate(httpx_mock: HTTPXMock) -> HTTPXMock: httpx_mock.add_response(method="POST", url=re.compile(r"^http://mock/api/artifact/generate/.*")) diff --git a/tests/unit/sdk/test_protocols_generator.py b/tests/unit/sdk/test_protocols_generator.py new file mode 100644 index 00000000..9eae34b6 --- /dev/null +++ b/tests/unit/sdk/test_protocols_generator.py @@ -0,0 +1,75 @@ +from dataclasses import dataclass + +import pytest + +from infrahub_sdk import InfrahubClient +from infrahub_sdk.protocols_generator.generator import CodeGenerator + + +@dataclass +class SyncifyTestCase: + name: str + sync: bool + input: list[str] + output: list[str] + + +SYNCIFY_TEST_CASES = [ + SyncifyTestCase(name="sync-str", sync=True, input=["CoreNode"], output=["CoreNodeSync"]), + SyncifyTestCase( + name="sync-list", + sync=True, + input=["LineageSource", "CoreNode", "CoreObjectTemplate"], + output=["LineageSource", "CoreObjectTemplateSync", "CoreNodeSync"], + ), + SyncifyTestCase(name="async-str", sync=False, input=["CoreNode"], output=["CoreNode"]), + SyncifyTestCase( + name="async-list", + sync=False, + input=["LineageSource", "CoreNode", "CoreObjectTemplate"], + output=["LineageSource", "CoreObjectTemplate", "CoreNode"], + ), +] + + +@pytest.mark.parametrize( + "test_case", + [pytest.param(tc, id=tc.name) for tc in SYNCIFY_TEST_CASES], +) +async def test_filter_syncify(test_case: SyncifyTestCase): + assert CodeGenerator._jinja2_filter_syncify(value=test_case.input, sync=test_case.sync) == test_case.output + assert CodeGenerator._jinja2_filter_syncify(value=test_case.input, sync=test_case.sync) == test_case.output + + +async def test_generator(client: InfrahubClient, mock_schema_query_05): + schemas = await client.schema.fetch(branch="main") + + code_generator = CodeGenerator(schema=schemas) + sync_protocols = code_generator.render() + + assert "class LocationGeneric(CoreNodeSync)" in sync_protocols + assert "class LocationCountry(LocationGeneric)" in sync_protocols + assert "class TemplateInfraDevice(LineageSource, CoreObjectTemplateSync, CoreNodeSync)" in sync_protocols + + location_site_sync = """ +class LocationSite(LocationGeneric): + description: StringOptional + facility_id: StringOptional + name: String + physical_address: StringOptional + shortname: String + children: RelationshipManagerSync + member_of_groups: RelationshipManagerSync + parent: RelatedNodeSync + profiles: RelationshipManagerSync + servers: RelationshipManagerSync + subscriber_of_groups: RelationshipManagerSync + tags: RelationshipManagerSync +""" + + assert location_site_sync in sync_protocols + + async_protocols = code_generator.render(sync=False) + assert "class LocationGeneric(CoreNode)" in async_protocols + assert "class LocationCountry(LocationGeneric)" in async_protocols + assert "class TemplateInfraDevice(LineageSource, CoreObjectTemplate, CoreNode)" in async_protocols