From f58b35cc6ed0796c9b6491d8ef985d27bb59a900 Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Tue, 10 May 2022 11:48:00 +0200 Subject: [PATCH 01/12] Prototype for typed GQL queries --- code_gen/__init__.py | 0 code_gen/code_gen.py | 160 ++ code_gen/gen/__init__.py | 0 code_gen/gen/saas_files.py | 49 + code_gen/gen/schema.py | 2520 +++++++++++++++++++++++++++ code_gen/gql_queries/saas_files.gql | 10 + code_gen/mapper.py | 35 + code_gen/query_parser.py | 301 ++++ code_gen/requirements.txt | 1 + reconcile/service_dependencies.py | 6 + reconcile/typed_queries.py | 25 + 11 files changed, 3107 insertions(+) create mode 100644 code_gen/__init__.py create mode 100644 code_gen/code_gen.py create mode 100644 code_gen/gen/__init__.py create mode 100644 code_gen/gen/saas_files.py create mode 100644 code_gen/gen/schema.py create mode 100644 code_gen/gql_queries/saas_files.gql create mode 100644 code_gen/mapper.py create mode 100644 code_gen/query_parser.py create mode 100644 code_gen/requirements.txt create mode 100644 reconcile/typed_queries.py diff --git a/code_gen/__init__.py b/code_gen/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/code_gen/code_gen.py b/code_gen/code_gen.py new file mode 100644 index 0000000000..ec4412b1c8 --- /dev/null +++ b/code_gen/code_gen.py @@ -0,0 +1,160 @@ +import os +import requests +from typing import Optional + +from graphql import build_client_schema, get_introspection_query + +from query_parser import ParsedField, ParsedObject, QueryParser +import mapper + + +SPACES = " " + + +def query_schema() -> dict: + query = get_introspection_query() + request = requests.post("http://localhost:4000/graphql", json={"query": query}) + if request.status_code == 200: + return request.json()["data"] + + +schema = query_schema() + +####################### +# SCHEMA PARSER START +####################### + + +def parse_field_type(m: Optional[dict]) -> str: + if not m: + return "" + + kind = m["kind"] + name = m["name"] or "" + if kind == "SCALAR": + name = mapper.primitive_to_python(name) + if kind in ("OBJECT", "INTERFACE"): + name = mapper.class_to_python(name) + sub = parse_field_type(m["ofType"]) or "" + + if kind == "LIST": + return f"list[{name}{sub}]" + return f"{name}{sub}" + + +def write_schema_file(schema: dict, out_file: str): + schema = query_schema() + + lines = [] + types = schema["__schema"]["types"] + + lines.append("# pylint: disable=too-many-lines\n") + lines.append("# pylint: disable=too-many-instance-attributes\n") + lines.append("from __future__ import annotations\n") + lines.append("from dataclasses import dataclass\n") + lines.append("from typing import Optional\n") + + for t in types: + if not t["kind"] in ("OBJECT", "INTERFACE"): + continue + + if t["name"].startswith("__"): + continue + + name = mapper.class_to_python(t["name"]) + lines.append("\n") + lines.append("\n") + lines.append("@dataclass\n") + lines.append(f"class {name}:\n") + for field in t["fields"]: + field_name = mapper.field_to_python(field["name"]) + field_type = parse_field_type(field["type"]) + lines.append(f"{SPACES}{field_name}: Optional[{field_type}] = None\n") + + with open(out_file, "w") as f: + f.writelines(lines) + + +write_schema_file(schema=schema, out_file="code_gen/gen/schema.py") + +####################### +# QUERY PARSER START +####################### + + +def find_query_files() -> list[str]: + return [file for file in os.listdir("code_gen/gql_queries") if file.endswith(".gql")] + + +def is_primitive(name: str) -> bool: + return name in ("int", "str", "bool", "float", "DateTime") + + +def unwrap_list(field: ParsedField, prefix: str, lines: list[str]): + if not field.type.startswith("list["): + return + lines.append("\n") + lines.append("\n") + lines.append( + f"def {prefix}_list_{field.py_name}(data: list[dict[Any, Any]]) -> {field.type}:\n" + ) + lines.append(f"{SPACES}result: {field.type} = []\n") + lines.append(f"{SPACES}for el in data:\n") + lines.append(f"{SPACES}{SPACES}result.append({prefix}_{field.py_name}(el))\n") + lines.append(f"{SPACES}return result\n") + + +def traverse(node: ParsedObject, prefix: str, lines: list[str]): + for field in node.fields: + typ = field.unwrapped_type + unwrap_list(field=field, prefix=prefix, lines=lines) + lines.append("\n") + lines.append("\n") + if is_primitive(typ): + lines.append(f"def {prefix}_{field.py_name}(data: str) -> {typ}:\n") + lines.append(f"{SPACES}return {typ}(data)\n") + else: + lines.append( + f"def {prefix}_{field.py_name}(data: dict[Any, Any]) -> {typ}:\n" + ) + lines.append(f"{SPACES}result: {typ} = {typ}()\n") + for subfield in field.child.fields: + pp = "list_" if subfield.is_list else "" + lines.append( + f'{SPACES}result.{subfield.py_name} = {prefix}_{node.py_name}_{pp}{subfield.py_name}(data=data["{subfield.gql_name}"])\n' + ) + lines.append(f"{SPACES}return result\n") + for child in node.children: + traverse(node=child, prefix=f"{prefix}_{node.py_name}", lines=lines) + + +query_parser = QueryParser(build_client_schema(schema)) + + +def process_query(query: str, out_file: str): + lines: list[str] = [] + query_root = query_parser.parse(query=query) + query_data = query_root.objects[0].children[0] + lines.append("from typing import Any\n") + lines.append("\n") + lines.append("from code_gen.gen.schema import *\n") + lines.append("\n") + lines.append("\n") + lines.append( + f"def data_to_obj(data: dict[Any, Any]) -> {query_data.fields[0].type}:\n" + ) + data_name = query_data.fields[0].gql_name + if query_data.fields[0].is_list: + data_name = f"list_{data_name}" + lines.append( + f'{SPACES}result: {query_data.fields[0].type} = _{data_name}(data=data["{query_data.fields[0].gql_name}"])\n' + ) + lines.append(f"{SPACES}return result\n") + traverse(node=query_data, prefix="", lines=lines) + with open(out_file, "w") as f: + f.writelines(lines) + + +for file in find_query_files(): + with open(f"code_gen/gql_queries/{file}", "r") as f: + process_query(query=f.read(), out_file=f"code_gen/gen/{file[:-3]}py") diff --git a/code_gen/gen/__init__.py b/code_gen/gen/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/code_gen/gen/saas_files.py b/code_gen/gen/saas_files.py new file mode 100644 index 0000000000..3a5d47d9c6 --- /dev/null +++ b/code_gen/gen/saas_files.py @@ -0,0 +1,49 @@ +from typing import Any + +from code_gen.gen.schema import * + + +def data_to_obj(data: dict[Any, Any]) -> list[AppV1]: + result: list[AppV1] = _list_apps_v1(data=data["apps_v1"]) + return result + + +def _list_apps_v1(data: list[dict[Any, Any]]) -> list[AppV1]: + result: list[AppV1] = [] + for el in data: + result.append(_apps_v1(el)) + return result + + +def _apps_v1(data: dict[Any, Any]) -> AppV1: + result: AppV1 = AppV1() + result.saas_files_v2 = _ListSaasFilesV2Data_list_saas_files_v2(data=data["saasFilesV2"]) + return result + + +def _ListSaasFilesV2Data_list_saas_files_v2(data: list[dict[Any, Any]]) -> list[SaasFileV2]: + result: list[SaasFileV2] = [] + for el in data: + result.append(_ListSaasFilesV2Data_saas_files_v2(el)) + return result + + +def _ListSaasFilesV2Data_saas_files_v2(data: dict[Any, Any]) -> SaasFileV2: + result: SaasFileV2 = SaasFileV2() + result.name = _ListSaasFilesV2Data_AppV1_name(data=data["name"]) + result.pipelines_provider = _ListSaasFilesV2Data_AppV1_pipelines_provider(data=data["pipelinesProvider"]) + return result + + +def _ListSaasFilesV2Data_AppV1_name(data: str) -> str: + return str(data) + + +def _ListSaasFilesV2Data_AppV1_pipelines_provider(data: dict[Any, Any]) -> PipelinesProviderV1: + result: PipelinesProviderV1 = PipelinesProviderV1() + result.name = _ListSaasFilesV2Data_AppV1_SaasFileV2_name(data=data["name"]) + return result + + +def _ListSaasFilesV2Data_AppV1_SaasFileV2_name(data: str) -> str: + return str(data) diff --git a/code_gen/gen/schema.py b/code_gen/gen/schema.py new file mode 100644 index 0000000000..6b1c90241e --- /dev/null +++ b/code_gen/gen/schema.py @@ -0,0 +1,2520 @@ +# pylint: disable=too-many-lines +# pylint: disable=too-many-instance-attributes +from __future__ import annotations +from dataclasses import dataclass +from typing import Optional + + +@dataclass +class Query: + app_interface_settings_v1: Optional[list[AppInterfaceSettingsV1]] = None + app_interface_emails_v1: Optional[list[AppInterfaceEmailV1]] = None + app_interface_slack_notifications_v1: Optional[list[AppInterfaceSlackNotificationV1]] = None + credentials_requests_v1: Optional[list[CredentialsRequestV1]] = None + users_v1: Optional[list[UserV1]] = None + external_users_v1: Optional[list[ExternalUserV1]] = None + bots_v1: Optional[list[BotV1]] = None + roles_v1: Optional[list[RoleV1]] = None + permissions_v1: Optional[list[PermissionV1]] = None + awsgroups_v1: Optional[list[AWSGroupV1]] = None + awsaccounts_v1: Optional[list[AWSAccountV1]] = None + clusters_v1: Optional[list[ClusterV1]] = None + kafka_clusters_v1: Optional[list[KafkaClusterV1]] = None + namespaces_v1: Optional[list[NamespaceV1]] = None + gcp_projects_v1: Optional[list[GcpProjectV1]] = None + quay_orgs_v1: Optional[list[QuayOrgV1]] = None + quay_instances_v1: Optional[list[QuayInstanceV1]] = None + jenkins_instances_v1: Optional[list[JenkinsInstanceV1]] = None + jenkins_configs_v1: Optional[list[JenkinsConfigV1]] = None + jira_servers_v1: Optional[list[JiraServerV1]] = None + jira_boards_v1: Optional[list[JiraBoardV1]] = None + sendgrid_accounts_v1: Optional[list[SendGridAccountV1]] = None + products_v1: Optional[list[ProductV1]] = None + environments_v1: Optional[list[EnvironmentV1]] = None + apps_v1: Optional[list[AppV1]] = None + escalation_policies_1: Optional[list[AppEscalationPolicyV1]] = None + resources_v1: Optional[list[ResourceV1]] = None + vault_audit_backends_v1: Optional[list[VaultAuditV1]] = None + vault_auth_backends_v1: Optional[list[VaultAuthV1]] = None + vault_secret_engines_v1: Optional[list[VaultSecretEngineV1]] = None + vault_roles_v1: Optional[list[VaultRoleV1]] = None + vault_policies_v1: Optional[list[VaultPolicyV1]] = None + dependencies_v1: Optional[list[DependencyV1]] = None + githuborg_v1: Optional[list[GithubOrgV1]] = None + gitlabinstance_v1: Optional[list[GitlabInstanceV1]] = None + integrations_v1: Optional[list[IntegrationV1]] = None + documents_v1: Optional[list[DocumentV1]] = None + reports_v1: Optional[list[ReportV1]] = None + sre_checkpoints_v1: Optional[list[SRECheckpointV1]] = None + sentry_teams_v1: Optional[list[SentryTeamV1]] = None + sentry_instances_v1: Optional[list[SentryInstanceV1]] = None + app_interface_sql_queries_v1: Optional[list[AppInterfaceSqlQueryV1]] = None + saas_files_v2: Optional[list[SaasFileV2]] = None + pipelines_providers_v1: Optional[list[PipelinesProviderV1]] = None + unleash_instances_v1: Optional[list[UnleashInstanceV1]] = None + gabi_instances_v1: Optional[list[GabiInstanceV1]] = None + template_tests_v1: Optional[list[TemplateTestV1]] = None + dns_zone_v1: Optional[list[DnsZoneV1]] = None + slack_workspaces_v1: Optional[list[SlackWorkspaceV1]] = None + ocp_release_mirror_v1: Optional[list[OcpReleaseMirrorV1]] = None + slo_document_v1: Optional[list[SLODocumentV1]] = None + shared_resources_v1: Optional[list[SharedResourcesV1]] = None + pagerduty_instances_v1: Optional[list[PagerDutyInstanceV1]] = None + ocm_instances_v1: Optional[list[OpenShiftClusterManagerV1]] = None + dyn_traffic_directors_v1: Optional[list[DynTrafficDirectorV1]] = None + status_page_v1: Optional[list[StatusPageV1]] = None + status_page_component_v1: Optional[list[StatusPageComponentV1]] = None + endpoint_monitoring_provider_v1: Optional[list[EndpointMonitoringProviderV1]] = None + + +@dataclass +class AppInterfaceSettingsV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + vault: Optional[bool] = None + kube_binary: Optional[str] = None + pull_request_gateway: Optional[str] = None + merge_request_gateway: Optional[str] = None + saas_deploy_job_template: Optional[str] = None + hash_length: Optional[int] = None + smtp: Optional[SmtpSettingsV1] = None + github_repo_invites: Optional[GithubRepoInvitesV1] = None + dependencies: Optional[list[AppInterfaceDependencyMappingV1]] = None + credentials: Optional[list[CredentialsRequestMapV1]] = None + sql_query: Optional[SqlQuerySettingsV1] = None + push_gateway_cluster: Optional[ClusterV1] = None + alerting_services: Optional[list[str]] = None + endpoint_monitoring_blackbox_exporter_modules: Optional[list[str]] = None + ldap: Optional[LdapSettingsV1] = None + + +@dataclass +class SmtpSettingsV1: + mail_address: Optional[str] = None + credentials: Optional[VaultSecretV1] = None + + +@dataclass +class VaultSecretV1: + path: Optional[str] = None + field: Optional[str] = None + _format: Optional[str] = None + version: Optional[int] = None + + +@dataclass +class GithubRepoInvitesV1: + credentials: Optional[VaultSecretV1] = None + + +@dataclass +class AppInterfaceDependencyMappingV1: + _type: Optional[str] = None + services: Optional[list[DependencyV1]] = None + + +@dataclass +class DependencyV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + statefulness: Optional[str] = None + ops_model: Optional[str] = None + status_page: Optional[str] = None + _s_l_a: Optional[float] = None + dependency_failure_impact: Optional[str] = None + + +@dataclass +class CredentialsRequestMapV1: + name: Optional[str] = None + secret: Optional[VaultSecretV1] = None + + +@dataclass +class SqlQuerySettingsV1: + image_repository: Optional[str] = None + pull_secret: Optional[NamespaceOpenshiftResourceVaultSecretV1] = None + + +@dataclass +class NamespaceOpenshiftResourceVaultSecretV1: + provider: Optional[str] = None + path: Optional[str] = None + version: Optional[int] = None + name: Optional[str] = None + labels: Optional[dict[str, str]] = None + annotations: Optional[dict[str, str]] = None + _type: Optional[str] = None + validate_alertmanager_config: Optional[bool] = None + alertmanager_config_key: Optional[str] = None + + +@dataclass +class NamespaceOpenshiftResourceV1: + provider: Optional[str] = None + + +@dataclass +class ClusterV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + auth: Optional[ClusterAuthV1] = None + observability_namespace: Optional[NamespaceV1] = None + grafana_url: Optional[str] = None + console_url: Optional[str] = None + kibana_url: Optional[str] = None + prometheus_url: Optional[str] = None + alertmanager_url: Optional[str] = None + server_url: Optional[str] = None + elb_f_q_d_n: Optional[str] = None + managed_groups: Optional[list[str]] = None + managed_cluster_roles: Optional[bool] = None + ocm: Optional[OpenShiftClusterManagerV1] = None + spec: Optional[ClusterSpecV1] = None + external_configuration: Optional[ClusterExternalConfigurationV1] = None + upgrade_policy: Optional[ClusterUpgradePolicyV1] = None + additional_routers: Optional[list[ClusterAdditionalRouterV1]] = None + network: Optional[ClusterNetworkV1] = None + machine_pools: Optional[list[ClusterMachinePoolV1]] = None + peering: Optional[ClusterPeeringV1] = None + addons: Optional[list[ClusterAddonV1]] = None + insecure_skip_t_l_s_verify: Optional[bool] = None + jump_host: Optional[ClusterJumpHostV1] = None + automation_token: Optional[VaultSecretV1] = None + cluster_admin_automation_token: Optional[VaultSecretV1] = None + internal: Optional[bool] = None + disable: Optional[DisableClusterAutomationsV1] = None + aws_infrastructure_access: Optional[list[AWSInfrastructureAccessV1]] = None + aws_infrastructure_management_accounts: Optional[list[AWSInfrastructureManagementAccountV1]] = None + prometheus: Optional[ClusterPrometheusV1] = None + namespaces: Optional[list[NamespaceV1]] = None + + +@dataclass +class ClusterAuthV1: + service: Optional[str] = None + + +@dataclass +class NamespaceV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + delete: Optional[bool] = None + description: Optional[str] = None + grafana_url: Optional[str] = None + cluster: Optional[ClusterV1] = None + app: Optional[AppV1] = None + environment: Optional[EnvironmentV1] = None + limit_ranges: Optional[LimitRangeV1] = None + quota: Optional[ResourceQuotaV1] = None + network_policies_allow: Optional[list[NamespaceV1]] = None + cluster_admin: Optional[bool] = None + managed_roles: Optional[bool] = None + managed_resource_types: Optional[list[str]] = None + managed_resource_type_overrides: Optional[list[NamespaceManagedResourceTypeOverridesV1]] = None + managed_resource_names: Optional[list[NamespaceManagedResourceNamesV1]] = None + shared_resources: Optional[list[SharedResourcesV1]] = None + openshift_resources: Optional[list[NamespaceOpenshiftResourceV1]] = None + managed_terraform_resources: Optional[bool] = None + terraform_resources: Optional[list[NamespaceTerraformResourceV1]] = None + openshift_service_account_tokens: Optional[list[ServiceAccountTokenSpecV1]] = None + kafka_cluster: Optional[KafkaClusterV1] = None + + +@dataclass +class AppV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + onboarding_status: Optional[str] = None + grafana_urls: Optional[list[GrafanaDashboardUrlsV1]] = None + sops_url: Optional[str] = None + architecture_document: Optional[str] = None + parent_app: Optional[AppV1] = None + service_docs: Optional[list[str]] = None + service_owners: Optional[list[OwnerV1]] = None + service_notifications: Optional[list[OwnerV1]] = None + dependencies: Optional[list[DependencyV1]] = None + gcr_repos: Optional[list[AppGcrReposV1]] = None + quay_repos: Optional[list[AppQuayReposV1]] = None + escalation_policy: Optional[AppEscalationPolicyV1] = None + end_points: Optional[list[AppEndPointsV1]] = None + code_components: Optional[list[AppCodeComponentsV1]] = None + sentry_projects: Optional[list[AppSentryProjectsV1]] = None + status_page_components: Optional[list[StatusPageComponentV1]] = None + namespaces: Optional[list[NamespaceV1]] = None + children_apps: Optional[list[AppV1]] = None + jenkins_configs: Optional[list[JenkinsConfigV1]] = None + saas_files_v2: Optional[list[SaasFileV2]] = None + sre_checkpoints: Optional[list[SRECheckpointV1]] = None + + +@dataclass +class GrafanaDashboardUrlsV1: + title: Optional[str] = None + url: Optional[str] = None + + +@dataclass +class OwnerV1: + name: Optional[str] = None + email: Optional[str] = None + + +@dataclass +class AppGcrReposV1: + project: Optional[GcpProjectV1] = None + items: Optional[list[AppGcrReposItemsV1]] = None + + +@dataclass +class GcpProjectV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + managed_teams: Optional[list[str]] = None + automation_token: Optional[VaultSecretV1] = None + push_credentials: Optional[VaultSecretV1] = None + + +@dataclass +class AppGcrReposItemsV1: + name: Optional[str] = None + description: Optional[str] = None + public: Optional[bool] = None + mirror: Optional[ContainerImageMirrorV1] = None + + +@dataclass +class ContainerImageMirrorV1: + url: Optional[str] = None + pull_credentials: Optional[VaultSecretV1] = None + tags: Optional[list[str]] = None + tags_exclude: Optional[list[str]] = None + + +@dataclass +class AppQuayReposV1: + org: Optional[QuayOrgV1] = None + teams: Optional[list[AppQuayReposTeamsV1]] = None + notifications: Optional[list[AppQuayReposNotificationsV1]] = None + items: Optional[list[AppQuayReposItemsV1]] = None + + +@dataclass +class QuayOrgV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + mirror: Optional[QuayOrgV1] = None + managed_repos: Optional[bool] = None + instance: Optional[QuayInstanceV1] = None + server_url: Optional[str] = None + managed_teams: Optional[list[str]] = None + automation_token: Optional[VaultSecretV1] = None + push_credentials: Optional[VaultSecretV1] = None + + +@dataclass +class QuayInstanceV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + url: Optional[str] = None + + +@dataclass +class AppQuayReposTeamsV1: + permissions: Optional[list[PermissionQuayOrgTeamV1]] = None + role: Optional[str] = None + + +@dataclass +class PermissionQuayOrgTeamV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + service: Optional[str] = None + quay_org: Optional[QuayOrgV1] = None + team: Optional[str] = None + + +@dataclass +class PermissionV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + service: Optional[str] = None + + +@dataclass +class AppQuayReposNotificationsV1: + event: Optional[str] = None + severity: Optional[str] = None + method: Optional[str] = None + escalation_policy: Optional[AppEscalationPolicyV1] = None + verification_method: Optional[AppQuayReposNotificationVerificationMethodV1] = None + + +@dataclass +class AppEscalationPolicyV1: + path: Optional[str] = None + name: Optional[str] = None + labels: Optional[dict[str, str]] = None + description: Optional[str] = None + channels: Optional[AppEscalationPolicyChannelsV1] = None + + +@dataclass +class AppEscalationPolicyChannelsV1: + slack_user_group: Optional[list[PermissionSlackUsergroupV1]] = None + email: Optional[list[str]] = None + pagerduty: Optional[PagerDutyTargetV1] = None + jira_board: Optional[list[JiraBoardV1]] = None + next_escalation_policy: Optional[AppEscalationPolicyV1] = None + + +@dataclass +class PermissionSlackUsergroupV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + service: Optional[str] = None + handle: Optional[str] = None + workspace: Optional[SlackWorkspaceV1] = None + pagerduty: Optional[list[PagerDutyTargetV1]] = None + channels: Optional[list[str]] = None + owners_from_repos: Optional[list[str]] = None + schedule: Optional[ScheduleV1] = None + skip: Optional[bool] = None + roles: Optional[list[RoleV1]] = None + + +@dataclass +class SlackWorkspaceV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + token: Optional[VaultSecretV1] = None + api_client: Optional[SlackWorkspaceApiClientV1] = None + integrations: Optional[list[SlackWorkspaceIntegrationV1]] = None + managed_usergroups: Optional[list[str]] = None + + +@dataclass +class SlackWorkspaceApiClientV1: + _global: Optional[SlackWorkspaceApiClientGlobalConfigV1] = None + methods: Optional[list[SlackWorkspaceApiClientMethodConfigV1]] = None + + +@dataclass +class SlackWorkspaceApiClientGlobalConfigV1: + max_retries: Optional[int] = None + timeout: Optional[int] = None + + +@dataclass +class SlackWorkspaceApiClientMethodConfigV1: + name: Optional[str] = None + args: Optional[dict[str, str]] = None + + +@dataclass +class SlackWorkspaceIntegrationV1: + name: Optional[str] = None + token: Optional[VaultSecretV1] = None + channel: Optional[str] = None + icon_emoji: Optional[str] = None + username: Optional[str] = None + + +@dataclass +class PagerDutyTargetV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + instance: Optional[PagerDutyInstanceV1] = None + schedule_i_d: Optional[str] = None + escalation_policy_i_d: Optional[str] = None + + +@dataclass +class PagerDutyInstanceV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + token: Optional[VaultSecretV1] = None + + +@dataclass +class ScheduleV1: + name: Optional[str] = None + description: Optional[str] = None + schedule: Optional[list[ScheduleEntryV1]] = None + + +@dataclass +class ScheduleEntryV1: + start: Optional[str] = None + end: Optional[str] = None + users: Optional[list[UserV1]] = None + + +@dataclass +class UserV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + org_username: Optional[str] = None + github_username: Optional[str] = None + quay_username: Optional[str] = None + slack_username: Optional[str] = None + pagerduty_username: Optional[str] = None + aws_username: Optional[str] = None + public_gpg_key: Optional[str] = None + tag_on_merge_requests: Optional[bool] = None + tag_on_cluster_updates: Optional[bool] = None + roles: Optional[list[RoleV1]] = None + requests: Optional[list[CredentialsRequestV1]] = None + queries: Optional[list[AppInterfaceSqlQueryV1]] = None + gabi_instances: Optional[list[GabiInstanceV1]] = None + + +@dataclass +class RoleV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + expiration_date: Optional[str] = None + permissions: Optional[list[PermissionV1]] = None + oidc_permissions: Optional[list[OidcPermissionV1]] = None + tag_on_cluster_updates: Optional[bool] = None + access: Optional[list[AccessV1]] = None + aws_groups: Optional[list[AWSGroupV1]] = None + user_policies: Optional[list[AWSUserPolicyV1]] = None + sentry_teams: Optional[list[SentryTeamV1]] = None + sentry_roles: Optional[list[SentryRoleV1]] = None + sendgrid_accounts: Optional[list[SendGridAccountV1]] = None + owned_saas_files: Optional[list[SaasFileV2]] = None + users: Optional[list[UserV1]] = None + bots: Optional[list[BotV1]] = None + + +@dataclass +class OidcPermissionV1: + schema: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + service: Optional[str] = None + description: Optional[str] = None + + +@dataclass +class AccessV1: + namespace: Optional[NamespaceV1] = None + role: Optional[str] = None + cluster: Optional[ClusterV1] = None + group: Optional[str] = None + cluster_role: Optional[str] = None + + +@dataclass +class AWSGroupV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + account: Optional[AWSAccountV1] = None + name: Optional[str] = None + description: Optional[str] = None + policies: Optional[list[str]] = None + roles: Optional[list[RoleV1]] = None + + +@dataclass +class AWSAccountV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + console_url: Optional[str] = None + uid: Optional[str] = None + resources_default_region: Optional[str] = None + supported_deployment_regions: Optional[list[str]] = None + provider_version: Optional[str] = None + terraform_username: Optional[str] = None + account_owners: Optional[list[OwnerV1]] = None + automation_token: Optional[VaultSecretV1] = None + garbage_collection: Optional[bool] = None + enable_deletion: Optional[bool] = None + deletion_approvals: Optional[list[AWSAccountDeletionApprovalV1]] = None + disable: Optional[DisableClusterAutomationsV1] = None + delete_keys: Optional[list[str]] = None + reset_passwords: Optional[list[AWSAccountResetPasswordV1]] = None + premium_support: Optional[bool] = None + partition: Optional[str] = None + sharing: Optional[list[AWSAccountSharingOptionV1]] = None + ecrs: Optional[list[AWSECRV1]] = None + policies: Optional[list[AWSUserPolicyV1]] = None + + +@dataclass +class AWSAccountDeletionApprovalV1: + _type: Optional[str] = None + name: Optional[str] = None + expiration: Optional[str] = None + + +@dataclass +class DisableClusterAutomationsV1: + integrations: Optional[list[str]] = None + e2e_tests: Optional[list[str]] = None + + +@dataclass +class AWSAccountResetPasswordV1: + user: Optional[UserV1] = None + request_id: Optional[str] = None + + +@dataclass +class AWSAccountSharingOptionV1: + provider: Optional[str] = None + account: Optional[AWSAccountV1] = None + + +@dataclass +class AWSECRV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + account: Optional[AWSAccountV1] = None + name: Optional[str] = None + description: Optional[str] = None + region: Optional[str] = None + + +@dataclass +class AWSUserPolicyV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + account: Optional[AWSAccountV1] = None + name: Optional[str] = None + description: Optional[str] = None + mandatory: Optional[bool] = None + policy: Optional[dict[str, str]] = None + + +@dataclass +class SentryTeamV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + instance: Optional[SentryInstanceV1] = None + + +@dataclass +class SentryInstanceV1: + schema: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + console_url: Optional[str] = None + automation_token: Optional[VaultSecretV1] = None + admin_user: Optional[VaultSecretV1] = None + + +@dataclass +class SentryRoleV1: + role: Optional[str] = None + instance: Optional[SentryInstanceV1] = None + + +@dataclass +class SendGridAccountV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + token: Optional[VaultSecretV1] = None + + +@dataclass +class SaasFileV2: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + app: Optional[AppV1] = None + pipelines_provider: Optional[PipelinesProviderV1] = None + slack: Optional[SlackOutputV1] = None + managed_resource_types: Optional[list[str]] = None + authentication: Optional[SaasFileAuthenticationV1] = None + parameters: Optional[dict[str, str]] = None + secret_parameters: Optional[list[SaasSecretParametersV1]] = None + resource_templates: Optional[list[SaasResourceTemplateV2]] = None + image_patterns: Optional[list[str]] = None + takeover: Optional[bool] = None + compare: Optional[bool] = None + publish_job_logs: Optional[bool] = None + cluster_admin: Optional[bool] = None + use_channel_in_image_tag: Optional[bool] = None + configurable_resources: Optional[bool] = None + deploy_resources: Optional[DeployResourcesV1] = None + roles: Optional[list[RoleV1]] = None + + +@dataclass +class PipelinesProviderV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + provider: Optional[str] = None + + +@dataclass +class SlackOutputV1: + workspace: Optional[SlackWorkspaceV1] = None + channel: Optional[str] = None + icon_emoji: Optional[str] = None + username: Optional[str] = None + output: Optional[str] = None + notifications: Optional[SlackOutputNotificationsV1] = None + + +@dataclass +class SlackOutputNotificationsV1: + start: Optional[bool] = None + + +@dataclass +class SaasFileAuthenticationV1: + code: Optional[VaultSecretV1] = None + image: Optional[VaultSecretV1] = None + + +@dataclass +class SaasSecretParametersV1: + name: Optional[str] = None + secret: Optional[VaultSecretV1] = None + + +@dataclass +class SaasResourceTemplateV2: + name: Optional[str] = None + url: Optional[str] = None + path: Optional[str] = None + provider: Optional[str] = None + hash_length: Optional[int] = None + parameters: Optional[dict[str, str]] = None + secret_parameters: Optional[list[SaasSecretParametersV1]] = None + targets: Optional[list[SaasResourceTemplateTargetV2]] = None + + +@dataclass +class SaasResourceTemplateTargetV2: + namespace: Optional[NamespaceV1] = None + ref: Optional[str] = None + promotion: Optional[SaasResourceTemplateTargetPromotionV1] = None + parameters: Optional[dict[str, str]] = None + secret_parameters: Optional[list[SaasSecretParametersV1]] = None + upstream: Optional[SaasResourceTemplateTargetUpstreamV1] = None + disable: Optional[bool] = None + delete: Optional[bool] = None + + +@dataclass +class SaasResourceTemplateTargetPromotionV1: + auto: Optional[bool] = None + publish: Optional[list[str]] = None + subscribe: Optional[list[str]] = None + promotion_data: Optional[list[PromotionDataV1]] = None + + +@dataclass +class PromotionDataV1: + channel: Optional[str] = None + data: Optional[list[PromotionChannelDataV1]] = None + + +@dataclass +class PromotionChannelDataV1: + _type: Optional[str] = None + + +@dataclass +class SaasResourceTemplateTargetUpstreamV1: + instance: Optional[JenkinsInstanceV1] = None + name: Optional[str] = None + + +@dataclass +class JenkinsInstanceV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + server_url: Optional[str] = None + token: Optional[VaultSecretV1] = None + previous_urls: Optional[list[str]] = None + plugins: Optional[list[str]] = None + delete_method: Optional[str] = None + managed_projects: Optional[list[str]] = None + builds_cleanup_rules: Optional[list[JenkinsInstanceBuildsCleanupRulesV1]] = None + + +@dataclass +class JenkinsInstanceBuildsCleanupRulesV1: + name: Optional[str] = None + keep_hours: Optional[int] = None + + +@dataclass +class DeployResourcesV1: + requests: Optional[ResourceRequirementsV1] = None + limits: Optional[ResourceRequirementsV1] = None + + +@dataclass +class ResourceRequirementsV1: + cpu: Optional[str] = None + memory: Optional[str] = None + + +@dataclass +class BotV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + org_username: Optional[str] = None + github_username: Optional[str] = None + gitlab_username: Optional[str] = None + openshift_serviceaccount: Optional[str] = None + quay_username: Optional[str] = None + owner: Optional[UserV1] = None + roles: Optional[list[RoleV1]] = None + + +@dataclass +class CredentialsRequestV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + user: Optional[UserV1] = None + credentials: Optional[str] = None + + +@dataclass +class AppInterfaceSqlQueryV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + namespace: Optional[NamespaceV1] = None + identifier: Optional[str] = None + requestor: Optional[UserV1] = None + overrides: Optional[SqlEmailOverridesV1] = None + output: Optional[str] = None + schedule: Optional[str] = None + query: Optional[str] = None + queries: Optional[list[str]] = None + + +@dataclass +class SqlEmailOverridesV1: + db_host: Optional[str] = None + db_port: Optional[str] = None + db_name: Optional[str] = None + db_user: Optional[str] = None + db_password: Optional[str] = None + + +@dataclass +class GabiInstanceV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + signoff_managers: Optional[list[UserV1]] = None + users: Optional[list[UserV1]] = None + instances: Optional[list[GabiNamespaceV1]] = None + expiration_date: Optional[str] = None + + +@dataclass +class GabiNamespaceV1: + account: Optional[str] = None + identifier: Optional[str] = None + namespace: Optional[NamespaceV1] = None + + +@dataclass +class JiraBoardV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + server: Optional[JiraServerV1] = None + severity_priority_mappings: Optional[JiraSeverityPriorityMappingsV1] = None + slack: Optional[SlackOutputV1] = None + + +@dataclass +class JiraServerV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + server_url: Optional[str] = None + token: Optional[VaultSecretV1] = None + + +@dataclass +class JiraSeverityPriorityMappingsV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + mappings: Optional[list[SeverityPriorityMappingV1]] = None + + +@dataclass +class SeverityPriorityMappingV1: + severity: Optional[str] = None + priority: Optional[str] = None + + +@dataclass +class AppQuayReposNotificationVerificationMethodV1: + jira_board: Optional[JiraBoardV1] = None + + +@dataclass +class AppQuayReposItemsV1: + name: Optional[str] = None + description: Optional[str] = None + public: Optional[bool] = None + mirror: Optional[ContainerImageMirrorV1] = None + + +@dataclass +class AppEndPointsV1: + name: Optional[str] = None + description: Optional[str] = None + url: Optional[str] = None + monitoring: Optional[list[AppEndPointMonitoringV1]] = None + + +@dataclass +class AppEndPointMonitoringV1: + provider: Optional[EndpointMonitoringProviderV1] = None + + +@dataclass +class EndpointMonitoringProviderV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + provider: Optional[str] = None + metric_labels: Optional[dict[str, str]] = None + timeout: Optional[str] = None + check_interval: Optional[str] = None + + +@dataclass +class AppCodeComponentsV1: + name: Optional[str] = None + resource: Optional[str] = None + url: Optional[str] = None + gitlab_repo_owners: Optional[CodeComponentGitlabOwnersV1] = None + gitlab_housekeeping: Optional[CodeComponentGitlabHousekeepingV1] = None + jira: Optional[JiraServerV1] = None + + +@dataclass +class CodeComponentGitlabOwnersV1: + enabled: Optional[bool] = None + + +@dataclass +class CodeComponentGitlabHousekeepingV1: + enabled: Optional[bool] = None + rebase: Optional[bool] = None + days_interval: Optional[int] = None + limit: Optional[int] = None + enable_closing: Optional[bool] = None + pipeline_timeout: Optional[int] = None + + +@dataclass +class AppSentryProjectsV1: + team: Optional[SentryTeamV1] = None + projects: Optional[list[SentryProjectItemsV1]] = None + + +@dataclass +class SentryProjectItemsV1: + name: Optional[str] = None + description: Optional[str] = None + email_prefix: Optional[str] = None + platform: Optional[str] = None + sensitive_fields: Optional[list[str]] = None + safe_fields: Optional[list[str]] = None + auto_resolve_age: Optional[int] = None + allowed_domains: Optional[list[str]] = None + + +@dataclass +class StatusPageComponentV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + display_name: Optional[str] = None + description: Optional[str] = None + instructions: Optional[str] = None + page: Optional[StatusPageV1] = None + group_name: Optional[str] = None + status: Optional[list[StatusProviderV1]] = None + apps: Optional[list[AppV1]] = None + + +@dataclass +class StatusPageV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + url: Optional[str] = None + provider: Optional[str] = None + api_url: Optional[str] = None + credentials: Optional[VaultSecretV1] = None + page_id: Optional[str] = None + components: Optional[list[StatusPageComponentV1]] = None + + +@dataclass +class StatusProviderV1: + provider: Optional[str] = None + + +@dataclass +class JenkinsConfigV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + app: Optional[AppV1] = None + instance: Optional[JenkinsInstanceV1] = None + _type: Optional[str] = None + config: Optional[dict[str, str]] = None + config_path: Optional[str] = None + + +@dataclass +class SRECheckpointV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + app: Optional[AppV1] = None + date: Optional[str] = None + issue: Optional[str] = None + + +@dataclass +class EnvironmentV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + product: Optional[ProductV1] = None + parameters: Optional[dict[str, str]] = None + secret_parameters: Optional[list[SaasSecretParametersV1]] = None + depends_on: Optional[EnvironmentV1] = None + namespaces: Optional[list[NamespaceV1]] = None + + +@dataclass +class ProductV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + product_owners: Optional[list[OwnerV1]] = None + environments: Optional[list[EnvironmentV1]] = None + + +@dataclass +class LimitRangeV1: + schema: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + limits: Optional[list[LimitRangeItemV1]] = None + + +@dataclass +class LimitRangeItemV1: + default: Optional[ResourceValuesV1] = None + default_request: Optional[ResourceValuesV1] = None + max: Optional[ResourceValuesV1] = None + max_limit_request_ratio: Optional[ResourceValuesV1] = None + min: Optional[ResourceValuesV1] = None + _type: Optional[str] = None + + +@dataclass +class ResourceValuesV1: + cpu: Optional[str] = None + memory: Optional[str] = None + + +@dataclass +class ResourceQuotaV1: + schema: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + quotas: Optional[list[ResourceQuotaItemV1]] = None + + +@dataclass +class ResourceQuotaItemV1: + name: Optional[str] = None + resources: Optional[ResourceQuotaItemResourcesV1] = None + scopes: Optional[list[str]] = None + + +@dataclass +class ResourceQuotaItemResourcesV1: + limits: Optional[ResourceValuesV1] = None + requests: Optional[ResourceValuesV1] = None + pods: Optional[int] = None + + +@dataclass +class NamespaceManagedResourceTypeOverridesV1: + resource: Optional[str] = None + override: Optional[str] = None + + +@dataclass +class NamespaceManagedResourceNamesV1: + resource: Optional[str] = None + resource_names: Optional[list[str]] = None + + +@dataclass +class SharedResourcesV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + openshift_resources: Optional[list[NamespaceOpenshiftResourceV1]] = None + openshift_service_account_tokens: Optional[list[ServiceAccountTokenSpecV1]] = None + terraform_resources: Optional[list[NamespaceTerraformResourceV1]] = None + + +@dataclass +class ServiceAccountTokenSpecV1: + name: Optional[str] = None + namespace: Optional[NamespaceV1] = None + service_account_name: Optional[str] = None + + +@dataclass +class NamespaceTerraformResourceV1: + provider: Optional[str] = None + account: Optional[str] = None + identifier: Optional[str] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceOutputFormatV1: + provider: Optional[str] = None + + +@dataclass +class KafkaClusterV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + ocm: Optional[OpenShiftClusterManagerV1] = None + spec: Optional[KafkaClusterSpecV1] = None + namespaces: Optional[list[NamespaceV1]] = None + + +@dataclass +class OpenShiftClusterManagerV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + url: Optional[str] = None + access_token_client_id: Optional[str] = None + access_token_url: Optional[str] = None + offline_token: Optional[VaultSecretV1] = None + blocked_versions: Optional[list[str]] = None + clusters: Optional[list[ClusterV1]] = None + + +@dataclass +class KafkaClusterSpecV1: + provider: Optional[str] = None + region: Optional[str] = None + multi_az: Optional[bool] = None + + +@dataclass +class ClusterSpecV1: + _id: Optional[str] = None + external_id: Optional[str] = None + provider: Optional[str] = None + region: Optional[str] = None + channel: Optional[str] = None + version: Optional[str] = None + initial_version: Optional[str] = None + multi_az: Optional[bool] = None + nodes: Optional[int] = None + instance_type: Optional[str] = None + storage: Optional[int] = None + load_balancers: Optional[int] = None + private: Optional[bool] = None + provision_shard_id: Optional[str] = None + autoscale: Optional[ClusterSpecAutoScaleV1] = None + disable_user_workload_monitoring: Optional[bool] = None + + +@dataclass +class ClusterSpecAutoScaleV1: + min_replicas: Optional[int] = None + max_replicas: Optional[int] = None + + +@dataclass +class ClusterExternalConfigurationV1: + labels: Optional[dict[str, str]] = None + + +@dataclass +class ClusterUpgradePolicyV1: + schedule_type: Optional[str] = None + schedule: Optional[str] = None + workloads: Optional[list[str]] = None + conditions: Optional[ClusterUpgradePolicyConditionsV1] = None + + +@dataclass +class ClusterUpgradePolicyConditionsV1: + soak_days: Optional[int] = None + mutexes: Optional[list[str]] = None + + +@dataclass +class ClusterAdditionalRouterV1: + private: Optional[bool] = None + route_selectors: Optional[dict[str, str]] = None + + +@dataclass +class ClusterNetworkV1: + _type: Optional[str] = None + vpc: Optional[str] = None + service: Optional[str] = None + pod: Optional[str] = None + + +@dataclass +class ClusterMachinePoolV1: + _id: Optional[str] = None + instance_type: Optional[str] = None + replicas: Optional[int] = None + labels: Optional[dict[str, str]] = None + taints: Optional[list[TaintV1]] = None + + +@dataclass +class TaintV1: + key: Optional[str] = None + value: Optional[str] = None + effect: Optional[str] = None + + +@dataclass +class ClusterPeeringV1: + connections: Optional[list[ClusterPeeringConnectionV1]] = None + + +@dataclass +class ClusterPeeringConnectionV1: + provider: Optional[str] = None + name: Optional[str] = None + description: Optional[str] = None + manage_routes: Optional[bool] = None + delete: Optional[bool] = None + + +@dataclass +class ClusterAddonV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + parameters: Optional[list[ClusterAddonParametersV1]] = None + + +@dataclass +class ClusterAddonParametersV1: + _id: Optional[str] = None + value: Optional[str] = None + + +@dataclass +class ClusterJumpHostV1: + hostname: Optional[str] = None + known_hosts: Optional[str] = None + user: Optional[str] = None + port: Optional[int] = None + identity: Optional[VaultSecretV1] = None + + +@dataclass +class AWSInfrastructureAccessV1: + aws_group: Optional[AWSGroupV1] = None + access_level: Optional[str] = None + + +@dataclass +class AWSInfrastructureManagementAccountV1: + account: Optional[AWSAccountV1] = None + access_level: Optional[str] = None + default: Optional[bool] = None + + +@dataclass +class ClusterPrometheusV1: + url: Optional[str] = None + auth: Optional[VaultSecretV1] = None + + +@dataclass +class LdapSettingsV1: + server_url: Optional[str] = None + base_dn: Optional[str] = None + + +@dataclass +class AppInterfaceEmailV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + subject: Optional[str] = None + _to: Optional[AppInterfaceEmailAudienceV1] = None + body: Optional[str] = None + + +@dataclass +class AppInterfaceEmailAudienceV1: + aliases: Optional[list[str]] = None + services: Optional[list[AppV1]] = None + clusters: Optional[list[ClusterV1]] = None + namespaces: Optional[list[NamespaceV1]] = None + aws_accounts: Optional[list[AWSAccountV1]] = None + roles: Optional[list[RoleV1]] = None + users: Optional[list[UserV1]] = None + + +@dataclass +class AppInterfaceSlackNotificationV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + subject: Optional[str] = None + channel: Optional[str] = None + _to: Optional[AppInterfaceSlackNotificationAudienceV1] = None + body: Optional[str] = None + + +@dataclass +class AppInterfaceSlackNotificationAudienceV1: + users: Optional[list[str]] = None + + +@dataclass +class ExternalUserV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + github_username: Optional[str] = None + sponsors: Optional[list[UserV1]] = None + + +@dataclass +class ResourceV1: + path: Optional[str] = None + content: Optional[str] = None + sha256sum: Optional[str] = None + schema: Optional[str] = None + + +@dataclass +class VaultAuditV1: + _path: Optional[str] = None + _type: Optional[str] = None + description: Optional[str] = None + options: Optional[VaultAuditOptionsV1] = None + + +@dataclass +class VaultAuditOptionsV1: + _type: Optional[str] = None + + +@dataclass +class VaultAuthV1: + _path: Optional[str] = None + _type: Optional[str] = None + description: Optional[str] = None + settings: Optional[VaultAuthSettingsV1] = None + policy_mappings: Optional[list[VaultPolicyMappingV1]] = None + + +@dataclass +class VaultAuthSettingsV1: + config: Optional[VaultAuthConfigV1] = None + + +@dataclass +class VaultAuthConfigV1: + _type: Optional[str] = None + + +@dataclass +class VaultPolicyMappingV1: + github_team: Optional[PermissionGithubOrgTeamV1] = None + policies: Optional[list[VaultPolicyV1]] = None + + +@dataclass +class PermissionGithubOrgTeamV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + service: Optional[str] = None + org: Optional[str] = None + team: Optional[str] = None + role: Optional[str] = None + + +@dataclass +class VaultPolicyV1: + name: Optional[str] = None + rules: Optional[str] = None + + +@dataclass +class VaultSecretEngineV1: + _path: Optional[str] = None + _type: Optional[str] = None + description: Optional[str] = None + options: Optional[VaultSecretEngineOptionsV1] = None + + +@dataclass +class VaultSecretEngineOptionsV1: + _type: Optional[str] = None + + +@dataclass +class VaultRoleV1: + name: Optional[str] = None + _type: Optional[str] = None + mount: Optional[str] = None + options: Optional[VaultRoleOptionsV1] = None + + +@dataclass +class VaultRoleOptionsV1: + _type: Optional[str] = None + + +@dataclass +class GithubOrgV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + url: Optional[str] = None + two_factor_authentication: Optional[bool] = None + default: Optional[bool] = None + token: Optional[VaultSecretV1] = None + managed_teams: Optional[list[str]] = None + + +@dataclass +class GitlabInstanceV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + backup_orgs: Optional[list[str]] = None + managed_groups: Optional[list[str]] = None + project_requests: Optional[list[GitlabProjectsV1]] = None + url: Optional[str] = None + token: Optional[VaultSecretV1] = None + ssl_verify: Optional[bool] = None + + +@dataclass +class GitlabProjectsV1: + group: Optional[str] = None + projects: Optional[list[str]] = None + + +@dataclass +class IntegrationV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + upstream: Optional[str] = None + schemas: Optional[list[str]] = None + pr_check: Optional[IntegrationPrCheckV1] = None + + +@dataclass +class IntegrationPrCheckV1: + cmd: Optional[str] = None + state: Optional[bool] = None + sqs: Optional[bool] = None + disabled: Optional[bool] = None + always_run: Optional[bool] = None + no_validate_schemas: Optional[bool] = None + run_for_valid_saas_file_changes: Optional[bool] = None + + +@dataclass +class DocumentV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + app: Optional[AppV1] = None + name: Optional[str] = None + content_path: Optional[str] = None + + +@dataclass +class ReportV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + app: Optional[AppV1] = None + name: Optional[str] = None + date: Optional[str] = None + content_format_version: Optional[str] = None + content: Optional[str] = None + + +@dataclass +class UnleashInstanceV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + url: Optional[str] = None + token: Optional[VaultSecretV1] = None + notifications: Optional[UnleashNotificationsV1] = None + feature_toggles: Optional[list[UnleashFeatureToggleV1]] = None + + +@dataclass +class UnleashNotificationsV1: + slack: Optional[list[SlackOutputV1]] = None + + +@dataclass +class UnleashFeatureToggleV1: + name: Optional[str] = None + enabled: Optional[bool] = None + reason: Optional[str] = None + + +@dataclass +class TemplateTestV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + resource_path: Optional[str] = None + expected_result: Optional[str] = None + + +@dataclass +class DnsZoneV1: + schema: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + provider: Optional[str] = None + account: Optional[AWSAccountV1] = None + vpc: Optional[AWSVPCV1] = None + origin: Optional[str] = None + unmanaged_record_names: Optional[list[str]] = None + records: Optional[list[DnsRecordV1]] = None + + +@dataclass +class AWSVPCV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + account: Optional[AWSAccountV1] = None + name: Optional[str] = None + description: Optional[str] = None + vpc_id: Optional[str] = None + cidr_block: Optional[str] = None + region: Optional[str] = None + subnets: Optional[list[AWSSubnetV1]] = None + + +@dataclass +class AWSSubnetV1: + _id: Optional[str] = None + + +@dataclass +class DnsRecordV1: + name: Optional[str] = None + _type: Optional[str] = None + ttl: Optional[int] = None + alias: Optional[DnsRecordAliasV1] = None + weighted_routing_policy: Optional[DnsRecordWeightedRoutingPolicyV1] = None + set_identifier: Optional[str] = None + records: Optional[list[str]] = None + _healthcheck: Optional[DnsRecordHealthcheckV1] = None + _target_cluster: Optional[ClusterV1] = None + _target_namespace_zone: Optional[DnsNamespaceZoneV1] = None + + +@dataclass +class DnsRecordAliasV1: + name: Optional[str] = None + zone_id: Optional[str] = None + evaluate_target_health: Optional[bool] = None + + +@dataclass +class DnsRecordWeightedRoutingPolicyV1: + weight: Optional[int] = None + + +@dataclass +class DnsRecordHealthcheckV1: + fqdn: Optional[str] = None + port: Optional[int] = None + _type: Optional[str] = None + resource_path: Optional[str] = None + failure_threshold: Optional[int] = None + request_interval: Optional[int] = None + search_string: Optional[str] = None + + +@dataclass +class DnsNamespaceZoneV1: + namespace: Optional[NamespaceV1] = None + name: Optional[str] = None + + +@dataclass +class OcpReleaseMirrorV1: + hive_cluster: Optional[ClusterV1] = None + ecr_resources_namespace: Optional[NamespaceV1] = None + ocp_release_ecr_identifier: Optional[str] = None + ocp_art_dev_ecr_identifier: Optional[str] = None + quay_target_orgs: Optional[list[QuayOrgV1]] = None + mirror_channels: Optional[list[str]] = None + + +@dataclass +class SLODocumentV1: + schema: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + namespaces: Optional[list[NamespaceV1]] = None + slos: Optional[list[SLODocumentSLOV1]] = None + + +@dataclass +class SLODocumentSLOV1: + name: Optional[str] = None + _s_l_i_type: Optional[str] = None + _s_l_i_specification: Optional[str] = None + _s_l_o_details: Optional[str] = None + _s_l_o_target: Optional[float] = None + _s_l_o_parameters: Optional[SLODocumentSLOSLOParametersV1] = None + expr: Optional[str] = None + _s_l_o_target_unit: Optional[str] = None + prometheus_rules: Optional[str] = None + prometheus_rules_tests: Optional[str] = None + dashboard: Optional[str] = None + + +@dataclass +class SLODocumentSLOSLOParametersV1: + window: Optional[str] = None + + +@dataclass +class DynTrafficDirectorV1: + name: Optional[str] = None + ttl: Optional[int] = None + records: Optional[list[DynTrafficDirectorRecordV1]] = None + + +@dataclass +class DynTrafficDirectorRecordV1: + hostname: Optional[str] = None + cluster: Optional[ClusterV1] = None + weight: Optional[int] = None + + +@dataclass +class VaultAuditOptionsFileV1: + _type: Optional[str] = None + file_path: Optional[str] = None + log_raw: Optional[str] = None + hmac_accessor: Optional[str] = None + mode: Optional[str] = None + _format: Optional[str] = None + prefix: Optional[str] = None + + +@dataclass +class VaultAuthConfigGithubV1: + _type: Optional[str] = None + organization: Optional[str] = None + base_url: Optional[str] = None + max_ttl: Optional[str] = None + ttl: Optional[str] = None + + +@dataclass +class VaultAuthConfigOidcV1: + _type: Optional[str] = None + oidc_discovery_url: Optional[str] = None + oidc_client_id: Optional[str] = None + oidc_client_secret: Optional[str] = None + default_role: Optional[str] = None + + +@dataclass +class VaultSecretEngineOptionsKVV1: + _type: Optional[str] = None + version: Optional[str] = None + + +@dataclass +class VaultApproleOptionsV1: + _type: Optional[str] = None + bind_secret_id: Optional[str] = None + local_secret_ids: Optional[str] = None + token_period: Optional[str] = None + secret_id_num_uses: Optional[str] = None + secret_id_ttl: Optional[str] = None + token_explicit_max_ttl: Optional[str] = None + token_max_ttl: Optional[str] = None + token_no_default_policy: Optional[bool] = None + token_num_uses: Optional[str] = None + token_ttl: Optional[str] = None + token_type: Optional[str] = None + token_policies: Optional[list[str]] = None + policies: Optional[list[str]] = None + secret_id_bound_cidrs: Optional[list[str]] = None + token_bound_cidrs: Optional[list[str]] = None + + +@dataclass +class VaultRoleOidcOptionsV1: + _type: Optional[str] = None + allowed_redirect_uris: Optional[list[str]] = None + bound_audiences: Optional[list[str]] = None + bound_claims: Optional[dict[str, str]] = None + bound_claims_type: Optional[str] = None + bound_subject: Optional[str] = None + claim_mappings: Optional[dict[str, str]] = None + clock_skew_leeway: Optional[str] = None + expiration_leeway: Optional[str] = None + groups_claim: Optional[str] = None + max_age: Optional[str] = None + not_before_leeway: Optional[str] = None + oidc_scopes: Optional[list[str]] = None + role_type: Optional[str] = None + token_ttl: Optional[str] = None + token_max_ttl: Optional[str] = None + token_explicit_max_ttl: Optional[str] = None + token_type: Optional[str] = None + token_period: Optional[str] = None + token_policies: Optional[list[str]] = None + token_bound_cidrs: Optional[list[str]] = None + token_no_default_policy: Optional[bool] = None + token_num_uses: Optional[str] = None + user_claim: Optional[str] = None + verbose_oidc_logging: Optional[bool] = None + + +@dataclass +class KeyValueV1: + key: Optional[str] = None + value: Optional[str] = None + + +@dataclass +class ClusterAuthGithubOrgV1: + service: Optional[str] = None + org: Optional[str] = None + + +@dataclass +class ClusterAuthGithubOrgTeamV1: + service: Optional[str] = None + org: Optional[str] = None + team: Optional[str] = None + + +@dataclass +class ClusterAuthOIDCV1: + service: Optional[str] = None + + +@dataclass +class ClusterPeeringConnectionAccountV1: + provider: Optional[str] = None + name: Optional[str] = None + vpc: Optional[AWSVPCV1] = None + description: Optional[str] = None + manage_routes: Optional[bool] = None + delete: Optional[bool] = None + assume_role: Optional[str] = None + + +@dataclass +class ClusterPeeringConnectionAccountVPCMeshV1: + provider: Optional[str] = None + name: Optional[str] = None + account: Optional[AWSAccountV1] = None + description: Optional[str] = None + tags: Optional[dict[str, str]] = None + manage_routes: Optional[bool] = None + delete: Optional[bool] = None + + +@dataclass +class ClusterPeeringConnectionAccountTGWV1: + provider: Optional[str] = None + name: Optional[str] = None + account: Optional[AWSAccountV1] = None + description: Optional[str] = None + tags: Optional[dict[str, str]] = None + manage_routes: Optional[bool] = None + manage_security_groups: Optional[bool] = None + cidr_block: Optional[str] = None + delete: Optional[bool] = None + assume_role: Optional[str] = None + + +@dataclass +class ClusterPeeringConnectionClusterRequesterV1: + provider: Optional[str] = None + name: Optional[str] = None + cluster: Optional[ClusterV1] = None + description: Optional[str] = None + manage_routes: Optional[bool] = None + delete: Optional[bool] = None + assume_role: Optional[str] = None + + +@dataclass +class ClusterPeeringConnectionClusterAccepterV1: + provider: Optional[str] = None + name: Optional[str] = None + cluster: Optional[ClusterV1] = None + aws_infrastructure_management_account: Optional[AWSAccountV1] = None + description: Optional[str] = None + manage_routes: Optional[bool] = None + delete: Optional[bool] = None + assume_role: Optional[str] = None + + +@dataclass +class AWSAccountSharingOptionAMIV1: + provider: Optional[str] = None + account: Optional[AWSAccountV1] = None + regex: Optional[str] = None + region: Optional[str] = None + + +@dataclass +class AWSS3EventNotificationV1: + event_type: Optional[list[str]] = None + destination: Optional[str] = None + destination_type: Optional[str] = None + filter_prefix: Optional[str] = None + filter_suffix: Optional[str] = None + + +@dataclass +class ACMDomainV1: + domain_name: Optional[str] = None + alternate_names: Optional[list[str]] = None + + +@dataclass +class NamespaceOpenshiftResourceResourceV1: + provider: Optional[str] = None + path: Optional[str] = None + validate_json: Optional[bool] = None + validate_alertmanager_config: Optional[bool] = None + alertmanager_config_key: Optional[str] = None + + +@dataclass +class NamespaceOpenshiftResourceResourceTemplateV1: + provider: Optional[str] = None + path: Optional[str] = None + _type: Optional[str] = None + variables: Optional[dict[str, str]] = None + validate_alertmanager_config: Optional[bool] = None + alertmanager_config_key: Optional[str] = None + + +@dataclass +class NamespaceOpenshiftResourceRouteV1: + provider: Optional[str] = None + path: Optional[str] = None + vault_tls_secret_path: Optional[str] = None + vault_tls_secret_version: Optional[int] = None + + +@dataclass +class NamespaceTerraformResourceGenericSecretOutputFormatV1: + provider: Optional[str] = None + data: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceASGV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + defaults: Optional[str] = None + cloudinit_configs: Optional[list[CloudinitConfigV1]] = None + variables: Optional[dict[str, str]] = None + image: Optional[ASGImageV1] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class CloudinitConfigV1: + filename: Optional[str] = None + content_type: Optional[str] = None + content: Optional[str] = None + + +@dataclass +class ASGImageV1: + tag_name: Optional[str] = None + url: Optional[str] = None + ref: Optional[str] = None + upstream: Optional[SaasResourceTemplateTargetUpstreamV1] = None + + +@dataclass +class NamespaceTerraformResourceSecretsManagerV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + secret: Optional[VaultSecretV1] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceS3CloudFrontPublicKeyV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + secret: Optional[VaultSecretV1] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceACMV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + secret: Optional[VaultSecretV1] = None + domain: Optional[ACMDomainV1] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceElasticSearchV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + defaults: Optional[str] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + publish_log_types: Optional[list[str]] = None + + +@dataclass +class NamespaceTerraformResourceRDSV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + defaults: Optional[str] = None + availability_zone: Optional[str] = None + parameter_group: Optional[str] = None + overrides: Optional[dict[str, str]] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + output_resource_db_name: Optional[str] = None + reset_password: Optional[str] = None + enhanced_monitoring: Optional[bool] = None + replica_source: Optional[str] = None + ca_cert: Optional[VaultSecretV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceS3V1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + defaults: Optional[str] = None + overrides: Optional[dict[str, str]] = None + event_notifications: Optional[list[AWSS3EventNotificationV1]] = None + sqs_identifier: Optional[str] = None + s3_events: Optional[list[str]] = None + bucket_policy: Optional[dict[str, str]] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + storage_class: Optional[str] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceServiceAccountAWSInfrastructureAccessV1: + cluster: Optional[ClusterV1] = None + access_level: Optional[str] = None + assume_role: Optional[str] = None + + +@dataclass +class NamespaceTerraformResourceServiceAccountV1: + provider: Optional[str] = None + account: Optional[str] = None + identifier: Optional[str] = None + variables: Optional[dict[str, str]] = None + policies: Optional[list[str]] = None + user_policy: Optional[dict[str, str]] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + aws_infrastructure_access: Optional[NamespaceTerraformResourceServiceAccountAWSInfrastructureAccessV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class AssumeRoleV1: + _a_w_s: Optional[list[str]] = None + _service: Optional[list[str]] = None + + +@dataclass +class NamespaceTerraformResourceRoleV1: + provider: Optional[str] = None + account: Optional[str] = None + identifier: Optional[str] = None + assume_role: Optional[AssumeRoleV1] = None + assume_condition: Optional[dict[str, str]] = None + inline_policy: Optional[dict[str, str]] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceElastiCacheV1: + provider: Optional[str] = None + account: Optional[str] = None + identifier: Optional[str] = None + defaults: Optional[str] = None + parameter_group: Optional[str] = None + region: Optional[str] = None + overrides: Optional[dict[str, str]] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class SQSQueuesSpecsV1: + defaults: Optional[str] = None + queues: Optional[list[KeyValueV1]] = None + + +@dataclass +class NamespaceTerraformResourceSQSV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + specs: Optional[list[SQSQueuesSpecsV1]] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class DynamoDBTableSpecsV1: + defaults: Optional[str] = None + tables: Optional[list[KeyValueV1]] = None + + +@dataclass +class NamespaceTerraformResourceDynamoDBV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + specs: Optional[list[DynamoDBTableSpecsV1]] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceECRV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + mirror: Optional[ContainerImageMirrorV1] = None + public: Optional[bool] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceS3CloudFrontV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + defaults: Optional[str] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + storage_class: Optional[str] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceS3SQSV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + kms_encryption: Optional[bool] = None + defaults: Optional[str] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + storage_class: Optional[str] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceCloudWatchV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + defaults: Optional[str] = None + es_identifier: Optional[str] = None + filter_pattern: Optional[str] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceKMSV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + defaults: Optional[str] = None + overrides: Optional[dict[str, str]] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceKinesisV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + defaults: Optional[str] = None + overrides: Optional[dict[str, str]] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceALBV1: + provider: Optional[str] = None + account: Optional[str] = None + identifier: Optional[str] = None + region: Optional[str] = None + vpc: Optional[AWSVPCV1] = None + certificate_arn: Optional[str] = None + idle_timeout: Optional[int] = None + targets: Optional[list[NamespaceTerraformResourceALBTargetsV1]] = None + rules: Optional[list[NamespaceTerraformResourceALBRulesV1]] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class NamespaceTerraformResourceALBTargetsV1: + name: Optional[str] = None + default: Optional[bool] = None + ips: Optional[list[str]] = None + openshift_service: Optional[str] = None + + +@dataclass +class NamespaceTerraformResourceALBRulesV1: + condition: Optional[NamespaceTerraformResourceALBConditonV1] = None + action: Optional[list[NamespaceTerraformResourceALBActionV1]] = None + + +@dataclass +class NamespaceTerraformResourceALBConditonV1: + path: Optional[str] = None + methods: Optional[list[str]] = None + + +@dataclass +class NamespaceTerraformResourceALBActionV1: + target: Optional[str] = None + weight: Optional[int] = None + + +@dataclass +class NamespaceTerraformResourceRoute53ZoneV1: + provider: Optional[str] = None + account: Optional[str] = None + region: Optional[str] = None + identifier: Optional[str] = None + name: Optional[str] = None + output_resource_name: Optional[str] = None + output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None + annotations: Optional[dict[str, str]] = None + + +@dataclass +class SaasResourceTemplateV1: + name: Optional[str] = None + url: Optional[str] = None + path: Optional[str] = None + provider: Optional[str] = None + hash_length: Optional[int] = None + parameters: Optional[dict[str, str]] = None + secret_parameters: Optional[list[SaasSecretParametersV1]] = None + targets: Optional[list[SaasResourceTemplateTargetV1]] = None + + +@dataclass +class SaasResourceTemplateTargetV1: + namespace: Optional[NamespaceV1] = None + ref: Optional[str] = None + promotion: Optional[SaasResourceTemplateTargetPromotionV1] = None + parameters: Optional[dict[str, str]] = None + secret_parameters: Optional[list[SaasSecretParametersV1]] = None + upstream: Optional[str] = None + disable: Optional[bool] = None + delete: Optional[bool] = None + + +@dataclass +class ParentSaasPromotionV1: + _type: Optional[str] = None + parent_saas: Optional[str] = None + target_config_hash: Optional[str] = None + + +@dataclass +class PipelinesProviderTektonV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + provider: Optional[str] = None + defaults: Optional[PipelinesProviderTektonProviderDefaultsV1] = None + namespace: Optional[NamespaceV1] = None + retention: Optional[PipelinesProviderRetentionV1] = None + task_templates: Optional[list[PipelinesProviderTektonObjectTemplateV1]] = None + pipeline_templates: Optional[PipelinesProviderPipelineTemplatesV1] = None + deploy_resources: Optional[DeployResourcesV1] = None + + +@dataclass +class PipelinesProviderTektonProviderDefaultsV1: + name: Optional[str] = None + labels: Optional[dict[str, str]] = None + description: Optional[str] = None + retention: Optional[PipelinesProviderRetentionV1] = None + task_templates: Optional[list[PipelinesProviderTektonObjectTemplateV1]] = None + pipeline_templates: Optional[PipelinesProviderPipelineTemplatesV1] = None + deploy_resources: Optional[DeployResourcesV1] = None + + +@dataclass +class PipelinesProviderRetentionV1: + days: Optional[int] = None + minimum: Optional[int] = None + + +@dataclass +class PipelinesProviderTektonObjectTemplateV1: + name: Optional[str] = None + _type: Optional[str] = None + path: Optional[str] = None + variables: Optional[dict[str, str]] = None + + +@dataclass +class PipelinesProviderPipelineTemplatesV1: + openshift_saas_deploy: Optional[PipelinesProviderTektonObjectTemplateV1] = None + + +@dataclass +class OidcPermissionVaultV1: + schema: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + service: Optional[str] = None + description: Optional[str] = None + vault_policies: Optional[list[VaultPolicyV1]] = None + + +@dataclass +class PermissionGithubOrgV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + service: Optional[str] = None + org: Optional[str] = None + role: Optional[str] = None + + +@dataclass +class PermissionJenkinsRoleV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + service: Optional[str] = None + instance: Optional[JenkinsInstanceV1] = None + role: Optional[str] = None + token: Optional[VaultSecretV1] = None + + +@dataclass +class PermissionGitlabGroupMembershipV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + service: Optional[str] = None + group: Optional[str] = None + access: Optional[str] = None + + +@dataclass +class EndpointMonitoringProviderBlackboxExporterV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + provider: Optional[str] = None + metric_labels: Optional[dict[str, str]] = None + timeout: Optional[str] = None + check_interval: Optional[str] = None + blackbox_exporter: Optional[EndpointMonitoringProviderBlackboxExporterSettingsV1] = None + + +@dataclass +class EndpointMonitoringProviderBlackboxExporterSettingsV1: + module: Optional[str] = None + namespace: Optional[NamespaceV1] = None + exporter_url: Optional[str] = None + + +@dataclass +class EndpointMonitoringProviderSignalFxV1: + schema: Optional[str] = None + path: Optional[str] = None + labels: Optional[dict[str, str]] = None + name: Optional[str] = None + description: Optional[str] = None + provider: Optional[str] = None + metric_labels: Optional[dict[str, str]] = None + timeout: Optional[str] = None + check_interval: Optional[str] = None + signal_fx: Optional[EndpointMonitoringProviderSignalFxSettingsV1] = None + + +@dataclass +class EndpointMonitoringProviderSignalFxSettingsV1: + namespace: Optional[NamespaceV1] = None + exporter_url: Optional[str] = None + target_filter_label: Optional[str] = None + + +@dataclass +class PrometheusAlertsStatusProviderV1: + provider: Optional[str] = None + prometheus_alerts: Optional[PrometheusAlertsStatusProviderConfigV1] = None + + +@dataclass +class PrometheusAlertsStatusProviderConfigV1: + namespace: Optional[list[NamespaceV1]] = None + matchers: Optional[list[PrometheusAlertMatcherV1]] = None + + +@dataclass +class PrometheusAlertMatcherV1: + match_expression: Optional[PrometheusAlertMatcherExpressionV1] = None + component_status: Optional[str] = None + + +@dataclass +class PrometheusAlertMatcherExpressionV1: + alert: Optional[str] = None + labels: Optional[dict[str, str]] = None + + +@dataclass +class ManualStatusProviderV1: + provider: Optional[str] = None + manual: Optional[ManualStatusProviderConfigV1] = None + + +@dataclass +class ManualStatusProviderConfigV1: + component_status: Optional[str] = None + _from: Optional[str] = None + until: Optional[str] = None diff --git a/code_gen/gql_queries/saas_files.gql b/code_gen/gql_queries/saas_files.gql new file mode 100644 index 0000000000..cafbb2e8b3 --- /dev/null +++ b/code_gen/gql_queries/saas_files.gql @@ -0,0 +1,10 @@ +query ListSaasFilesV2 { + apps_v1 { + saasFilesV2 { + name + pipelinesProvider { + name + } + } + } +} \ No newline at end of file diff --git a/code_gen/mapper.py b/code_gen/mapper.py new file mode 100644 index 0000000000..0ed187fb47 --- /dev/null +++ b/code_gen/mapper.py @@ -0,0 +1,35 @@ +import re + + +def _keyword_sanitizer(s: str) -> str: + if s in ("global", "from", "type", "id", "to", "format"): + return f"_{s}" + return s + + +def primitive_to_python(name: str) -> str: + mapping = { + "ID": "str", + "String": "str", + "Int": "int", + "Float": "float", + "Boolean": "bool", + "DateTime": "DateTime", + "JSON": "dict[str, str]", + } + return mapping.get(name, name) + + +def class_to_python(name: str) -> str: + if name[-1] == "1": + return name.replace("_v1", "V1") + else: + return name.replace("_v2", "V2") + + +def field_to_python(name: str) -> str: + parts = re.split("(?=[A-Z])", name) + for i in range(len(parts)): + parts[i] = parts[i].lower() + + return _keyword_sanitizer("_".join(parts)) diff --git a/code_gen/query_parser.py b/code_gen/query_parser.py new file mode 100644 index 0000000000..47f53fa0d2 --- /dev/null +++ b/code_gen/query_parser.py @@ -0,0 +1,301 @@ +""" +Taken and modified from: + +https://github.com/graphql-python/gql-next/blob/master/gql/query_parser.py +""" +from __future__ import annotations +from typing import Any, List, Mapping, Union, cast +from dataclasses import dataclass, field + +from graphql import ( + GraphQLInterfaceType, + GraphQLObjectType, + GraphQLSchema, + validate, + parse, + get_operation_ast, + visit, + Visitor, + TypeInfo, + TypeInfoVisitor, + GraphQLNonNull, + is_scalar_type, + GraphQLList, + OperationDefinitionNode, + NonNullTypeNode, + TypeNode, + GraphQLEnumType, + is_enum_type, +) + +import mapper + + +@dataclass +class ParsedField: + py_name: str + type: str + unwrapped_type: str + nullable: bool + gql_name: str + child: ParsedObject = None + is_list: bool = False + default_value: Any = None + + +@dataclass +class ParsedObject: + name: str + py_name: str + fields: List[ParsedField] = field(default_factory=list) + parents: List[str] = field(default_factory=list) + children: List[ParsedObject] = field(default_factory=list) + + +@dataclass +class ParsedEnum: + name: str + values: Mapping[str, Any] + + +@dataclass +class ParsedVariableDefinition: + name: str + type: str + nullable: bool + default_value: Any = None + + +@dataclass +class ParsedOperation: + name: str + type: str + variables: List[ParsedVariableDefinition] = field(default_factory=list) + children: List[ParsedObject] = field(default_factory=list) + + +NodeT = Union[ParsedOperation, ParsedObject] + + +@dataclass +class ParsedQuery: + query: str + objects: List[NodeT] = field(default_factory=list) + enums: List[ParsedEnum] = field(default_factory=list) + + +class FieldToTypeMatcherVisitor(Visitor): + def __init__(self, schema: GraphQLSchema, type_info: TypeInfo, query: str): + Visitor.__init__(self) + self.schema = schema + self.type_info = type_info + self.query = query + self.parsed = ParsedQuery(query=self.query) + self.dfs_path: List[ParsedObject] = [] + + def push(self, obj: NodeT): + self.dfs_path.append(obj) + + def pull(self) -> NodeT: + return self.dfs_path.pop() + + @property + def current(self) -> ParsedObject: + return self.dfs_path[-1] + + # Document + def enter_operation_definition(self, node: OperationDefinitionNode, *_args): + name, operation = node.name, node.operation + + variables = [] + for var in node.variable_definitions: + ptype, nullable, _ = self.__variable_type_to_python(var.type) + variables.append( + ParsedVariableDefinition( + name=var.variable.name.value, + type=ptype, + nullable=nullable, + default_value=var.default_value.value + if var.default_value + else None, + ) + ) + + parsed_op = ParsedOperation( + name=name.value, + type=str(operation.value), + variables=variables, + children=[ + ParsedObject(name=f"{name.value}Data", py_name=f"{name.value}Data") + ], + ) + + self.parsed.objects.append(parsed_op) # pylint:disable=no-member + self.push(parsed_op) + self.push(parsed_op.children[0]) # pylint:disable=unsubscriptable-object + + return node + + # def enter_selection_set(self, node, *_): + # return node + + def leave_selection_set(self, node, *_): + self.pull() + return node + + # Fragments + + def enter_fragment_definition(self, node, *_): + # Same as operation definition + obj = ParsedObject( + name=node.name.value, + py_name=mapper.class_to_python(node.name.value), + ) + self.parsed.objects.append(obj) # pylint:disable=no-member + self.push(obj) + return node + + def enter_fragment_spread(self, node, *_): + self.current.parents.append(node.name.value) + return node + + # def enter_inline_fragment(self, node, *_): + # return node + # + # def leave_inline_fragment(self, node, *_): + # return node + + # Field + + def enter_field(self, node, *_): + name = node.alias.value if node.alias else node.name.value + graphql_type = self.type_info.get_type() + python_type, nullable, underlying_graphql_type = self.__scalar_type_to_python( + graphql_type + ) + is_list = python_type.startswith("list[") + unwrapped_type = python_type.removeprefix("list[").removesuffix("]") + + parsed_field = ParsedField( + py_name=mapper.field_to_python(name), + gql_name=name, + is_list=is_list, + type=python_type, + unwrapped_type=unwrapped_type, + nullable=nullable, + ) + + self.current.fields.append(parsed_field) # TODO: nullables should go to the end + + if not is_scalar_type(underlying_graphql_type): + if is_enum_type(underlying_graphql_type): + enum_type = cast( + GraphQLEnumType, self.schema.type_map[underlying_graphql_type.name] + ) + name = enum_type.name + if not any( + e.name == name for e in self.parsed.enums + ): # pylint:disable=not-an-iterable + parsed_enum = ParsedEnum( + name=enum_type.name, + values={ + name: value.value or name + for name, value in enum_type.values.items() + }, + ) + self.parsed.enums.append(parsed_enum) # pylint:disable=no-member + else: + obj = ParsedObject( + name=str(underlying_graphql_type), + py_name=mapper.class_to_python(str(underlying_graphql_type)), + ) + parsed_field.child = obj + + self.current.children.append(obj) + self.push(obj) + + return node + + @staticmethod + def __scalar_type_to_python(scalar): + nullable = True + if isinstance(scalar, GraphQLNonNull): + nullable = False + scalar = scalar.of_type + + mapping = { + "ID": "str", + "String": "str", + "Int": "int", + "Float": "float", + "Boolean": "bool", + "DateTime": "DateTime", + } + + if isinstance(scalar, GraphQLList): + scalar = scalar.of_type + if isinstance(scalar, GraphQLNonNull): + scalar = scalar.of_type + nullable = False + + name = mapper.primitive_to_python(str(scalar)) + if isinstance(scalar, GraphQLObjectType) or isinstance( + scalar, GraphQLInterfaceType + ): + name = mapper.class_to_python(str(scalar)) + + mapping = f"list[{name}]" + elif isinstance(scalar, GraphQLObjectType) or isinstance( + scalar, GraphQLInterfaceType + ): + mapping = mapper.class_to_python(str(scalar)) + else: + mapping = mapper.primitive_to_python(str(scalar)) + + return mapping, nullable, scalar + + @staticmethod + def __variable_type_to_python(var_type: TypeNode): + nullable = True + if isinstance(var_type, NonNullTypeNode): + nullable = False + var_type = var_type.type + + mapping = mapper.primitive_to_python(var_type.name.value) + return mapping, nullable, var_type + + +class AnonymousQueryError(Exception): + def __init__(self): + super().__init__("All queries must be named") + + +class InvalidQueryError(Exception): + def __init__(self, errors): + self.errors = errors + message = "\n".join(str(err) for err in errors) + super().__init__(message) + + +class QueryParser: + def __init__(self, schema: GraphQLSchema): + self.schema = schema + self.__jinja2_env = None + + def parse(self, query: str, should_validate: bool = True) -> ParsedQuery: + document_ast = parse(query) + operation = get_operation_ast(document_ast) + + # if not operation.name: + # raise AnonymousQueryError() + + if should_validate: + errors = validate(self.schema, document_ast) + if errors: + raise InvalidQueryError(errors) + + type_info = TypeInfo(self.schema) + visitor = FieldToTypeMatcherVisitor(self.schema, type_info, query) + visit(document_ast, TypeInfoVisitor(type_info, visitor)) + result = visitor.parsed + return result diff --git a/code_gen/requirements.txt b/code_gen/requirements.txt new file mode 100644 index 0000000000..188873e886 --- /dev/null +++ b/code_gen/requirements.txt @@ -0,0 +1 @@ +gql[all] diff --git a/reconcile/service_dependencies.py b/reconcile/service_dependencies.py index 71ddd5b75d..39703aba5d 100644 --- a/reconcile/service_dependencies.py +++ b/reconcile/service_dependencies.py @@ -8,6 +8,8 @@ managed_external_resources, ) +from reconcile.typed_queries import query_saas_files + APPS_QUERY = """ { @@ -71,6 +73,10 @@ def get_desired_dependency_names(app, dependency_map): if github_urls: required_dep_names.update(get_dependency_names(dependency_map, "github")) + for saas_file in query_saas_files(): + # Do stuff on types :) + print(f"{saas_file.name} {saas_file.pipelines_provider.name}") + jenkins_configs = app.get("jenkinsConfigs") if jenkins_configs: instances = {jc["instance"]["name"] for jc in jenkins_configs} diff --git a/reconcile/typed_queries.py b/reconcile/typed_queries.py new file mode 100644 index 0000000000..b96b6d0b62 --- /dev/null +++ b/reconcile/typed_queries.py @@ -0,0 +1,25 @@ +######################################## +# Very basic and dirty PoC for querying code-generated types +######################################## +from code_gen.gen.schema import AppV1, SaasFileV2 +import code_gen.gen.saas_files +from reconcile.utils import gql + + +def get_query(query_name: str) -> str: + with open(f"code_gen/gql_queries/{query_name}.gql") as f: + return f.read() + + +def query_saas_files() -> list[SaasFileV2]: + gqlapi = gql.get_api() + query = get_query("saas_files") + data = gqlapi.query(query) + + apps: list[AppV1] = code_gen.gen.saas_files.data_to_obj(data) + all_saas_files: list[SaasFileV2] = [] + for app in apps: + for app_saas_file in app.saas_files_v2: + all_saas_files.append(app_saas_file) + + return all_saas_files From 7b2d57f77d9cf2148f5f8ea4772cc46342f4b3d8 Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Tue, 10 May 2022 14:53:59 +0200 Subject: [PATCH 02/12] Codegen with pydantic --- Makefile | 3 + code_gen/code_gen.py | 135 +- code_gen/gen/saas_files.py | 49 +- code_gen/gen/schema.py | 2520 --------------------------- code_gen/gql_queries/saas_files.gql | 2 +- reconcile/typed_queries.py | 5 +- 6 files changed, 42 insertions(+), 2672 deletions(-) delete mode 100644 code_gen/gen/schema.py diff --git a/Makefile b/Makefile index 1202b2a1a8..38cacee149 100644 --- a/Makefile +++ b/Makefile @@ -77,6 +77,9 @@ clean: @find . -name "__pycache__" -type d -print0 | xargs -0 rm -rf @find . -name "*.pyc" -delete +generate-queries: + . ./venv/bin/activate && python3 code_gen/code_gen.py + dev-venv: clean ## Create a local venv for your IDE and remote debugging python3.9 -m venv venv . ./venv/bin/activate && pip install --upgrade pip diff --git a/code_gen/code_gen.py b/code_gen/code_gen.py index ec4412b1c8..7742f8bc82 100644 --- a/code_gen/code_gen.py +++ b/code_gen/code_gen.py @@ -1,11 +1,9 @@ import os import requests -from typing import Optional from graphql import build_client_schema, get_introspection_query -from query_parser import ParsedField, ParsedObject, QueryParser -import mapper +from query_parser import ParsedObject, QueryParser SPACES = " " @@ -18,70 +16,6 @@ def query_schema() -> dict: return request.json()["data"] -schema = query_schema() - -####################### -# SCHEMA PARSER START -####################### - - -def parse_field_type(m: Optional[dict]) -> str: - if not m: - return "" - - kind = m["kind"] - name = m["name"] or "" - if kind == "SCALAR": - name = mapper.primitive_to_python(name) - if kind in ("OBJECT", "INTERFACE"): - name = mapper.class_to_python(name) - sub = parse_field_type(m["ofType"]) or "" - - if kind == "LIST": - return f"list[{name}{sub}]" - return f"{name}{sub}" - - -def write_schema_file(schema: dict, out_file: str): - schema = query_schema() - - lines = [] - types = schema["__schema"]["types"] - - lines.append("# pylint: disable=too-many-lines\n") - lines.append("# pylint: disable=too-many-instance-attributes\n") - lines.append("from __future__ import annotations\n") - lines.append("from dataclasses import dataclass\n") - lines.append("from typing import Optional\n") - - for t in types: - if not t["kind"] in ("OBJECT", "INTERFACE"): - continue - - if t["name"].startswith("__"): - continue - - name = mapper.class_to_python(t["name"]) - lines.append("\n") - lines.append("\n") - lines.append("@dataclass\n") - lines.append(f"class {name}:\n") - for field in t["fields"]: - field_name = mapper.field_to_python(field["name"]) - field_type = parse_field_type(field["type"]) - lines.append(f"{SPACES}{field_name}: Optional[{field_type}] = None\n") - - with open(out_file, "w") as f: - f.writelines(lines) - - -write_schema_file(schema=schema, out_file="code_gen/gen/schema.py") - -####################### -# QUERY PARSER START -####################### - - def find_query_files() -> list[str]: return [file for file in os.listdir("code_gen/gql_queries") if file.endswith(".gql")] @@ -90,45 +24,26 @@ def is_primitive(name: str) -> bool: return name in ("int", "str", "bool", "float", "DateTime") -def unwrap_list(field: ParsedField, prefix: str, lines: list[str]): - if not field.type.startswith("list["): - return - lines.append("\n") - lines.append("\n") - lines.append( - f"def {prefix}_list_{field.py_name}(data: list[dict[Any, Any]]) -> {field.type}:\n" - ) - lines.append(f"{SPACES}result: {field.type} = []\n") - lines.append(f"{SPACES}for el in data:\n") - lines.append(f"{SPACES}{SPACES}result.append({prefix}_{field.py_name}(el))\n") - lines.append(f"{SPACES}return result\n") - +def post_order_traverse(node: ParsedObject, lines: list[str]): + """ + Pydantic doesnt play well with from __future__ import annotations + --> order of class declaration is important --> post-order + """ + for child in node.children: + post_order_traverse(node=child, lines=lines) -def traverse(node: ParsedObject, prefix: str, lines: list[str]): for field in node.fields: typ = field.unwrapped_type - unwrap_list(field=field, prefix=prefix, lines=lines) - lines.append("\n") - lines.append("\n") if is_primitive(typ): - lines.append(f"def {prefix}_{field.py_name}(data: str) -> {typ}:\n") - lines.append(f"{SPACES}return {typ}(data)\n") - else: - lines.append( - f"def {prefix}_{field.py_name}(data: dict[Any, Any]) -> {typ}:\n" - ) - lines.append(f"{SPACES}result: {typ} = {typ}()\n") - for subfield in field.child.fields: - pp = "list_" if subfield.is_list else "" - lines.append( - f'{SPACES}result.{subfield.py_name} = {prefix}_{node.py_name}_{pp}{subfield.py_name}(data=data["{subfield.gql_name}"])\n' - ) - lines.append(f"{SPACES}return result\n") - for child in node.children: - traverse(node=child, prefix=f"{prefix}_{node.py_name}", lines=lines) - + continue -query_parser = QueryParser(build_client_schema(schema)) + lines.append("\n") + lines.append("\n") + lines.append( + f"class {typ}(BaseModel):\n" + ) + for subfield in field.child.fields: + lines.append(f"{SPACES}{subfield.py_name}: {subfield.type} = Field(..., alias=\"{subfield.gql_name}\")\n") def process_query(query: str, out_file: str): @@ -137,24 +52,26 @@ def process_query(query: str, out_file: str): query_data = query_root.objects[0].children[0] lines.append("from typing import Any\n") lines.append("\n") - lines.append("from code_gen.gen.schema import *\n") + lines.append("from pydantic import BaseModel, Field\n") + + post_order_traverse(node=query_data, lines=lines) + lines.append("\n") lines.append("\n") lines.append( f"def data_to_obj(data: dict[Any, Any]) -> {query_data.fields[0].type}:\n" ) - data_name = query_data.fields[0].gql_name if query_data.fields[0].is_list: - data_name = f"list_{data_name}" - lines.append( - f'{SPACES}result: {query_data.fields[0].type} = _{data_name}(data=data["{query_data.fields[0].gql_name}"])\n' - ) - lines.append(f"{SPACES}return result\n") - traverse(node=query_data, prefix="", lines=lines) + lines.append(f'{SPACES}return [{query_data.fields[0].unwrapped_type}(**el) for el in data[\"{query_data.fields[0].gql_name}\"]]\n') + else: + lines.append(f'{SPACES}return {query_data.fields[0].unwrapped_type}(**data[\"{query_data.fields[0].gql_name}\"])\n') with open(out_file, "w") as f: f.writelines(lines) +schema = query_schema() +query_parser = QueryParser(build_client_schema(schema)) + for file in find_query_files(): with open(f"code_gen/gql_queries/{file}", "r") as f: process_query(query=f.read(), out_file=f"code_gen/gen/{file[:-3]}py") diff --git a/code_gen/gen/saas_files.py b/code_gen/gen/saas_files.py index 3a5d47d9c6..6d40d9bb33 100644 --- a/code_gen/gen/saas_files.py +++ b/code_gen/gen/saas_files.py @@ -1,49 +1,20 @@ from typing import Any -from code_gen.gen.schema import * +from pydantic import BaseModel, Field -def data_to_obj(data: dict[Any, Any]) -> list[AppV1]: - result: list[AppV1] = _list_apps_v1(data=data["apps_v1"]) - return result - - -def _list_apps_v1(data: list[dict[Any, Any]]) -> list[AppV1]: - result: list[AppV1] = [] - for el in data: - result.append(_apps_v1(el)) - return result - - -def _apps_v1(data: dict[Any, Any]) -> AppV1: - result: AppV1 = AppV1() - result.saas_files_v2 = _ListSaasFilesV2Data_list_saas_files_v2(data=data["saasFilesV2"]) - return result +class PipelinesProviderV1(BaseModel): + name: str = Field(..., alias="name") -def _ListSaasFilesV2Data_list_saas_files_v2(data: list[dict[Any, Any]]) -> list[SaasFileV2]: - result: list[SaasFileV2] = [] - for el in data: - result.append(_ListSaasFilesV2Data_saas_files_v2(el)) - return result +class SaasFileV2(BaseModel): + name: str = Field(..., alias="name") + pipelines_provider: PipelinesProviderV1 = Field(..., alias="pipelinesProvider") -def _ListSaasFilesV2Data_saas_files_v2(data: dict[Any, Any]) -> SaasFileV2: - result: SaasFileV2 = SaasFileV2() - result.name = _ListSaasFilesV2Data_AppV1_name(data=data["name"]) - result.pipelines_provider = _ListSaasFilesV2Data_AppV1_pipelines_provider(data=data["pipelinesProvider"]) - return result +class AppV1(BaseModel): + saas_files_v2: list[SaasFileV2] = Field(..., alias="saasFilesV2") -def _ListSaasFilesV2Data_AppV1_name(data: str) -> str: - return str(data) - - -def _ListSaasFilesV2Data_AppV1_pipelines_provider(data: dict[Any, Any]) -> PipelinesProviderV1: - result: PipelinesProviderV1 = PipelinesProviderV1() - result.name = _ListSaasFilesV2Data_AppV1_SaasFileV2_name(data=data["name"]) - return result - - -def _ListSaasFilesV2Data_AppV1_SaasFileV2_name(data: str) -> str: - return str(data) +def data_to_obj(data: dict[Any, Any]) -> list[AppV1]: + return [AppV1(**el) for el in data["apps_v1"]] diff --git a/code_gen/gen/schema.py b/code_gen/gen/schema.py deleted file mode 100644 index 6b1c90241e..0000000000 --- a/code_gen/gen/schema.py +++ /dev/null @@ -1,2520 +0,0 @@ -# pylint: disable=too-many-lines -# pylint: disable=too-many-instance-attributes -from __future__ import annotations -from dataclasses import dataclass -from typing import Optional - - -@dataclass -class Query: - app_interface_settings_v1: Optional[list[AppInterfaceSettingsV1]] = None - app_interface_emails_v1: Optional[list[AppInterfaceEmailV1]] = None - app_interface_slack_notifications_v1: Optional[list[AppInterfaceSlackNotificationV1]] = None - credentials_requests_v1: Optional[list[CredentialsRequestV1]] = None - users_v1: Optional[list[UserV1]] = None - external_users_v1: Optional[list[ExternalUserV1]] = None - bots_v1: Optional[list[BotV1]] = None - roles_v1: Optional[list[RoleV1]] = None - permissions_v1: Optional[list[PermissionV1]] = None - awsgroups_v1: Optional[list[AWSGroupV1]] = None - awsaccounts_v1: Optional[list[AWSAccountV1]] = None - clusters_v1: Optional[list[ClusterV1]] = None - kafka_clusters_v1: Optional[list[KafkaClusterV1]] = None - namespaces_v1: Optional[list[NamespaceV1]] = None - gcp_projects_v1: Optional[list[GcpProjectV1]] = None - quay_orgs_v1: Optional[list[QuayOrgV1]] = None - quay_instances_v1: Optional[list[QuayInstanceV1]] = None - jenkins_instances_v1: Optional[list[JenkinsInstanceV1]] = None - jenkins_configs_v1: Optional[list[JenkinsConfigV1]] = None - jira_servers_v1: Optional[list[JiraServerV1]] = None - jira_boards_v1: Optional[list[JiraBoardV1]] = None - sendgrid_accounts_v1: Optional[list[SendGridAccountV1]] = None - products_v1: Optional[list[ProductV1]] = None - environments_v1: Optional[list[EnvironmentV1]] = None - apps_v1: Optional[list[AppV1]] = None - escalation_policies_1: Optional[list[AppEscalationPolicyV1]] = None - resources_v1: Optional[list[ResourceV1]] = None - vault_audit_backends_v1: Optional[list[VaultAuditV1]] = None - vault_auth_backends_v1: Optional[list[VaultAuthV1]] = None - vault_secret_engines_v1: Optional[list[VaultSecretEngineV1]] = None - vault_roles_v1: Optional[list[VaultRoleV1]] = None - vault_policies_v1: Optional[list[VaultPolicyV1]] = None - dependencies_v1: Optional[list[DependencyV1]] = None - githuborg_v1: Optional[list[GithubOrgV1]] = None - gitlabinstance_v1: Optional[list[GitlabInstanceV1]] = None - integrations_v1: Optional[list[IntegrationV1]] = None - documents_v1: Optional[list[DocumentV1]] = None - reports_v1: Optional[list[ReportV1]] = None - sre_checkpoints_v1: Optional[list[SRECheckpointV1]] = None - sentry_teams_v1: Optional[list[SentryTeamV1]] = None - sentry_instances_v1: Optional[list[SentryInstanceV1]] = None - app_interface_sql_queries_v1: Optional[list[AppInterfaceSqlQueryV1]] = None - saas_files_v2: Optional[list[SaasFileV2]] = None - pipelines_providers_v1: Optional[list[PipelinesProviderV1]] = None - unleash_instances_v1: Optional[list[UnleashInstanceV1]] = None - gabi_instances_v1: Optional[list[GabiInstanceV1]] = None - template_tests_v1: Optional[list[TemplateTestV1]] = None - dns_zone_v1: Optional[list[DnsZoneV1]] = None - slack_workspaces_v1: Optional[list[SlackWorkspaceV1]] = None - ocp_release_mirror_v1: Optional[list[OcpReleaseMirrorV1]] = None - slo_document_v1: Optional[list[SLODocumentV1]] = None - shared_resources_v1: Optional[list[SharedResourcesV1]] = None - pagerduty_instances_v1: Optional[list[PagerDutyInstanceV1]] = None - ocm_instances_v1: Optional[list[OpenShiftClusterManagerV1]] = None - dyn_traffic_directors_v1: Optional[list[DynTrafficDirectorV1]] = None - status_page_v1: Optional[list[StatusPageV1]] = None - status_page_component_v1: Optional[list[StatusPageComponentV1]] = None - endpoint_monitoring_provider_v1: Optional[list[EndpointMonitoringProviderV1]] = None - - -@dataclass -class AppInterfaceSettingsV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - vault: Optional[bool] = None - kube_binary: Optional[str] = None - pull_request_gateway: Optional[str] = None - merge_request_gateway: Optional[str] = None - saas_deploy_job_template: Optional[str] = None - hash_length: Optional[int] = None - smtp: Optional[SmtpSettingsV1] = None - github_repo_invites: Optional[GithubRepoInvitesV1] = None - dependencies: Optional[list[AppInterfaceDependencyMappingV1]] = None - credentials: Optional[list[CredentialsRequestMapV1]] = None - sql_query: Optional[SqlQuerySettingsV1] = None - push_gateway_cluster: Optional[ClusterV1] = None - alerting_services: Optional[list[str]] = None - endpoint_monitoring_blackbox_exporter_modules: Optional[list[str]] = None - ldap: Optional[LdapSettingsV1] = None - - -@dataclass -class SmtpSettingsV1: - mail_address: Optional[str] = None - credentials: Optional[VaultSecretV1] = None - - -@dataclass -class VaultSecretV1: - path: Optional[str] = None - field: Optional[str] = None - _format: Optional[str] = None - version: Optional[int] = None - - -@dataclass -class GithubRepoInvitesV1: - credentials: Optional[VaultSecretV1] = None - - -@dataclass -class AppInterfaceDependencyMappingV1: - _type: Optional[str] = None - services: Optional[list[DependencyV1]] = None - - -@dataclass -class DependencyV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - statefulness: Optional[str] = None - ops_model: Optional[str] = None - status_page: Optional[str] = None - _s_l_a: Optional[float] = None - dependency_failure_impact: Optional[str] = None - - -@dataclass -class CredentialsRequestMapV1: - name: Optional[str] = None - secret: Optional[VaultSecretV1] = None - - -@dataclass -class SqlQuerySettingsV1: - image_repository: Optional[str] = None - pull_secret: Optional[NamespaceOpenshiftResourceVaultSecretV1] = None - - -@dataclass -class NamespaceOpenshiftResourceVaultSecretV1: - provider: Optional[str] = None - path: Optional[str] = None - version: Optional[int] = None - name: Optional[str] = None - labels: Optional[dict[str, str]] = None - annotations: Optional[dict[str, str]] = None - _type: Optional[str] = None - validate_alertmanager_config: Optional[bool] = None - alertmanager_config_key: Optional[str] = None - - -@dataclass -class NamespaceOpenshiftResourceV1: - provider: Optional[str] = None - - -@dataclass -class ClusterV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - auth: Optional[ClusterAuthV1] = None - observability_namespace: Optional[NamespaceV1] = None - grafana_url: Optional[str] = None - console_url: Optional[str] = None - kibana_url: Optional[str] = None - prometheus_url: Optional[str] = None - alertmanager_url: Optional[str] = None - server_url: Optional[str] = None - elb_f_q_d_n: Optional[str] = None - managed_groups: Optional[list[str]] = None - managed_cluster_roles: Optional[bool] = None - ocm: Optional[OpenShiftClusterManagerV1] = None - spec: Optional[ClusterSpecV1] = None - external_configuration: Optional[ClusterExternalConfigurationV1] = None - upgrade_policy: Optional[ClusterUpgradePolicyV1] = None - additional_routers: Optional[list[ClusterAdditionalRouterV1]] = None - network: Optional[ClusterNetworkV1] = None - machine_pools: Optional[list[ClusterMachinePoolV1]] = None - peering: Optional[ClusterPeeringV1] = None - addons: Optional[list[ClusterAddonV1]] = None - insecure_skip_t_l_s_verify: Optional[bool] = None - jump_host: Optional[ClusterJumpHostV1] = None - automation_token: Optional[VaultSecretV1] = None - cluster_admin_automation_token: Optional[VaultSecretV1] = None - internal: Optional[bool] = None - disable: Optional[DisableClusterAutomationsV1] = None - aws_infrastructure_access: Optional[list[AWSInfrastructureAccessV1]] = None - aws_infrastructure_management_accounts: Optional[list[AWSInfrastructureManagementAccountV1]] = None - prometheus: Optional[ClusterPrometheusV1] = None - namespaces: Optional[list[NamespaceV1]] = None - - -@dataclass -class ClusterAuthV1: - service: Optional[str] = None - - -@dataclass -class NamespaceV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - delete: Optional[bool] = None - description: Optional[str] = None - grafana_url: Optional[str] = None - cluster: Optional[ClusterV1] = None - app: Optional[AppV1] = None - environment: Optional[EnvironmentV1] = None - limit_ranges: Optional[LimitRangeV1] = None - quota: Optional[ResourceQuotaV1] = None - network_policies_allow: Optional[list[NamespaceV1]] = None - cluster_admin: Optional[bool] = None - managed_roles: Optional[bool] = None - managed_resource_types: Optional[list[str]] = None - managed_resource_type_overrides: Optional[list[NamespaceManagedResourceTypeOverridesV1]] = None - managed_resource_names: Optional[list[NamespaceManagedResourceNamesV1]] = None - shared_resources: Optional[list[SharedResourcesV1]] = None - openshift_resources: Optional[list[NamespaceOpenshiftResourceV1]] = None - managed_terraform_resources: Optional[bool] = None - terraform_resources: Optional[list[NamespaceTerraformResourceV1]] = None - openshift_service_account_tokens: Optional[list[ServiceAccountTokenSpecV1]] = None - kafka_cluster: Optional[KafkaClusterV1] = None - - -@dataclass -class AppV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - onboarding_status: Optional[str] = None - grafana_urls: Optional[list[GrafanaDashboardUrlsV1]] = None - sops_url: Optional[str] = None - architecture_document: Optional[str] = None - parent_app: Optional[AppV1] = None - service_docs: Optional[list[str]] = None - service_owners: Optional[list[OwnerV1]] = None - service_notifications: Optional[list[OwnerV1]] = None - dependencies: Optional[list[DependencyV1]] = None - gcr_repos: Optional[list[AppGcrReposV1]] = None - quay_repos: Optional[list[AppQuayReposV1]] = None - escalation_policy: Optional[AppEscalationPolicyV1] = None - end_points: Optional[list[AppEndPointsV1]] = None - code_components: Optional[list[AppCodeComponentsV1]] = None - sentry_projects: Optional[list[AppSentryProjectsV1]] = None - status_page_components: Optional[list[StatusPageComponentV1]] = None - namespaces: Optional[list[NamespaceV1]] = None - children_apps: Optional[list[AppV1]] = None - jenkins_configs: Optional[list[JenkinsConfigV1]] = None - saas_files_v2: Optional[list[SaasFileV2]] = None - sre_checkpoints: Optional[list[SRECheckpointV1]] = None - - -@dataclass -class GrafanaDashboardUrlsV1: - title: Optional[str] = None - url: Optional[str] = None - - -@dataclass -class OwnerV1: - name: Optional[str] = None - email: Optional[str] = None - - -@dataclass -class AppGcrReposV1: - project: Optional[GcpProjectV1] = None - items: Optional[list[AppGcrReposItemsV1]] = None - - -@dataclass -class GcpProjectV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - managed_teams: Optional[list[str]] = None - automation_token: Optional[VaultSecretV1] = None - push_credentials: Optional[VaultSecretV1] = None - - -@dataclass -class AppGcrReposItemsV1: - name: Optional[str] = None - description: Optional[str] = None - public: Optional[bool] = None - mirror: Optional[ContainerImageMirrorV1] = None - - -@dataclass -class ContainerImageMirrorV1: - url: Optional[str] = None - pull_credentials: Optional[VaultSecretV1] = None - tags: Optional[list[str]] = None - tags_exclude: Optional[list[str]] = None - - -@dataclass -class AppQuayReposV1: - org: Optional[QuayOrgV1] = None - teams: Optional[list[AppQuayReposTeamsV1]] = None - notifications: Optional[list[AppQuayReposNotificationsV1]] = None - items: Optional[list[AppQuayReposItemsV1]] = None - - -@dataclass -class QuayOrgV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - mirror: Optional[QuayOrgV1] = None - managed_repos: Optional[bool] = None - instance: Optional[QuayInstanceV1] = None - server_url: Optional[str] = None - managed_teams: Optional[list[str]] = None - automation_token: Optional[VaultSecretV1] = None - push_credentials: Optional[VaultSecretV1] = None - - -@dataclass -class QuayInstanceV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - url: Optional[str] = None - - -@dataclass -class AppQuayReposTeamsV1: - permissions: Optional[list[PermissionQuayOrgTeamV1]] = None - role: Optional[str] = None - - -@dataclass -class PermissionQuayOrgTeamV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - service: Optional[str] = None - quay_org: Optional[QuayOrgV1] = None - team: Optional[str] = None - - -@dataclass -class PermissionV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - service: Optional[str] = None - - -@dataclass -class AppQuayReposNotificationsV1: - event: Optional[str] = None - severity: Optional[str] = None - method: Optional[str] = None - escalation_policy: Optional[AppEscalationPolicyV1] = None - verification_method: Optional[AppQuayReposNotificationVerificationMethodV1] = None - - -@dataclass -class AppEscalationPolicyV1: - path: Optional[str] = None - name: Optional[str] = None - labels: Optional[dict[str, str]] = None - description: Optional[str] = None - channels: Optional[AppEscalationPolicyChannelsV1] = None - - -@dataclass -class AppEscalationPolicyChannelsV1: - slack_user_group: Optional[list[PermissionSlackUsergroupV1]] = None - email: Optional[list[str]] = None - pagerduty: Optional[PagerDutyTargetV1] = None - jira_board: Optional[list[JiraBoardV1]] = None - next_escalation_policy: Optional[AppEscalationPolicyV1] = None - - -@dataclass -class PermissionSlackUsergroupV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - service: Optional[str] = None - handle: Optional[str] = None - workspace: Optional[SlackWorkspaceV1] = None - pagerduty: Optional[list[PagerDutyTargetV1]] = None - channels: Optional[list[str]] = None - owners_from_repos: Optional[list[str]] = None - schedule: Optional[ScheduleV1] = None - skip: Optional[bool] = None - roles: Optional[list[RoleV1]] = None - - -@dataclass -class SlackWorkspaceV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - token: Optional[VaultSecretV1] = None - api_client: Optional[SlackWorkspaceApiClientV1] = None - integrations: Optional[list[SlackWorkspaceIntegrationV1]] = None - managed_usergroups: Optional[list[str]] = None - - -@dataclass -class SlackWorkspaceApiClientV1: - _global: Optional[SlackWorkspaceApiClientGlobalConfigV1] = None - methods: Optional[list[SlackWorkspaceApiClientMethodConfigV1]] = None - - -@dataclass -class SlackWorkspaceApiClientGlobalConfigV1: - max_retries: Optional[int] = None - timeout: Optional[int] = None - - -@dataclass -class SlackWorkspaceApiClientMethodConfigV1: - name: Optional[str] = None - args: Optional[dict[str, str]] = None - - -@dataclass -class SlackWorkspaceIntegrationV1: - name: Optional[str] = None - token: Optional[VaultSecretV1] = None - channel: Optional[str] = None - icon_emoji: Optional[str] = None - username: Optional[str] = None - - -@dataclass -class PagerDutyTargetV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - instance: Optional[PagerDutyInstanceV1] = None - schedule_i_d: Optional[str] = None - escalation_policy_i_d: Optional[str] = None - - -@dataclass -class PagerDutyInstanceV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - token: Optional[VaultSecretV1] = None - - -@dataclass -class ScheduleV1: - name: Optional[str] = None - description: Optional[str] = None - schedule: Optional[list[ScheduleEntryV1]] = None - - -@dataclass -class ScheduleEntryV1: - start: Optional[str] = None - end: Optional[str] = None - users: Optional[list[UserV1]] = None - - -@dataclass -class UserV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - org_username: Optional[str] = None - github_username: Optional[str] = None - quay_username: Optional[str] = None - slack_username: Optional[str] = None - pagerduty_username: Optional[str] = None - aws_username: Optional[str] = None - public_gpg_key: Optional[str] = None - tag_on_merge_requests: Optional[bool] = None - tag_on_cluster_updates: Optional[bool] = None - roles: Optional[list[RoleV1]] = None - requests: Optional[list[CredentialsRequestV1]] = None - queries: Optional[list[AppInterfaceSqlQueryV1]] = None - gabi_instances: Optional[list[GabiInstanceV1]] = None - - -@dataclass -class RoleV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - expiration_date: Optional[str] = None - permissions: Optional[list[PermissionV1]] = None - oidc_permissions: Optional[list[OidcPermissionV1]] = None - tag_on_cluster_updates: Optional[bool] = None - access: Optional[list[AccessV1]] = None - aws_groups: Optional[list[AWSGroupV1]] = None - user_policies: Optional[list[AWSUserPolicyV1]] = None - sentry_teams: Optional[list[SentryTeamV1]] = None - sentry_roles: Optional[list[SentryRoleV1]] = None - sendgrid_accounts: Optional[list[SendGridAccountV1]] = None - owned_saas_files: Optional[list[SaasFileV2]] = None - users: Optional[list[UserV1]] = None - bots: Optional[list[BotV1]] = None - - -@dataclass -class OidcPermissionV1: - schema: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - service: Optional[str] = None - description: Optional[str] = None - - -@dataclass -class AccessV1: - namespace: Optional[NamespaceV1] = None - role: Optional[str] = None - cluster: Optional[ClusterV1] = None - group: Optional[str] = None - cluster_role: Optional[str] = None - - -@dataclass -class AWSGroupV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - account: Optional[AWSAccountV1] = None - name: Optional[str] = None - description: Optional[str] = None - policies: Optional[list[str]] = None - roles: Optional[list[RoleV1]] = None - - -@dataclass -class AWSAccountV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - console_url: Optional[str] = None - uid: Optional[str] = None - resources_default_region: Optional[str] = None - supported_deployment_regions: Optional[list[str]] = None - provider_version: Optional[str] = None - terraform_username: Optional[str] = None - account_owners: Optional[list[OwnerV1]] = None - automation_token: Optional[VaultSecretV1] = None - garbage_collection: Optional[bool] = None - enable_deletion: Optional[bool] = None - deletion_approvals: Optional[list[AWSAccountDeletionApprovalV1]] = None - disable: Optional[DisableClusterAutomationsV1] = None - delete_keys: Optional[list[str]] = None - reset_passwords: Optional[list[AWSAccountResetPasswordV1]] = None - premium_support: Optional[bool] = None - partition: Optional[str] = None - sharing: Optional[list[AWSAccountSharingOptionV1]] = None - ecrs: Optional[list[AWSECRV1]] = None - policies: Optional[list[AWSUserPolicyV1]] = None - - -@dataclass -class AWSAccountDeletionApprovalV1: - _type: Optional[str] = None - name: Optional[str] = None - expiration: Optional[str] = None - - -@dataclass -class DisableClusterAutomationsV1: - integrations: Optional[list[str]] = None - e2e_tests: Optional[list[str]] = None - - -@dataclass -class AWSAccountResetPasswordV1: - user: Optional[UserV1] = None - request_id: Optional[str] = None - - -@dataclass -class AWSAccountSharingOptionV1: - provider: Optional[str] = None - account: Optional[AWSAccountV1] = None - - -@dataclass -class AWSECRV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - account: Optional[AWSAccountV1] = None - name: Optional[str] = None - description: Optional[str] = None - region: Optional[str] = None - - -@dataclass -class AWSUserPolicyV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - account: Optional[AWSAccountV1] = None - name: Optional[str] = None - description: Optional[str] = None - mandatory: Optional[bool] = None - policy: Optional[dict[str, str]] = None - - -@dataclass -class SentryTeamV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - instance: Optional[SentryInstanceV1] = None - - -@dataclass -class SentryInstanceV1: - schema: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - console_url: Optional[str] = None - automation_token: Optional[VaultSecretV1] = None - admin_user: Optional[VaultSecretV1] = None - - -@dataclass -class SentryRoleV1: - role: Optional[str] = None - instance: Optional[SentryInstanceV1] = None - - -@dataclass -class SendGridAccountV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - token: Optional[VaultSecretV1] = None - - -@dataclass -class SaasFileV2: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - app: Optional[AppV1] = None - pipelines_provider: Optional[PipelinesProviderV1] = None - slack: Optional[SlackOutputV1] = None - managed_resource_types: Optional[list[str]] = None - authentication: Optional[SaasFileAuthenticationV1] = None - parameters: Optional[dict[str, str]] = None - secret_parameters: Optional[list[SaasSecretParametersV1]] = None - resource_templates: Optional[list[SaasResourceTemplateV2]] = None - image_patterns: Optional[list[str]] = None - takeover: Optional[bool] = None - compare: Optional[bool] = None - publish_job_logs: Optional[bool] = None - cluster_admin: Optional[bool] = None - use_channel_in_image_tag: Optional[bool] = None - configurable_resources: Optional[bool] = None - deploy_resources: Optional[DeployResourcesV1] = None - roles: Optional[list[RoleV1]] = None - - -@dataclass -class PipelinesProviderV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - provider: Optional[str] = None - - -@dataclass -class SlackOutputV1: - workspace: Optional[SlackWorkspaceV1] = None - channel: Optional[str] = None - icon_emoji: Optional[str] = None - username: Optional[str] = None - output: Optional[str] = None - notifications: Optional[SlackOutputNotificationsV1] = None - - -@dataclass -class SlackOutputNotificationsV1: - start: Optional[bool] = None - - -@dataclass -class SaasFileAuthenticationV1: - code: Optional[VaultSecretV1] = None - image: Optional[VaultSecretV1] = None - - -@dataclass -class SaasSecretParametersV1: - name: Optional[str] = None - secret: Optional[VaultSecretV1] = None - - -@dataclass -class SaasResourceTemplateV2: - name: Optional[str] = None - url: Optional[str] = None - path: Optional[str] = None - provider: Optional[str] = None - hash_length: Optional[int] = None - parameters: Optional[dict[str, str]] = None - secret_parameters: Optional[list[SaasSecretParametersV1]] = None - targets: Optional[list[SaasResourceTemplateTargetV2]] = None - - -@dataclass -class SaasResourceTemplateTargetV2: - namespace: Optional[NamespaceV1] = None - ref: Optional[str] = None - promotion: Optional[SaasResourceTemplateTargetPromotionV1] = None - parameters: Optional[dict[str, str]] = None - secret_parameters: Optional[list[SaasSecretParametersV1]] = None - upstream: Optional[SaasResourceTemplateTargetUpstreamV1] = None - disable: Optional[bool] = None - delete: Optional[bool] = None - - -@dataclass -class SaasResourceTemplateTargetPromotionV1: - auto: Optional[bool] = None - publish: Optional[list[str]] = None - subscribe: Optional[list[str]] = None - promotion_data: Optional[list[PromotionDataV1]] = None - - -@dataclass -class PromotionDataV1: - channel: Optional[str] = None - data: Optional[list[PromotionChannelDataV1]] = None - - -@dataclass -class PromotionChannelDataV1: - _type: Optional[str] = None - - -@dataclass -class SaasResourceTemplateTargetUpstreamV1: - instance: Optional[JenkinsInstanceV1] = None - name: Optional[str] = None - - -@dataclass -class JenkinsInstanceV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - server_url: Optional[str] = None - token: Optional[VaultSecretV1] = None - previous_urls: Optional[list[str]] = None - plugins: Optional[list[str]] = None - delete_method: Optional[str] = None - managed_projects: Optional[list[str]] = None - builds_cleanup_rules: Optional[list[JenkinsInstanceBuildsCleanupRulesV1]] = None - - -@dataclass -class JenkinsInstanceBuildsCleanupRulesV1: - name: Optional[str] = None - keep_hours: Optional[int] = None - - -@dataclass -class DeployResourcesV1: - requests: Optional[ResourceRequirementsV1] = None - limits: Optional[ResourceRequirementsV1] = None - - -@dataclass -class ResourceRequirementsV1: - cpu: Optional[str] = None - memory: Optional[str] = None - - -@dataclass -class BotV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - org_username: Optional[str] = None - github_username: Optional[str] = None - gitlab_username: Optional[str] = None - openshift_serviceaccount: Optional[str] = None - quay_username: Optional[str] = None - owner: Optional[UserV1] = None - roles: Optional[list[RoleV1]] = None - - -@dataclass -class CredentialsRequestV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - user: Optional[UserV1] = None - credentials: Optional[str] = None - - -@dataclass -class AppInterfaceSqlQueryV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - namespace: Optional[NamespaceV1] = None - identifier: Optional[str] = None - requestor: Optional[UserV1] = None - overrides: Optional[SqlEmailOverridesV1] = None - output: Optional[str] = None - schedule: Optional[str] = None - query: Optional[str] = None - queries: Optional[list[str]] = None - - -@dataclass -class SqlEmailOverridesV1: - db_host: Optional[str] = None - db_port: Optional[str] = None - db_name: Optional[str] = None - db_user: Optional[str] = None - db_password: Optional[str] = None - - -@dataclass -class GabiInstanceV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - signoff_managers: Optional[list[UserV1]] = None - users: Optional[list[UserV1]] = None - instances: Optional[list[GabiNamespaceV1]] = None - expiration_date: Optional[str] = None - - -@dataclass -class GabiNamespaceV1: - account: Optional[str] = None - identifier: Optional[str] = None - namespace: Optional[NamespaceV1] = None - - -@dataclass -class JiraBoardV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - server: Optional[JiraServerV1] = None - severity_priority_mappings: Optional[JiraSeverityPriorityMappingsV1] = None - slack: Optional[SlackOutputV1] = None - - -@dataclass -class JiraServerV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - server_url: Optional[str] = None - token: Optional[VaultSecretV1] = None - - -@dataclass -class JiraSeverityPriorityMappingsV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - mappings: Optional[list[SeverityPriorityMappingV1]] = None - - -@dataclass -class SeverityPriorityMappingV1: - severity: Optional[str] = None - priority: Optional[str] = None - - -@dataclass -class AppQuayReposNotificationVerificationMethodV1: - jira_board: Optional[JiraBoardV1] = None - - -@dataclass -class AppQuayReposItemsV1: - name: Optional[str] = None - description: Optional[str] = None - public: Optional[bool] = None - mirror: Optional[ContainerImageMirrorV1] = None - - -@dataclass -class AppEndPointsV1: - name: Optional[str] = None - description: Optional[str] = None - url: Optional[str] = None - monitoring: Optional[list[AppEndPointMonitoringV1]] = None - - -@dataclass -class AppEndPointMonitoringV1: - provider: Optional[EndpointMonitoringProviderV1] = None - - -@dataclass -class EndpointMonitoringProviderV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - provider: Optional[str] = None - metric_labels: Optional[dict[str, str]] = None - timeout: Optional[str] = None - check_interval: Optional[str] = None - - -@dataclass -class AppCodeComponentsV1: - name: Optional[str] = None - resource: Optional[str] = None - url: Optional[str] = None - gitlab_repo_owners: Optional[CodeComponentGitlabOwnersV1] = None - gitlab_housekeeping: Optional[CodeComponentGitlabHousekeepingV1] = None - jira: Optional[JiraServerV1] = None - - -@dataclass -class CodeComponentGitlabOwnersV1: - enabled: Optional[bool] = None - - -@dataclass -class CodeComponentGitlabHousekeepingV1: - enabled: Optional[bool] = None - rebase: Optional[bool] = None - days_interval: Optional[int] = None - limit: Optional[int] = None - enable_closing: Optional[bool] = None - pipeline_timeout: Optional[int] = None - - -@dataclass -class AppSentryProjectsV1: - team: Optional[SentryTeamV1] = None - projects: Optional[list[SentryProjectItemsV1]] = None - - -@dataclass -class SentryProjectItemsV1: - name: Optional[str] = None - description: Optional[str] = None - email_prefix: Optional[str] = None - platform: Optional[str] = None - sensitive_fields: Optional[list[str]] = None - safe_fields: Optional[list[str]] = None - auto_resolve_age: Optional[int] = None - allowed_domains: Optional[list[str]] = None - - -@dataclass -class StatusPageComponentV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - display_name: Optional[str] = None - description: Optional[str] = None - instructions: Optional[str] = None - page: Optional[StatusPageV1] = None - group_name: Optional[str] = None - status: Optional[list[StatusProviderV1]] = None - apps: Optional[list[AppV1]] = None - - -@dataclass -class StatusPageV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - url: Optional[str] = None - provider: Optional[str] = None - api_url: Optional[str] = None - credentials: Optional[VaultSecretV1] = None - page_id: Optional[str] = None - components: Optional[list[StatusPageComponentV1]] = None - - -@dataclass -class StatusProviderV1: - provider: Optional[str] = None - - -@dataclass -class JenkinsConfigV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - app: Optional[AppV1] = None - instance: Optional[JenkinsInstanceV1] = None - _type: Optional[str] = None - config: Optional[dict[str, str]] = None - config_path: Optional[str] = None - - -@dataclass -class SRECheckpointV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - app: Optional[AppV1] = None - date: Optional[str] = None - issue: Optional[str] = None - - -@dataclass -class EnvironmentV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - product: Optional[ProductV1] = None - parameters: Optional[dict[str, str]] = None - secret_parameters: Optional[list[SaasSecretParametersV1]] = None - depends_on: Optional[EnvironmentV1] = None - namespaces: Optional[list[NamespaceV1]] = None - - -@dataclass -class ProductV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - product_owners: Optional[list[OwnerV1]] = None - environments: Optional[list[EnvironmentV1]] = None - - -@dataclass -class LimitRangeV1: - schema: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - limits: Optional[list[LimitRangeItemV1]] = None - - -@dataclass -class LimitRangeItemV1: - default: Optional[ResourceValuesV1] = None - default_request: Optional[ResourceValuesV1] = None - max: Optional[ResourceValuesV1] = None - max_limit_request_ratio: Optional[ResourceValuesV1] = None - min: Optional[ResourceValuesV1] = None - _type: Optional[str] = None - - -@dataclass -class ResourceValuesV1: - cpu: Optional[str] = None - memory: Optional[str] = None - - -@dataclass -class ResourceQuotaV1: - schema: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - quotas: Optional[list[ResourceQuotaItemV1]] = None - - -@dataclass -class ResourceQuotaItemV1: - name: Optional[str] = None - resources: Optional[ResourceQuotaItemResourcesV1] = None - scopes: Optional[list[str]] = None - - -@dataclass -class ResourceQuotaItemResourcesV1: - limits: Optional[ResourceValuesV1] = None - requests: Optional[ResourceValuesV1] = None - pods: Optional[int] = None - - -@dataclass -class NamespaceManagedResourceTypeOverridesV1: - resource: Optional[str] = None - override: Optional[str] = None - - -@dataclass -class NamespaceManagedResourceNamesV1: - resource: Optional[str] = None - resource_names: Optional[list[str]] = None - - -@dataclass -class SharedResourcesV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - openshift_resources: Optional[list[NamespaceOpenshiftResourceV1]] = None - openshift_service_account_tokens: Optional[list[ServiceAccountTokenSpecV1]] = None - terraform_resources: Optional[list[NamespaceTerraformResourceV1]] = None - - -@dataclass -class ServiceAccountTokenSpecV1: - name: Optional[str] = None - namespace: Optional[NamespaceV1] = None - service_account_name: Optional[str] = None - - -@dataclass -class NamespaceTerraformResourceV1: - provider: Optional[str] = None - account: Optional[str] = None - identifier: Optional[str] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceOutputFormatV1: - provider: Optional[str] = None - - -@dataclass -class KafkaClusterV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - ocm: Optional[OpenShiftClusterManagerV1] = None - spec: Optional[KafkaClusterSpecV1] = None - namespaces: Optional[list[NamespaceV1]] = None - - -@dataclass -class OpenShiftClusterManagerV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - url: Optional[str] = None - access_token_client_id: Optional[str] = None - access_token_url: Optional[str] = None - offline_token: Optional[VaultSecretV1] = None - blocked_versions: Optional[list[str]] = None - clusters: Optional[list[ClusterV1]] = None - - -@dataclass -class KafkaClusterSpecV1: - provider: Optional[str] = None - region: Optional[str] = None - multi_az: Optional[bool] = None - - -@dataclass -class ClusterSpecV1: - _id: Optional[str] = None - external_id: Optional[str] = None - provider: Optional[str] = None - region: Optional[str] = None - channel: Optional[str] = None - version: Optional[str] = None - initial_version: Optional[str] = None - multi_az: Optional[bool] = None - nodes: Optional[int] = None - instance_type: Optional[str] = None - storage: Optional[int] = None - load_balancers: Optional[int] = None - private: Optional[bool] = None - provision_shard_id: Optional[str] = None - autoscale: Optional[ClusterSpecAutoScaleV1] = None - disable_user_workload_monitoring: Optional[bool] = None - - -@dataclass -class ClusterSpecAutoScaleV1: - min_replicas: Optional[int] = None - max_replicas: Optional[int] = None - - -@dataclass -class ClusterExternalConfigurationV1: - labels: Optional[dict[str, str]] = None - - -@dataclass -class ClusterUpgradePolicyV1: - schedule_type: Optional[str] = None - schedule: Optional[str] = None - workloads: Optional[list[str]] = None - conditions: Optional[ClusterUpgradePolicyConditionsV1] = None - - -@dataclass -class ClusterUpgradePolicyConditionsV1: - soak_days: Optional[int] = None - mutexes: Optional[list[str]] = None - - -@dataclass -class ClusterAdditionalRouterV1: - private: Optional[bool] = None - route_selectors: Optional[dict[str, str]] = None - - -@dataclass -class ClusterNetworkV1: - _type: Optional[str] = None - vpc: Optional[str] = None - service: Optional[str] = None - pod: Optional[str] = None - - -@dataclass -class ClusterMachinePoolV1: - _id: Optional[str] = None - instance_type: Optional[str] = None - replicas: Optional[int] = None - labels: Optional[dict[str, str]] = None - taints: Optional[list[TaintV1]] = None - - -@dataclass -class TaintV1: - key: Optional[str] = None - value: Optional[str] = None - effect: Optional[str] = None - - -@dataclass -class ClusterPeeringV1: - connections: Optional[list[ClusterPeeringConnectionV1]] = None - - -@dataclass -class ClusterPeeringConnectionV1: - provider: Optional[str] = None - name: Optional[str] = None - description: Optional[str] = None - manage_routes: Optional[bool] = None - delete: Optional[bool] = None - - -@dataclass -class ClusterAddonV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - parameters: Optional[list[ClusterAddonParametersV1]] = None - - -@dataclass -class ClusterAddonParametersV1: - _id: Optional[str] = None - value: Optional[str] = None - - -@dataclass -class ClusterJumpHostV1: - hostname: Optional[str] = None - known_hosts: Optional[str] = None - user: Optional[str] = None - port: Optional[int] = None - identity: Optional[VaultSecretV1] = None - - -@dataclass -class AWSInfrastructureAccessV1: - aws_group: Optional[AWSGroupV1] = None - access_level: Optional[str] = None - - -@dataclass -class AWSInfrastructureManagementAccountV1: - account: Optional[AWSAccountV1] = None - access_level: Optional[str] = None - default: Optional[bool] = None - - -@dataclass -class ClusterPrometheusV1: - url: Optional[str] = None - auth: Optional[VaultSecretV1] = None - - -@dataclass -class LdapSettingsV1: - server_url: Optional[str] = None - base_dn: Optional[str] = None - - -@dataclass -class AppInterfaceEmailV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - subject: Optional[str] = None - _to: Optional[AppInterfaceEmailAudienceV1] = None - body: Optional[str] = None - - -@dataclass -class AppInterfaceEmailAudienceV1: - aliases: Optional[list[str]] = None - services: Optional[list[AppV1]] = None - clusters: Optional[list[ClusterV1]] = None - namespaces: Optional[list[NamespaceV1]] = None - aws_accounts: Optional[list[AWSAccountV1]] = None - roles: Optional[list[RoleV1]] = None - users: Optional[list[UserV1]] = None - - -@dataclass -class AppInterfaceSlackNotificationV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - subject: Optional[str] = None - channel: Optional[str] = None - _to: Optional[AppInterfaceSlackNotificationAudienceV1] = None - body: Optional[str] = None - - -@dataclass -class AppInterfaceSlackNotificationAudienceV1: - users: Optional[list[str]] = None - - -@dataclass -class ExternalUserV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - github_username: Optional[str] = None - sponsors: Optional[list[UserV1]] = None - - -@dataclass -class ResourceV1: - path: Optional[str] = None - content: Optional[str] = None - sha256sum: Optional[str] = None - schema: Optional[str] = None - - -@dataclass -class VaultAuditV1: - _path: Optional[str] = None - _type: Optional[str] = None - description: Optional[str] = None - options: Optional[VaultAuditOptionsV1] = None - - -@dataclass -class VaultAuditOptionsV1: - _type: Optional[str] = None - - -@dataclass -class VaultAuthV1: - _path: Optional[str] = None - _type: Optional[str] = None - description: Optional[str] = None - settings: Optional[VaultAuthSettingsV1] = None - policy_mappings: Optional[list[VaultPolicyMappingV1]] = None - - -@dataclass -class VaultAuthSettingsV1: - config: Optional[VaultAuthConfigV1] = None - - -@dataclass -class VaultAuthConfigV1: - _type: Optional[str] = None - - -@dataclass -class VaultPolicyMappingV1: - github_team: Optional[PermissionGithubOrgTeamV1] = None - policies: Optional[list[VaultPolicyV1]] = None - - -@dataclass -class PermissionGithubOrgTeamV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - service: Optional[str] = None - org: Optional[str] = None - team: Optional[str] = None - role: Optional[str] = None - - -@dataclass -class VaultPolicyV1: - name: Optional[str] = None - rules: Optional[str] = None - - -@dataclass -class VaultSecretEngineV1: - _path: Optional[str] = None - _type: Optional[str] = None - description: Optional[str] = None - options: Optional[VaultSecretEngineOptionsV1] = None - - -@dataclass -class VaultSecretEngineOptionsV1: - _type: Optional[str] = None - - -@dataclass -class VaultRoleV1: - name: Optional[str] = None - _type: Optional[str] = None - mount: Optional[str] = None - options: Optional[VaultRoleOptionsV1] = None - - -@dataclass -class VaultRoleOptionsV1: - _type: Optional[str] = None - - -@dataclass -class GithubOrgV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - url: Optional[str] = None - two_factor_authentication: Optional[bool] = None - default: Optional[bool] = None - token: Optional[VaultSecretV1] = None - managed_teams: Optional[list[str]] = None - - -@dataclass -class GitlabInstanceV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - backup_orgs: Optional[list[str]] = None - managed_groups: Optional[list[str]] = None - project_requests: Optional[list[GitlabProjectsV1]] = None - url: Optional[str] = None - token: Optional[VaultSecretV1] = None - ssl_verify: Optional[bool] = None - - -@dataclass -class GitlabProjectsV1: - group: Optional[str] = None - projects: Optional[list[str]] = None - - -@dataclass -class IntegrationV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - upstream: Optional[str] = None - schemas: Optional[list[str]] = None - pr_check: Optional[IntegrationPrCheckV1] = None - - -@dataclass -class IntegrationPrCheckV1: - cmd: Optional[str] = None - state: Optional[bool] = None - sqs: Optional[bool] = None - disabled: Optional[bool] = None - always_run: Optional[bool] = None - no_validate_schemas: Optional[bool] = None - run_for_valid_saas_file_changes: Optional[bool] = None - - -@dataclass -class DocumentV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - app: Optional[AppV1] = None - name: Optional[str] = None - content_path: Optional[str] = None - - -@dataclass -class ReportV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - app: Optional[AppV1] = None - name: Optional[str] = None - date: Optional[str] = None - content_format_version: Optional[str] = None - content: Optional[str] = None - - -@dataclass -class UnleashInstanceV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - url: Optional[str] = None - token: Optional[VaultSecretV1] = None - notifications: Optional[UnleashNotificationsV1] = None - feature_toggles: Optional[list[UnleashFeatureToggleV1]] = None - - -@dataclass -class UnleashNotificationsV1: - slack: Optional[list[SlackOutputV1]] = None - - -@dataclass -class UnleashFeatureToggleV1: - name: Optional[str] = None - enabled: Optional[bool] = None - reason: Optional[str] = None - - -@dataclass -class TemplateTestV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - resource_path: Optional[str] = None - expected_result: Optional[str] = None - - -@dataclass -class DnsZoneV1: - schema: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - provider: Optional[str] = None - account: Optional[AWSAccountV1] = None - vpc: Optional[AWSVPCV1] = None - origin: Optional[str] = None - unmanaged_record_names: Optional[list[str]] = None - records: Optional[list[DnsRecordV1]] = None - - -@dataclass -class AWSVPCV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - account: Optional[AWSAccountV1] = None - name: Optional[str] = None - description: Optional[str] = None - vpc_id: Optional[str] = None - cidr_block: Optional[str] = None - region: Optional[str] = None - subnets: Optional[list[AWSSubnetV1]] = None - - -@dataclass -class AWSSubnetV1: - _id: Optional[str] = None - - -@dataclass -class DnsRecordV1: - name: Optional[str] = None - _type: Optional[str] = None - ttl: Optional[int] = None - alias: Optional[DnsRecordAliasV1] = None - weighted_routing_policy: Optional[DnsRecordWeightedRoutingPolicyV1] = None - set_identifier: Optional[str] = None - records: Optional[list[str]] = None - _healthcheck: Optional[DnsRecordHealthcheckV1] = None - _target_cluster: Optional[ClusterV1] = None - _target_namespace_zone: Optional[DnsNamespaceZoneV1] = None - - -@dataclass -class DnsRecordAliasV1: - name: Optional[str] = None - zone_id: Optional[str] = None - evaluate_target_health: Optional[bool] = None - - -@dataclass -class DnsRecordWeightedRoutingPolicyV1: - weight: Optional[int] = None - - -@dataclass -class DnsRecordHealthcheckV1: - fqdn: Optional[str] = None - port: Optional[int] = None - _type: Optional[str] = None - resource_path: Optional[str] = None - failure_threshold: Optional[int] = None - request_interval: Optional[int] = None - search_string: Optional[str] = None - - -@dataclass -class DnsNamespaceZoneV1: - namespace: Optional[NamespaceV1] = None - name: Optional[str] = None - - -@dataclass -class OcpReleaseMirrorV1: - hive_cluster: Optional[ClusterV1] = None - ecr_resources_namespace: Optional[NamespaceV1] = None - ocp_release_ecr_identifier: Optional[str] = None - ocp_art_dev_ecr_identifier: Optional[str] = None - quay_target_orgs: Optional[list[QuayOrgV1]] = None - mirror_channels: Optional[list[str]] = None - - -@dataclass -class SLODocumentV1: - schema: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - namespaces: Optional[list[NamespaceV1]] = None - slos: Optional[list[SLODocumentSLOV1]] = None - - -@dataclass -class SLODocumentSLOV1: - name: Optional[str] = None - _s_l_i_type: Optional[str] = None - _s_l_i_specification: Optional[str] = None - _s_l_o_details: Optional[str] = None - _s_l_o_target: Optional[float] = None - _s_l_o_parameters: Optional[SLODocumentSLOSLOParametersV1] = None - expr: Optional[str] = None - _s_l_o_target_unit: Optional[str] = None - prometheus_rules: Optional[str] = None - prometheus_rules_tests: Optional[str] = None - dashboard: Optional[str] = None - - -@dataclass -class SLODocumentSLOSLOParametersV1: - window: Optional[str] = None - - -@dataclass -class DynTrafficDirectorV1: - name: Optional[str] = None - ttl: Optional[int] = None - records: Optional[list[DynTrafficDirectorRecordV1]] = None - - -@dataclass -class DynTrafficDirectorRecordV1: - hostname: Optional[str] = None - cluster: Optional[ClusterV1] = None - weight: Optional[int] = None - - -@dataclass -class VaultAuditOptionsFileV1: - _type: Optional[str] = None - file_path: Optional[str] = None - log_raw: Optional[str] = None - hmac_accessor: Optional[str] = None - mode: Optional[str] = None - _format: Optional[str] = None - prefix: Optional[str] = None - - -@dataclass -class VaultAuthConfigGithubV1: - _type: Optional[str] = None - organization: Optional[str] = None - base_url: Optional[str] = None - max_ttl: Optional[str] = None - ttl: Optional[str] = None - - -@dataclass -class VaultAuthConfigOidcV1: - _type: Optional[str] = None - oidc_discovery_url: Optional[str] = None - oidc_client_id: Optional[str] = None - oidc_client_secret: Optional[str] = None - default_role: Optional[str] = None - - -@dataclass -class VaultSecretEngineOptionsKVV1: - _type: Optional[str] = None - version: Optional[str] = None - - -@dataclass -class VaultApproleOptionsV1: - _type: Optional[str] = None - bind_secret_id: Optional[str] = None - local_secret_ids: Optional[str] = None - token_period: Optional[str] = None - secret_id_num_uses: Optional[str] = None - secret_id_ttl: Optional[str] = None - token_explicit_max_ttl: Optional[str] = None - token_max_ttl: Optional[str] = None - token_no_default_policy: Optional[bool] = None - token_num_uses: Optional[str] = None - token_ttl: Optional[str] = None - token_type: Optional[str] = None - token_policies: Optional[list[str]] = None - policies: Optional[list[str]] = None - secret_id_bound_cidrs: Optional[list[str]] = None - token_bound_cidrs: Optional[list[str]] = None - - -@dataclass -class VaultRoleOidcOptionsV1: - _type: Optional[str] = None - allowed_redirect_uris: Optional[list[str]] = None - bound_audiences: Optional[list[str]] = None - bound_claims: Optional[dict[str, str]] = None - bound_claims_type: Optional[str] = None - bound_subject: Optional[str] = None - claim_mappings: Optional[dict[str, str]] = None - clock_skew_leeway: Optional[str] = None - expiration_leeway: Optional[str] = None - groups_claim: Optional[str] = None - max_age: Optional[str] = None - not_before_leeway: Optional[str] = None - oidc_scopes: Optional[list[str]] = None - role_type: Optional[str] = None - token_ttl: Optional[str] = None - token_max_ttl: Optional[str] = None - token_explicit_max_ttl: Optional[str] = None - token_type: Optional[str] = None - token_period: Optional[str] = None - token_policies: Optional[list[str]] = None - token_bound_cidrs: Optional[list[str]] = None - token_no_default_policy: Optional[bool] = None - token_num_uses: Optional[str] = None - user_claim: Optional[str] = None - verbose_oidc_logging: Optional[bool] = None - - -@dataclass -class KeyValueV1: - key: Optional[str] = None - value: Optional[str] = None - - -@dataclass -class ClusterAuthGithubOrgV1: - service: Optional[str] = None - org: Optional[str] = None - - -@dataclass -class ClusterAuthGithubOrgTeamV1: - service: Optional[str] = None - org: Optional[str] = None - team: Optional[str] = None - - -@dataclass -class ClusterAuthOIDCV1: - service: Optional[str] = None - - -@dataclass -class ClusterPeeringConnectionAccountV1: - provider: Optional[str] = None - name: Optional[str] = None - vpc: Optional[AWSVPCV1] = None - description: Optional[str] = None - manage_routes: Optional[bool] = None - delete: Optional[bool] = None - assume_role: Optional[str] = None - - -@dataclass -class ClusterPeeringConnectionAccountVPCMeshV1: - provider: Optional[str] = None - name: Optional[str] = None - account: Optional[AWSAccountV1] = None - description: Optional[str] = None - tags: Optional[dict[str, str]] = None - manage_routes: Optional[bool] = None - delete: Optional[bool] = None - - -@dataclass -class ClusterPeeringConnectionAccountTGWV1: - provider: Optional[str] = None - name: Optional[str] = None - account: Optional[AWSAccountV1] = None - description: Optional[str] = None - tags: Optional[dict[str, str]] = None - manage_routes: Optional[bool] = None - manage_security_groups: Optional[bool] = None - cidr_block: Optional[str] = None - delete: Optional[bool] = None - assume_role: Optional[str] = None - - -@dataclass -class ClusterPeeringConnectionClusterRequesterV1: - provider: Optional[str] = None - name: Optional[str] = None - cluster: Optional[ClusterV1] = None - description: Optional[str] = None - manage_routes: Optional[bool] = None - delete: Optional[bool] = None - assume_role: Optional[str] = None - - -@dataclass -class ClusterPeeringConnectionClusterAccepterV1: - provider: Optional[str] = None - name: Optional[str] = None - cluster: Optional[ClusterV1] = None - aws_infrastructure_management_account: Optional[AWSAccountV1] = None - description: Optional[str] = None - manage_routes: Optional[bool] = None - delete: Optional[bool] = None - assume_role: Optional[str] = None - - -@dataclass -class AWSAccountSharingOptionAMIV1: - provider: Optional[str] = None - account: Optional[AWSAccountV1] = None - regex: Optional[str] = None - region: Optional[str] = None - - -@dataclass -class AWSS3EventNotificationV1: - event_type: Optional[list[str]] = None - destination: Optional[str] = None - destination_type: Optional[str] = None - filter_prefix: Optional[str] = None - filter_suffix: Optional[str] = None - - -@dataclass -class ACMDomainV1: - domain_name: Optional[str] = None - alternate_names: Optional[list[str]] = None - - -@dataclass -class NamespaceOpenshiftResourceResourceV1: - provider: Optional[str] = None - path: Optional[str] = None - validate_json: Optional[bool] = None - validate_alertmanager_config: Optional[bool] = None - alertmanager_config_key: Optional[str] = None - - -@dataclass -class NamespaceOpenshiftResourceResourceTemplateV1: - provider: Optional[str] = None - path: Optional[str] = None - _type: Optional[str] = None - variables: Optional[dict[str, str]] = None - validate_alertmanager_config: Optional[bool] = None - alertmanager_config_key: Optional[str] = None - - -@dataclass -class NamespaceOpenshiftResourceRouteV1: - provider: Optional[str] = None - path: Optional[str] = None - vault_tls_secret_path: Optional[str] = None - vault_tls_secret_version: Optional[int] = None - - -@dataclass -class NamespaceTerraformResourceGenericSecretOutputFormatV1: - provider: Optional[str] = None - data: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceASGV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - defaults: Optional[str] = None - cloudinit_configs: Optional[list[CloudinitConfigV1]] = None - variables: Optional[dict[str, str]] = None - image: Optional[ASGImageV1] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class CloudinitConfigV1: - filename: Optional[str] = None - content_type: Optional[str] = None - content: Optional[str] = None - - -@dataclass -class ASGImageV1: - tag_name: Optional[str] = None - url: Optional[str] = None - ref: Optional[str] = None - upstream: Optional[SaasResourceTemplateTargetUpstreamV1] = None - - -@dataclass -class NamespaceTerraformResourceSecretsManagerV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - secret: Optional[VaultSecretV1] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceS3CloudFrontPublicKeyV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - secret: Optional[VaultSecretV1] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceACMV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - secret: Optional[VaultSecretV1] = None - domain: Optional[ACMDomainV1] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceElasticSearchV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - defaults: Optional[str] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - publish_log_types: Optional[list[str]] = None - - -@dataclass -class NamespaceTerraformResourceRDSV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - defaults: Optional[str] = None - availability_zone: Optional[str] = None - parameter_group: Optional[str] = None - overrides: Optional[dict[str, str]] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - output_resource_db_name: Optional[str] = None - reset_password: Optional[str] = None - enhanced_monitoring: Optional[bool] = None - replica_source: Optional[str] = None - ca_cert: Optional[VaultSecretV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceS3V1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - defaults: Optional[str] = None - overrides: Optional[dict[str, str]] = None - event_notifications: Optional[list[AWSS3EventNotificationV1]] = None - sqs_identifier: Optional[str] = None - s3_events: Optional[list[str]] = None - bucket_policy: Optional[dict[str, str]] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - storage_class: Optional[str] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceServiceAccountAWSInfrastructureAccessV1: - cluster: Optional[ClusterV1] = None - access_level: Optional[str] = None - assume_role: Optional[str] = None - - -@dataclass -class NamespaceTerraformResourceServiceAccountV1: - provider: Optional[str] = None - account: Optional[str] = None - identifier: Optional[str] = None - variables: Optional[dict[str, str]] = None - policies: Optional[list[str]] = None - user_policy: Optional[dict[str, str]] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - aws_infrastructure_access: Optional[NamespaceTerraformResourceServiceAccountAWSInfrastructureAccessV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class AssumeRoleV1: - _a_w_s: Optional[list[str]] = None - _service: Optional[list[str]] = None - - -@dataclass -class NamespaceTerraformResourceRoleV1: - provider: Optional[str] = None - account: Optional[str] = None - identifier: Optional[str] = None - assume_role: Optional[AssumeRoleV1] = None - assume_condition: Optional[dict[str, str]] = None - inline_policy: Optional[dict[str, str]] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceElastiCacheV1: - provider: Optional[str] = None - account: Optional[str] = None - identifier: Optional[str] = None - defaults: Optional[str] = None - parameter_group: Optional[str] = None - region: Optional[str] = None - overrides: Optional[dict[str, str]] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class SQSQueuesSpecsV1: - defaults: Optional[str] = None - queues: Optional[list[KeyValueV1]] = None - - -@dataclass -class NamespaceTerraformResourceSQSV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - specs: Optional[list[SQSQueuesSpecsV1]] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class DynamoDBTableSpecsV1: - defaults: Optional[str] = None - tables: Optional[list[KeyValueV1]] = None - - -@dataclass -class NamespaceTerraformResourceDynamoDBV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - specs: Optional[list[DynamoDBTableSpecsV1]] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceECRV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - mirror: Optional[ContainerImageMirrorV1] = None - public: Optional[bool] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceS3CloudFrontV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - defaults: Optional[str] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - storage_class: Optional[str] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceS3SQSV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - kms_encryption: Optional[bool] = None - defaults: Optional[str] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - storage_class: Optional[str] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceCloudWatchV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - defaults: Optional[str] = None - es_identifier: Optional[str] = None - filter_pattern: Optional[str] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceKMSV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - defaults: Optional[str] = None - overrides: Optional[dict[str, str]] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceKinesisV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - defaults: Optional[str] = None - overrides: Optional[dict[str, str]] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceALBV1: - provider: Optional[str] = None - account: Optional[str] = None - identifier: Optional[str] = None - region: Optional[str] = None - vpc: Optional[AWSVPCV1] = None - certificate_arn: Optional[str] = None - idle_timeout: Optional[int] = None - targets: Optional[list[NamespaceTerraformResourceALBTargetsV1]] = None - rules: Optional[list[NamespaceTerraformResourceALBRulesV1]] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class NamespaceTerraformResourceALBTargetsV1: - name: Optional[str] = None - default: Optional[bool] = None - ips: Optional[list[str]] = None - openshift_service: Optional[str] = None - - -@dataclass -class NamespaceTerraformResourceALBRulesV1: - condition: Optional[NamespaceTerraformResourceALBConditonV1] = None - action: Optional[list[NamespaceTerraformResourceALBActionV1]] = None - - -@dataclass -class NamespaceTerraformResourceALBConditonV1: - path: Optional[str] = None - methods: Optional[list[str]] = None - - -@dataclass -class NamespaceTerraformResourceALBActionV1: - target: Optional[str] = None - weight: Optional[int] = None - - -@dataclass -class NamespaceTerraformResourceRoute53ZoneV1: - provider: Optional[str] = None - account: Optional[str] = None - region: Optional[str] = None - identifier: Optional[str] = None - name: Optional[str] = None - output_resource_name: Optional[str] = None - output_format: Optional[NamespaceTerraformResourceOutputFormatV1] = None - annotations: Optional[dict[str, str]] = None - - -@dataclass -class SaasResourceTemplateV1: - name: Optional[str] = None - url: Optional[str] = None - path: Optional[str] = None - provider: Optional[str] = None - hash_length: Optional[int] = None - parameters: Optional[dict[str, str]] = None - secret_parameters: Optional[list[SaasSecretParametersV1]] = None - targets: Optional[list[SaasResourceTemplateTargetV1]] = None - - -@dataclass -class SaasResourceTemplateTargetV1: - namespace: Optional[NamespaceV1] = None - ref: Optional[str] = None - promotion: Optional[SaasResourceTemplateTargetPromotionV1] = None - parameters: Optional[dict[str, str]] = None - secret_parameters: Optional[list[SaasSecretParametersV1]] = None - upstream: Optional[str] = None - disable: Optional[bool] = None - delete: Optional[bool] = None - - -@dataclass -class ParentSaasPromotionV1: - _type: Optional[str] = None - parent_saas: Optional[str] = None - target_config_hash: Optional[str] = None - - -@dataclass -class PipelinesProviderTektonV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - provider: Optional[str] = None - defaults: Optional[PipelinesProviderTektonProviderDefaultsV1] = None - namespace: Optional[NamespaceV1] = None - retention: Optional[PipelinesProviderRetentionV1] = None - task_templates: Optional[list[PipelinesProviderTektonObjectTemplateV1]] = None - pipeline_templates: Optional[PipelinesProviderPipelineTemplatesV1] = None - deploy_resources: Optional[DeployResourcesV1] = None - - -@dataclass -class PipelinesProviderTektonProviderDefaultsV1: - name: Optional[str] = None - labels: Optional[dict[str, str]] = None - description: Optional[str] = None - retention: Optional[PipelinesProviderRetentionV1] = None - task_templates: Optional[list[PipelinesProviderTektonObjectTemplateV1]] = None - pipeline_templates: Optional[PipelinesProviderPipelineTemplatesV1] = None - deploy_resources: Optional[DeployResourcesV1] = None - - -@dataclass -class PipelinesProviderRetentionV1: - days: Optional[int] = None - minimum: Optional[int] = None - - -@dataclass -class PipelinesProviderTektonObjectTemplateV1: - name: Optional[str] = None - _type: Optional[str] = None - path: Optional[str] = None - variables: Optional[dict[str, str]] = None - - -@dataclass -class PipelinesProviderPipelineTemplatesV1: - openshift_saas_deploy: Optional[PipelinesProviderTektonObjectTemplateV1] = None - - -@dataclass -class OidcPermissionVaultV1: - schema: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - service: Optional[str] = None - description: Optional[str] = None - vault_policies: Optional[list[VaultPolicyV1]] = None - - -@dataclass -class PermissionGithubOrgV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - service: Optional[str] = None - org: Optional[str] = None - role: Optional[str] = None - - -@dataclass -class PermissionJenkinsRoleV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - service: Optional[str] = None - instance: Optional[JenkinsInstanceV1] = None - role: Optional[str] = None - token: Optional[VaultSecretV1] = None - - -@dataclass -class PermissionGitlabGroupMembershipV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - service: Optional[str] = None - group: Optional[str] = None - access: Optional[str] = None - - -@dataclass -class EndpointMonitoringProviderBlackboxExporterV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - provider: Optional[str] = None - metric_labels: Optional[dict[str, str]] = None - timeout: Optional[str] = None - check_interval: Optional[str] = None - blackbox_exporter: Optional[EndpointMonitoringProviderBlackboxExporterSettingsV1] = None - - -@dataclass -class EndpointMonitoringProviderBlackboxExporterSettingsV1: - module: Optional[str] = None - namespace: Optional[NamespaceV1] = None - exporter_url: Optional[str] = None - - -@dataclass -class EndpointMonitoringProviderSignalFxV1: - schema: Optional[str] = None - path: Optional[str] = None - labels: Optional[dict[str, str]] = None - name: Optional[str] = None - description: Optional[str] = None - provider: Optional[str] = None - metric_labels: Optional[dict[str, str]] = None - timeout: Optional[str] = None - check_interval: Optional[str] = None - signal_fx: Optional[EndpointMonitoringProviderSignalFxSettingsV1] = None - - -@dataclass -class EndpointMonitoringProviderSignalFxSettingsV1: - namespace: Optional[NamespaceV1] = None - exporter_url: Optional[str] = None - target_filter_label: Optional[str] = None - - -@dataclass -class PrometheusAlertsStatusProviderV1: - provider: Optional[str] = None - prometheus_alerts: Optional[PrometheusAlertsStatusProviderConfigV1] = None - - -@dataclass -class PrometheusAlertsStatusProviderConfigV1: - namespace: Optional[list[NamespaceV1]] = None - matchers: Optional[list[PrometheusAlertMatcherV1]] = None - - -@dataclass -class PrometheusAlertMatcherV1: - match_expression: Optional[PrometheusAlertMatcherExpressionV1] = None - component_status: Optional[str] = None - - -@dataclass -class PrometheusAlertMatcherExpressionV1: - alert: Optional[str] = None - labels: Optional[dict[str, str]] = None - - -@dataclass -class ManualStatusProviderV1: - provider: Optional[str] = None - manual: Optional[ManualStatusProviderConfigV1] = None - - -@dataclass -class ManualStatusProviderConfigV1: - component_status: Optional[str] = None - _from: Optional[str] = None - until: Optional[str] = None diff --git a/code_gen/gql_queries/saas_files.gql b/code_gen/gql_queries/saas_files.gql index cafbb2e8b3..893328b51a 100644 --- a/code_gen/gql_queries/saas_files.gql +++ b/code_gen/gql_queries/saas_files.gql @@ -7,4 +7,4 @@ query ListSaasFilesV2 { } } } -} \ No newline at end of file +} diff --git a/reconcile/typed_queries.py b/reconcile/typed_queries.py index b96b6d0b62..3a177f3bd7 100644 --- a/reconcile/typed_queries.py +++ b/reconcile/typed_queries.py @@ -1,8 +1,7 @@ ######################################## # Very basic and dirty PoC for querying code-generated types ######################################## -from code_gen.gen.schema import AppV1, SaasFileV2 -import code_gen.gen.saas_files +from code_gen.gen.saas_files import data_to_obj, AppV1, SaasFileV2 from reconcile.utils import gql @@ -16,7 +15,7 @@ def query_saas_files() -> list[SaasFileV2]: query = get_query("saas_files") data = gqlapi.query(query) - apps: list[AppV1] = code_gen.gen.saas_files.data_to_obj(data) + apps: list[AppV1] = data_to_obj(data) all_saas_files: list[SaasFileV2] = [] for app in apps: for app_saas_file in app.saas_files_v2: From 75e46ef68641ecdb8d359407ffcb2800c9903ced Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Wed, 11 May 2022 10:33:06 +0200 Subject: [PATCH 03/12] APPSRE-5537 cleanup --- Makefile | 2 +- code_gen/code_gen.py | 77 --------------- code_gen/requirements.txt | 1 - {code_gen => code_generator}/__init__.py | 0 code_generator/main.py | 97 +++++++++++++++++++ {code_gen => code_generator}/mapper.py | 4 +- {code_gen => code_generator}/query_parser.py | 10 +- dockerfiles/Dockerfile | 2 + {code_gen/gen => gql_queries}/__init__.py | 0 gql_queries/saas_files/__init__.py | 0 .../saas_files_small_with_provider.gql | 0 .../saas_files_small_with_provider.py | 4 + reconcile/typed_queries.py | 10 +- setup.py | 1 + tox.ini | 6 +- 15 files changed, 124 insertions(+), 90 deletions(-) delete mode 100644 code_gen/code_gen.py delete mode 100644 code_gen/requirements.txt rename {code_gen => code_generator}/__init__.py (100%) create mode 100644 code_generator/main.py rename {code_gen => code_generator}/mapper.py (91%) rename {code_gen => code_generator}/query_parser.py (97%) rename {code_gen/gen => gql_queries}/__init__.py (100%) create mode 100644 gql_queries/saas_files/__init__.py rename code_gen/gql_queries/saas_files.gql => gql_queries/saas_files/saas_files_small_with_provider.gql (100%) rename code_gen/gen/saas_files.py => gql_queries/saas_files/saas_files_small_with_provider.py (88%) diff --git a/Makefile b/Makefile index 38cacee149..1c4b00a79e 100644 --- a/Makefile +++ b/Makefile @@ -78,7 +78,7 @@ clean: @find . -name "*.pyc" -delete generate-queries: - . ./venv/bin/activate && python3 code_gen/code_gen.py + . ./venv/bin/activate && query-generator dev-venv: clean ## Create a local venv for your IDE and remote debugging python3.9 -m venv venv diff --git a/code_gen/code_gen.py b/code_gen/code_gen.py deleted file mode 100644 index 7742f8bc82..0000000000 --- a/code_gen/code_gen.py +++ /dev/null @@ -1,77 +0,0 @@ -import os -import requests - -from graphql import build_client_schema, get_introspection_query - -from query_parser import ParsedObject, QueryParser - - -SPACES = " " - - -def query_schema() -> dict: - query = get_introspection_query() - request = requests.post("http://localhost:4000/graphql", json={"query": query}) - if request.status_code == 200: - return request.json()["data"] - - -def find_query_files() -> list[str]: - return [file for file in os.listdir("code_gen/gql_queries") if file.endswith(".gql")] - - -def is_primitive(name: str) -> bool: - return name in ("int", "str", "bool", "float", "DateTime") - - -def post_order_traverse(node: ParsedObject, lines: list[str]): - """ - Pydantic doesnt play well with from __future__ import annotations - --> order of class declaration is important --> post-order - """ - for child in node.children: - post_order_traverse(node=child, lines=lines) - - for field in node.fields: - typ = field.unwrapped_type - if is_primitive(typ): - continue - - lines.append("\n") - lines.append("\n") - lines.append( - f"class {typ}(BaseModel):\n" - ) - for subfield in field.child.fields: - lines.append(f"{SPACES}{subfield.py_name}: {subfield.type} = Field(..., alias=\"{subfield.gql_name}\")\n") - - -def process_query(query: str, out_file: str): - lines: list[str] = [] - query_root = query_parser.parse(query=query) - query_data = query_root.objects[0].children[0] - lines.append("from typing import Any\n") - lines.append("\n") - lines.append("from pydantic import BaseModel, Field\n") - - post_order_traverse(node=query_data, lines=lines) - - lines.append("\n") - lines.append("\n") - lines.append( - f"def data_to_obj(data: dict[Any, Any]) -> {query_data.fields[0].type}:\n" - ) - if query_data.fields[0].is_list: - lines.append(f'{SPACES}return [{query_data.fields[0].unwrapped_type}(**el) for el in data[\"{query_data.fields[0].gql_name}\"]]\n') - else: - lines.append(f'{SPACES}return {query_data.fields[0].unwrapped_type}(**data[\"{query_data.fields[0].gql_name}\"])\n') - with open(out_file, "w") as f: - f.writelines(lines) - - -schema = query_schema() -query_parser = QueryParser(build_client_schema(schema)) - -for file in find_query_files(): - with open(f"code_gen/gql_queries/{file}", "r") as f: - process_query(query=f.read(), out_file=f"code_gen/gen/{file[:-3]}py") diff --git a/code_gen/requirements.txt b/code_gen/requirements.txt deleted file mode 100644 index 188873e886..0000000000 --- a/code_gen/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -gql[all] diff --git a/code_gen/__init__.py b/code_generator/__init__.py similarity index 100% rename from code_gen/__init__.py rename to code_generator/__init__.py diff --git a/code_generator/main.py b/code_generator/main.py new file mode 100644 index 0000000000..064bc6b886 --- /dev/null +++ b/code_generator/main.py @@ -0,0 +1,97 @@ +import os +import requests + +from graphql import build_client_schema, get_introspection_query + +from code_generator.query_parser import ParsedObject, QueryParser # type: ignore + + +HEADER = '"""\nTHIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY!\n"""\n' +SPACES = " " + + +def query_schema() -> dict: + gql_url = "http://localhost:4000/graphql" + query = get_introspection_query() + request = requests.post(gql_url, json={"query": query}) + if request.status_code == 200: + return request.json()["data"] + raise Exception(f"Could not query {gql_url}") + + +def find_query_files() -> list[str]: + result: list[str] = [] + for root, _, files in os.walk("gql_queries"): + for name in files: + if name.endswith(".gql"): + print(f"{os.path.join(root, name)}") + result.append(os.path.join(root, name)) + return result + + +def is_primitive(name: str) -> bool: + return name in ("int", "str", "bool", "float", "DateTime") + + +def post_order_traverse(node: ParsedObject, lines: list[str]): + """ + Pydantic doesnt play well with from __future__ import annotations + --> order of class declaration is important --> post-order + """ + for child in node.children: + post_order_traverse(node=child, lines=lines) + + for field in node.fields: + typ = field.unwrapped_type + if is_primitive(typ): + continue + + lines.append("\n") + lines.append("\n") + lines.append(f"class {typ}(BaseModel):\n") + for subfield in field.child.fields: + lines.append( + f'{SPACES}{subfield.py_name}: {subfield.type} = Field(..., alias="{subfield.gql_name}")\n' + ) + + +def process_query(query_parser: QueryParser, query: str, out_file: str): + lines: list[str] = [] + query_root = query_parser.parse(query=query) + query_data = query_root.objects[0].children[0] + lines.append(f"{HEADER}\n") + lines.append("from typing import Any\n") + lines.append("\n") + lines.append("from pydantic import BaseModel, Field\n") + + post_order_traverse(node=query_data, lines=lines) + + lines.append("\n") + lines.append("\n") + lines.append( + f"def data_to_obj(data: dict[Any, Any]) -> {query_data.fields[0].type}:\n" + ) + if query_data.fields[0].is_list: + lines.append( + f'{SPACES}return [{query_data.fields[0].unwrapped_type}(**el) for el in data["{query_data.fields[0].gql_name}"]]\n' + ) + else: + lines.append( + f'{SPACES}return {query_data.fields[0].unwrapped_type}(**data["{query_data.fields[0].gql_name}"])\n' + ) + with open(out_file, "w") as f: + f.writelines(lines) + + +def main(): + schema_raw = query_schema() + schema = build_client_schema(schema_raw) # type: ignore + query_parser = QueryParser(schema) + + for file in find_query_files(): + with open(file, "r") as f: + process_query( + query_parser=query_parser, + query=f.read(), + out_file=f"{file[:-3]}py", + ) diff --git a/code_gen/mapper.py b/code_generator/mapper.py similarity index 91% rename from code_gen/mapper.py rename to code_generator/mapper.py index 0ed187fb47..78c0374172 100644 --- a/code_gen/mapper.py +++ b/code_generator/mapper.py @@ -29,7 +29,7 @@ def class_to_python(name: str) -> str: def field_to_python(name: str) -> str: parts = re.split("(?=[A-Z])", name) - for i in range(len(parts)): - parts[i] = parts[i].lower() + for i, el in enumerate(parts): + parts[i] = el.lower() return _keyword_sanitizer("_".join(parts)) diff --git a/code_gen/query_parser.py b/code_generator/query_parser.py similarity index 97% rename from code_gen/query_parser.py rename to code_generator/query_parser.py index 47f53fa0d2..d9e4cd8486 100644 --- a/code_gen/query_parser.py +++ b/code_generator/query_parser.py @@ -1,7 +1,11 @@ +# type: ignore +# pylint: skip-file """ Taken and modified from: https://github.com/graphql-python/gql-next/blob/master/gql/query_parser.py + +TODO: currently quick and dirty. Still has redundant parts and data structures. """ from __future__ import annotations from typing import Any, List, Mapping, Union, cast @@ -28,7 +32,7 @@ is_enum_type, ) -import mapper +import code_generator.mapper as mapper @dataclass @@ -286,8 +290,8 @@ def parse(self, query: str, should_validate: bool = True) -> ParsedQuery: document_ast = parse(query) operation = get_operation_ast(document_ast) - # if not operation.name: - # raise AnonymousQueryError() + if not operation.name: + raise AnonymousQueryError() if should_validate: errors = validate(self.schema, document_ast) diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 98750503af..53a3679d45 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -7,6 +7,8 @@ COPY e2e_tests e2e_tests COPY reconcile reconcile COPY release release COPY tools tools +COPY gql_queries gql_queries +COPY code_generator code_generator COPY setup.py . COPY GIT_VERSION . COPY dockerfiles/hack/run-integration.py . diff --git a/code_gen/gen/__init__.py b/gql_queries/__init__.py similarity index 100% rename from code_gen/gen/__init__.py rename to gql_queries/__init__.py diff --git a/gql_queries/saas_files/__init__.py b/gql_queries/saas_files/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/code_gen/gql_queries/saas_files.gql b/gql_queries/saas_files/saas_files_small_with_provider.gql similarity index 100% rename from code_gen/gql_queries/saas_files.gql rename to gql_queries/saas_files/saas_files_small_with_provider.gql diff --git a/code_gen/gen/saas_files.py b/gql_queries/saas_files/saas_files_small_with_provider.py similarity index 88% rename from code_gen/gen/saas_files.py rename to gql_queries/saas_files/saas_files_small_with_provider.py index 6d40d9bb33..b7d041d38e 100644 --- a/code_gen/gen/saas_files.py +++ b/gql_queries/saas_files/saas_files_small_with_provider.py @@ -1,3 +1,7 @@ +""" +THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! +""" + from typing import Any from pydantic import BaseModel, Field diff --git a/reconcile/typed_queries.py b/reconcile/typed_queries.py index 3a177f3bd7..681e33db1c 100644 --- a/reconcile/typed_queries.py +++ b/reconcile/typed_queries.py @@ -1,18 +1,22 @@ ######################################## # Very basic and dirty PoC for querying code-generated types ######################################## -from code_gen.gen.saas_files import data_to_obj, AppV1, SaasFileV2 +from gql_queries.saas_files.saas_files_small_with_provider import ( + data_to_obj, + AppV1, + SaasFileV2, +) from reconcile.utils import gql def get_query(query_name: str) -> str: - with open(f"code_gen/gql_queries/{query_name}.gql") as f: + with open(f"gql_queries/{query_name}") as f: return f.read() def query_saas_files() -> list[SaasFileV2]: gqlapi = gql.get_api() - query = get_query("saas_files") + query = get_query("saas_files/saas_files_small_with_provider.gql") data = gqlapi.query(query) apps: list[AppV1] = data_to_obj(data) diff --git a/setup.py b/setup.py index e4d0e32f60..0411588216 100644 --- a/setup.py +++ b/setup.py @@ -76,6 +76,7 @@ ], entry_points={ 'console_scripts': [ + 'query-generator = code_generator.main:main', 'qontract-reconcile = reconcile.cli:integration', 'e2e-tests = e2e_tests.cli:test', 'app-interface-reporter = tools.app_interface_reporter:main', diff --git a/tox.ini b/tox.ini index 4d9c35a9b7..5a00410491 100644 --- a/tox.ini +++ b/tox.ini @@ -13,13 +13,13 @@ parallel_show_output = true [testenv:format] skip_install = true -commands = black {posargs:--check reconcile tools release e2e_tests} +commands = black {posargs:--check reconcile tools release e2e_tests code_generator} deps = -r{toxinidir}/requirements/requirements-format.txt [testenv:lint] commands = - flake8 reconcile tools release e2e_tests - pylint --extension-pkg-whitelist='pydantic' reconcile tools release e2e_tests + flake8 reconcile tools release e2e_tests code_generator gql_queries + pylint --extension-pkg-whitelist='pydantic' reconcile tools release e2e_tests code_generator gql_queries [testenv:type] commands = mypy {posargs} From c91fee977b4984f78b397cb2515f7932e8eec0af Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Wed, 11 May 2022 12:34:33 +0200 Subject: [PATCH 04/12] APPSRE-5537 more examples --- Makefile | 2 +- code_generator/main.py | 20 +++++---- code_generator/mapper.py | 2 +- gql_queries/saas_files/saas_files_full.gql | 22 ++++++++++ gql_queries/saas_files/saas_files_full.py | 42 +++++++++++++++++++ .../saas_files_small_with_provider.py | 6 +-- reconcile/service_dependencies.py | 4 +- reconcile/typed_queries.py | 35 ++++++++++++---- 8 files changed, 110 insertions(+), 23 deletions(-) create mode 100644 gql_queries/saas_files/saas_files_full.gql create mode 100644 gql_queries/saas_files/saas_files_full.py diff --git a/Makefile b/Makefile index 1c4b00a79e..cd8cac9541 100644 --- a/Makefile +++ b/Makefile @@ -90,4 +90,4 @@ print-files-modified-in-last-30-days: @git log --since '$(shell date --date='-30 day' +"%m/%d/%y")' --until '$(shell date +"%m/%d/%y")' --oneline --name-only --pretty=format: | sort | uniq | grep -E '.py$$' format: - @. ./venv/bin/activate && black reconcile/ tools/ e2e_tests/ + @. ./venv/bin/activate && black reconcile/ tools/ e2e_tests/ code_generator/ diff --git a/code_generator/main.py b/code_generator/main.py index 064bc6b886..d9167d0c2c 100644 --- a/code_generator/main.py +++ b/code_generator/main.py @@ -24,7 +24,6 @@ def find_query_files() -> list[str]: for root, _, files in os.walk("gql_queries"): for name in files: if name.endswith(".gql"): - print(f"{os.path.join(root, name)}") result.append(os.path.join(root, name)) return result @@ -43,16 +42,21 @@ def post_order_traverse(node: ParsedObject, lines: list[str]): for field in node.fields: typ = field.unwrapped_type - if is_primitive(typ): + if is_primitive(typ) or not field.child: continue lines.append("\n") lines.append("\n") lines.append(f"class {typ}(BaseModel):\n") for subfield in field.child.fields: - lines.append( - f'{SPACES}{subfield.py_name}: {subfield.type} = Field(..., alias="{subfield.gql_name}")\n' - ) + if subfield.nullable: + lines.append( + f'{SPACES}{subfield.py_name}: Optional[{subfield.type}] = Field(..., alias="{subfield.gql_name}")\n' + ) + else: + lines.append( + f'{SPACES}{subfield.py_name}: {subfield.type} = Field(..., alias="{subfield.gql_name}")\n' + ) def process_query(query_parser: QueryParser, query: str, out_file: str): @@ -60,9 +64,11 @@ def process_query(query_parser: QueryParser, query: str, out_file: str): query_root = query_parser.parse(query=query) query_data = query_root.objects[0].children[0] lines.append(f"{HEADER}\n") - lines.append("from typing import Any\n") + lines.append("from typing import Any, Optional\n") lines.append("\n") - lines.append("from pydantic import BaseModel, Field\n") + lines.append( + "from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611\n" + ) post_order_traverse(node=query_data, lines=lines) diff --git a/code_generator/mapper.py b/code_generator/mapper.py index 78c0374172..ee9dab5d17 100644 --- a/code_generator/mapper.py +++ b/code_generator/mapper.py @@ -15,7 +15,7 @@ def primitive_to_python(name: str) -> str: "Float": "float", "Boolean": "bool", "DateTime": "DateTime", - "JSON": "dict[str, str]", + "JSON": "Json", } return mapping.get(name, name) diff --git a/gql_queries/saas_files/saas_files_full.gql b/gql_queries/saas_files/saas_files_full.gql new file mode 100644 index 0000000000..50c66cf790 --- /dev/null +++ b/gql_queries/saas_files/saas_files_full.gql @@ -0,0 +1,22 @@ +query SaasFilesV2Full { + apps_v1 { + saasFilesV2 { + labels + secretParameters { + name + secret { + path + format + } + } + name + pipelinesProvider { + name + } + slack { + channel + username + } + } + } +} diff --git a/gql_queries/saas_files/saas_files_full.py b/gql_queries/saas_files/saas_files_full.py new file mode 100644 index 0000000000..b790619f67 --- /dev/null +++ b/gql_queries/saas_files/saas_files_full.py @@ -0,0 +1,42 @@ +""" +THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! +""" + +from typing import Any, Optional + +from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 + + +class VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + _format: Optional[str] = Field(..., alias="format") + + +class SaasSecretParametersV1(BaseModel): + name: str = Field(..., alias="name") + secret: VaultSecretV1 = Field(..., alias="secret") + + +class PipelinesProviderV1(BaseModel): + name: str = Field(..., alias="name") + + +class SlackOutputV1(BaseModel): + channel: Optional[str] = Field(..., alias="channel") + username: Optional[str] = Field(..., alias="username") + + +class SaasFileV2(BaseModel): + labels: Optional[Json] = Field(..., alias="labels") + secret_parameters: Optional[list[SaasSecretParametersV1]] = Field(..., alias="secretParameters") + name: str = Field(..., alias="name") + pipelines_provider: PipelinesProviderV1 = Field(..., alias="pipelinesProvider") + slack: Optional[SlackOutputV1] = Field(..., alias="slack") + + +class AppV1(BaseModel): + saas_files_v2: Optional[list[SaasFileV2]] = Field(..., alias="saasFilesV2") + + +def data_to_obj(data: dict[Any, Any]) -> list[AppV1]: + return [AppV1(**el) for el in data["apps_v1"]] diff --git a/gql_queries/saas_files/saas_files_small_with_provider.py b/gql_queries/saas_files/saas_files_small_with_provider.py index b7d041d38e..1a8f1132ee 100644 --- a/gql_queries/saas_files/saas_files_small_with_provider.py +++ b/gql_queries/saas_files/saas_files_small_with_provider.py @@ -2,9 +2,9 @@ THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! """ -from typing import Any +from typing import Any, Optional -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 class PipelinesProviderV1(BaseModel): @@ -17,7 +17,7 @@ class SaasFileV2(BaseModel): class AppV1(BaseModel): - saas_files_v2: list[SaasFileV2] = Field(..., alias="saasFilesV2") + saas_files_v2: Optional[list[SaasFileV2]] = Field(..., alias="saasFilesV2") def data_to_obj(data: dict[Any, Any]) -> list[AppV1]: diff --git a/reconcile/service_dependencies.py b/reconcile/service_dependencies.py index 39703aba5d..9d44fbd2ad 100644 --- a/reconcile/service_dependencies.py +++ b/reconcile/service_dependencies.py @@ -8,7 +8,7 @@ managed_external_resources, ) -from reconcile.typed_queries import query_saas_files +from reconcile.typed_queries import query_saas_files_full APPS_QUERY = """ @@ -73,7 +73,7 @@ def get_desired_dependency_names(app, dependency_map): if github_urls: required_dep_names.update(get_dependency_names(dependency_map, "github")) - for saas_file in query_saas_files(): + for saas_file in query_saas_files_full(): # Do stuff on types :) print(f"{saas_file.name} {saas_file.pipelines_provider.name}") diff --git a/reconcile/typed_queries.py b/reconcile/typed_queries.py index 681e33db1c..ed38998bd5 100644 --- a/reconcile/typed_queries.py +++ b/reconcile/typed_queries.py @@ -1,11 +1,8 @@ ######################################## # Very basic and dirty PoC for querying code-generated types ######################################## -from gql_queries.saas_files.saas_files_small_with_provider import ( - data_to_obj, - AppV1, - SaasFileV2, -) +from gql_queries.saas_files import saas_files_small_with_provider +from gql_queries.saas_files import saas_files_full from reconcile.utils import gql @@ -14,15 +11,35 @@ def get_query(query_name: str) -> str: return f.read() -def query_saas_files() -> list[SaasFileV2]: +def query_saas_files_small() -> list[saas_files_small_with_provider.SaasFileV2]: gqlapi = gql.get_api() query = get_query("saas_files/saas_files_small_with_provider.gql") data = gqlapi.query(query) - apps: list[AppV1] = data_to_obj(data) - all_saas_files: list[SaasFileV2] = [] + apps: list[ + saas_files_small_with_provider.AppV1 + ] = saas_files_small_with_provider.data_to_obj(data) + all_saas_files: list[saas_files_small_with_provider.SaasFileV2] = [] for app in apps: - for app_saas_file in app.saas_files_v2: + saas_files_v2: list[saas_files_small_with_provider.SaasFileV2] = ( + app.saas_files_v2 or [] + ) + for app_saas_file in saas_files_v2: + all_saas_files.append(app_saas_file) + + return all_saas_files + + +def query_saas_files_full() -> list[saas_files_full.SaasFileV2]: + gqlapi = gql.get_api() + query = get_query("saas_files/saas_files_full.gql") + data = gqlapi.query(query) + + apps: list[saas_files_full.AppV1] = saas_files_full.data_to_obj(data) + all_saas_files: list[saas_files_full.SaasFileV2] = [] + for app in apps: + saas_files_v2: list[saas_files_full.SaasFileV2] = app.saas_files_v2 or [] + for app_saas_file in saas_files_v2: all_saas_files.append(app_saas_file) return all_saas_files From e7b9656cb47318c1174af654d6556b450240b0fe Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Wed, 11 May 2022 18:47:28 +0200 Subject: [PATCH 05/12] APPSRE-5537 fix comments --- code_generator/main.py | 4 +++- gql_queries/saas_files/saas_files_full.py | 2 +- gql_queries/saas_files/saas_files_small_with_provider.py | 2 +- reconcile/typed_queries.py | 3 --- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/code_generator/main.py b/code_generator/main.py index d9167d0c2c..fc92dc8190 100644 --- a/code_generator/main.py +++ b/code_generator/main.py @@ -64,7 +64,9 @@ def process_query(query_parser: QueryParser, query: str, out_file: str): query_root = query_parser.parse(query=query) query_data = query_root.objects[0].children[0] lines.append(f"{HEADER}\n") - lines.append("from typing import Any, Optional\n") + lines.append( + "from typing import Any, Optional # noqa: F401 # pylint: disable=W0611\n" + ) lines.append("\n") lines.append( "from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611\n" diff --git a/gql_queries/saas_files/saas_files_full.py b/gql_queries/saas_files/saas_files_full.py index b790619f67..cc990d6899 100644 --- a/gql_queries/saas_files/saas_files_full.py +++ b/gql_queries/saas_files/saas_files_full.py @@ -2,7 +2,7 @@ THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! """ -from typing import Any, Optional +from typing import Any, Optional # noqa: F401 # pylint: disable=W0611 from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 diff --git a/gql_queries/saas_files/saas_files_small_with_provider.py b/gql_queries/saas_files/saas_files_small_with_provider.py index 1a8f1132ee..b30c5443cb 100644 --- a/gql_queries/saas_files/saas_files_small_with_provider.py +++ b/gql_queries/saas_files/saas_files_small_with_provider.py @@ -2,7 +2,7 @@ THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! """ -from typing import Any, Optional +from typing import Any, Optional # noqa: F401 # pylint: disable=W0611 from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 diff --git a/reconcile/typed_queries.py b/reconcile/typed_queries.py index ed38998bd5..ba96b45488 100644 --- a/reconcile/typed_queries.py +++ b/reconcile/typed_queries.py @@ -1,6 +1,3 @@ -######################################## -# Very basic and dirty PoC for querying code-generated types -######################################## from gql_queries.saas_files import saas_files_small_with_provider from gql_queries.saas_files import saas_files_full from reconcile.utils import gql From 26d353c05da789dd6d95a806273c28a892b3dde1 Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Thu, 12 May 2022 10:43:04 +0200 Subject: [PATCH 06/12] APPSRE-5537 module structure --- code_generator/main.py | 2 +- dockerfiles/Dockerfile | 1 - pyproject.toml | 1 + {gql_queries => reconcile/gql_queries}/__init__.py | 0 .../gql_queries}/saas_files/__init__.py | 0 .../gql_queries}/saas_files/saas_files_full.gql | 0 .../gql_queries}/saas_files/saas_files_full.py | 0 .../saas_files/saas_files_small_with_provider.gql | 0 .../saas_files/saas_files_small_with_provider.py | 0 reconcile/typed_queries.py | 6 +++--- tox.ini | 4 ++-- 11 files changed, 7 insertions(+), 7 deletions(-) rename {gql_queries => reconcile/gql_queries}/__init__.py (100%) rename {gql_queries => reconcile/gql_queries}/saas_files/__init__.py (100%) rename {gql_queries => reconcile/gql_queries}/saas_files/saas_files_full.gql (100%) rename {gql_queries => reconcile/gql_queries}/saas_files/saas_files_full.py (100%) rename {gql_queries => reconcile/gql_queries}/saas_files/saas_files_small_with_provider.gql (100%) rename {gql_queries => reconcile/gql_queries}/saas_files/saas_files_small_with_provider.py (100%) diff --git a/code_generator/main.py b/code_generator/main.py index fc92dc8190..885d8e8c3d 100644 --- a/code_generator/main.py +++ b/code_generator/main.py @@ -21,7 +21,7 @@ def query_schema() -> dict: def find_query_files() -> list[str]: result: list[str] = [] - for root, _, files in os.walk("gql_queries"): + for root, _, files in os.walk("reconcile/gql_queries"): for name in files: if name.endswith(".gql"): result.append(os.path.join(root, name)) diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 53a3679d45..8ecc00bab5 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -7,7 +7,6 @@ COPY e2e_tests e2e_tests COPY reconcile reconcile COPY release release COPY tools tools -COPY gql_queries gql_queries COPY code_generator code_generator COPY setup.py . COPY GIT_VERSION . diff --git a/pyproject.toml b/pyproject.toml index 1ce1b55461..a4c90f8baa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,5 +7,6 @@ extend-exclude = ''' reconcile/terraform_resources.py | reconcile/utils/terraform_client.py | reconcile/utils/terrascript_aws_client.py + | reconcile/gql_queries/.* )$ ''' diff --git a/gql_queries/__init__.py b/reconcile/gql_queries/__init__.py similarity index 100% rename from gql_queries/__init__.py rename to reconcile/gql_queries/__init__.py diff --git a/gql_queries/saas_files/__init__.py b/reconcile/gql_queries/saas_files/__init__.py similarity index 100% rename from gql_queries/saas_files/__init__.py rename to reconcile/gql_queries/saas_files/__init__.py diff --git a/gql_queries/saas_files/saas_files_full.gql b/reconcile/gql_queries/saas_files/saas_files_full.gql similarity index 100% rename from gql_queries/saas_files/saas_files_full.gql rename to reconcile/gql_queries/saas_files/saas_files_full.gql diff --git a/gql_queries/saas_files/saas_files_full.py b/reconcile/gql_queries/saas_files/saas_files_full.py similarity index 100% rename from gql_queries/saas_files/saas_files_full.py rename to reconcile/gql_queries/saas_files/saas_files_full.py diff --git a/gql_queries/saas_files/saas_files_small_with_provider.gql b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql similarity index 100% rename from gql_queries/saas_files/saas_files_small_with_provider.gql rename to reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql diff --git a/gql_queries/saas_files/saas_files_small_with_provider.py b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.py similarity index 100% rename from gql_queries/saas_files/saas_files_small_with_provider.py rename to reconcile/gql_queries/saas_files/saas_files_small_with_provider.py diff --git a/reconcile/typed_queries.py b/reconcile/typed_queries.py index ba96b45488..c931e21b02 100644 --- a/reconcile/typed_queries.py +++ b/reconcile/typed_queries.py @@ -1,10 +1,10 @@ -from gql_queries.saas_files import saas_files_small_with_provider -from gql_queries.saas_files import saas_files_full +from reconcile.gql_queries.saas_files import saas_files_small_with_provider +from reconcile.gql_queries.saas_files import saas_files_full from reconcile.utils import gql def get_query(query_name: str) -> str: - with open(f"gql_queries/{query_name}") as f: + with open(f"reconcile/gql_queries/{query_name}") as f: return f.read() diff --git a/tox.ini b/tox.ini index 5a00410491..2adf3316d9 100644 --- a/tox.ini +++ b/tox.ini @@ -18,8 +18,8 @@ deps = -r{toxinidir}/requirements/requirements-format.txt [testenv:lint] commands = - flake8 reconcile tools release e2e_tests code_generator gql_queries - pylint --extension-pkg-whitelist='pydantic' reconcile tools release e2e_tests code_generator gql_queries + flake8 reconcile tools release e2e_tests code_generator + pylint --extension-pkg-whitelist='pydantic' reconcile tools release e2e_tests code_generator [testenv:type] commands = mypy {posargs} From 8300c2508e89238d16b23d40e556ce3261092710 Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Mon, 16 May 2022 09:03:03 +0200 Subject: [PATCH 07/12] APPSRE-5537 enhanced query-parser --- code_generator/main.py | 88 +--- code_generator/mapper.py | 17 +- code_generator/query_parser.py | 460 +++++++++--------- reconcile/gql_queries/ocp/__init__.py | 0 reconcile/gql_queries/ocp/ocp_auth.gql | 87 ++++ reconcile/gql_queries/ocp/ocp_auth.py | 206 ++++++++ .../gql_queries/saas_files/saas_files_full.py | 37 +- .../saas_files_small_with_provider.gql | 2 +- .../saas_files_small_with_provider.py | 23 +- reconcile/typed_queries.py | 34 +- 10 files changed, 633 insertions(+), 321 deletions(-) create mode 100644 reconcile/gql_queries/ocp/__init__.py create mode 100644 reconcile/gql_queries/ocp/ocp_auth.gql create mode 100644 reconcile/gql_queries/ocp/ocp_auth.py diff --git a/code_generator/main.py b/code_generator/main.py index 885d8e8c3d..2dd0aba1be 100644 --- a/code_generator/main.py +++ b/code_generator/main.py @@ -3,11 +3,10 @@ from graphql import build_client_schema, get_introspection_query -from code_generator.query_parser import ParsedObject, QueryParser # type: ignore +from code_generator.query_parser import ParsedNode, QueryParser # type: ignore HEADER = '"""\nTHIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY!\n"""\n' -SPACES = " " def query_schema() -> dict: @@ -28,78 +27,35 @@ def find_query_files() -> list[str]: return result -def is_primitive(name: str) -> bool: - return name in ("int", "str", "bool", "float", "DateTime") - - -def post_order_traverse(node: ParsedObject, lines: list[str]): +def post_order(node: ParsedNode) -> str: """ Pydantic doesnt play well with from __future__ import annotations --> order of class declaration is important --> post-order """ - for child in node.children: - post_order_traverse(node=child, lines=lines) - - for field in node.fields: - typ = field.unwrapped_type - if is_primitive(typ) or not field.child: - continue - - lines.append("\n") - lines.append("\n") - lines.append(f"class {typ}(BaseModel):\n") - for subfield in field.child.fields: - if subfield.nullable: - lines.append( - f'{SPACES}{subfield.py_name}: Optional[{subfield.type}] = Field(..., alias="{subfield.gql_name}")\n' - ) - else: - lines.append( - f'{SPACES}{subfield.py_name}: {subfield.type} = Field(..., alias="{subfield.gql_name}")\n' - ) - - -def process_query(query_parser: QueryParser, query: str, out_file: str): - lines: list[str] = [] - query_root = query_parser.parse(query=query) - query_data = query_root.objects[0].children[0] - lines.append(f"{HEADER}\n") - lines.append( - "from typing import Any, Optional # noqa: F401 # pylint: disable=W0611\n" - ) - lines.append("\n") - lines.append( - "from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611\n" - ) - - post_order_traverse(node=query_data, lines=lines) - - lines.append("\n") - lines.append("\n") - lines.append( - f"def data_to_obj(data: dict[Any, Any]) -> {query_data.fields[0].type}:\n" - ) - if query_data.fields[0].is_list: - lines.append( - f'{SPACES}return [{query_data.fields[0].unwrapped_type}(**el) for el in data["{query_data.fields[0].gql_name}"]]\n' - ) - else: - lines.append( - f'{SPACES}return {query_data.fields[0].unwrapped_type}(**data["{query_data.fields[0].gql_name}"])\n' - ) - with open(out_file, "w") as f: - f.writelines(lines) + result = "" + for child in node.fields: + result = f"{result}{post_order(child)}" + return f"{result}{node.class_code_string()}" def main(): schema_raw = query_schema() schema = build_client_schema(schema_raw) # type: ignore - query_parser = QueryParser(schema) - + query_parser = QueryParser(schema=schema) for file in find_query_files(): with open(file, "r") as f: - process_query( - query_parser=query_parser, - query=f.read(), - out_file=f"{file[:-3]}py", - ) + result = query_parser.parse(f.read()) + code = post_order(result) + with open(f"{file[:-3]}py", "w") as out_file: + out_file.write(HEADER) + out_file.write( + "from typing import Optional, Union # noqa: F401 # pylint: disable=W0611\n\n" + ) + out_file.write( + "from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611" + ) + out_file.write(code) + out_file.write("\n") + + +main() diff --git a/code_generator/mapper.py b/code_generator/mapper.py index ee9dab5d17..c9d8640703 100644 --- a/code_generator/mapper.py +++ b/code_generator/mapper.py @@ -1,13 +1,15 @@ import re +from graphql import GraphQLOutputType + def _keyword_sanitizer(s: str) -> str: if s in ("global", "from", "type", "id", "to", "format"): - return f"_{s}" + return f"f_{s}" return s -def primitive_to_python(name: str) -> str: +def graphql_primitive_to_python(graphql_type: GraphQLOutputType) -> str: mapping = { "ID": "str", "String": "str", @@ -17,17 +19,10 @@ def primitive_to_python(name: str) -> str: "DateTime": "DateTime", "JSON": "Json", } - return mapping.get(name, name) - - -def class_to_python(name: str) -> str: - if name[-1] == "1": - return name.replace("_v1", "V1") - else: - return name.replace("_v2", "V2") + return mapping.get(str(graphql_type), str(graphql_type)) -def field_to_python(name: str) -> str: +def graphql_field_name_to_python(name: str) -> str: parts = re.split("(?=[A-Z])", name) for i, el in enumerate(parts): parts[i] = el.lower() diff --git a/code_generator/query_parser.py b/code_generator/query_parser.py index d9e4cd8486..e728aff146 100644 --- a/code_generator/query_parser.py +++ b/code_generator/query_parser.py @@ -1,272 +1,290 @@ # type: ignore # pylint: skip-file -""" -Taken and modified from: - -https://github.com/graphql-python/gql-next/blob/master/gql/query_parser.py - -TODO: currently quick and dirty. Still has redundant parts and data structures. -""" from __future__ import annotations -from typing import Any, List, Mapping, Union, cast -from dataclasses import dataclass, field +from dataclasses import dataclass +from typing import Optional from graphql import ( - GraphQLInterfaceType, - GraphQLObjectType, + FieldNode, + GraphQLList, + GraphQLNonNull, + GraphQLOutputType, + GraphQLScalarType, GraphQLSchema, - validate, - parse, - get_operation_ast, - visit, + InlineFragmentNode, + OperationDefinitionNode, Visitor, TypeInfo, TypeInfoVisitor, - GraphQLNonNull, - is_scalar_type, - GraphQLList, - OperationDefinitionNode, - NonNullTypeNode, - TypeNode, - GraphQLEnumType, - is_enum_type, + visit, + parse, + get_operation_ast, + validate, ) -import code_generator.mapper as mapper +from code_generator.mapper import ( + graphql_primitive_to_python, + graphql_field_name_to_python, +) -@dataclass -class ParsedField: - py_name: str - type: str - unwrapped_type: str - nullable: bool - gql_name: str - child: ParsedObject = None - is_list: bool = False - default_value: Any = None +INDENT = " " @dataclass -class ParsedObject: - name: str - py_name: str - fields: List[ParsedField] = field(default_factory=list) - parents: List[str] = field(default_factory=list) - children: List[ParsedObject] = field(default_factory=list) +class ParsedNode: + parent: Optional[ParsedNode] + fields: list[ParsedNode] + parsed_type: ParsedFieldType + + def class_code_string(self) -> str: + return "" @dataclass -class ParsedEnum: - name: str - values: Mapping[str, Any] +class ParsedInlineFragmentNode(ParsedNode): + def class_code_string(self) -> str: + if self.parsed_type.is_primitive: + return "" + + lines = ["\n\n"] + lines.append(f"class {self.parsed_type.unwrapped_python_type}(BaseModel):") + for parent_field in self.parent.fields: + if isinstance(parent_field, ParsedClassNode): + lines.append( + f'{INDENT}{parent_field.py_key}: {parent_field.field_type()} = Field(..., alias="{parent_field.gql_key}")' + ) + for field in self.fields: + if isinstance(field, ParsedClassNode): + lines.append( + f'{INDENT}{field.py_key}: {field.field_type()} = Field(..., alias="{field.gql_key}")' + ) + + # https://pydantic-docs.helpmanual.io/usage/model_config/#smart-union + # https://stackoverflow.com/a/69705356/4478420 + lines.append("") + lines.append(f"{INDENT}class Config:") + lines.append(f"{INDENT}{INDENT}smart_union = True") + lines.append(f"{INDENT}{INDENT}extra = 'forbid'") + + return "\n".join(lines) @dataclass -class ParsedVariableDefinition: - name: str - type: str - nullable: bool - default_value: Any = None +class ParsedClassNode(ParsedNode): + gql_key: str + py_key: str + + def class_code_string(self) -> str: + if self.parsed_type.is_primitive: + return "" + + lines = ["\n\n"] + lines.append(f"class {self.parsed_type.unwrapped_python_type}(BaseModel):") + for field in self.fields: + if isinstance(field, ParsedClassNode): + lines.append( + f'{INDENT}{field.py_key}: {field.field_type()} = Field(..., alias="{field.gql_key}")' + ) + + # https://pydantic-docs.helpmanual.io/usage/model_config/#smart-union + # https://stackoverflow.com/a/69705356/4478420 + lines.append("") + lines.append(f"{INDENT}class Config:") + lines.append(f"{INDENT}{INDENT}smart_union = True") + lines.append(f"{INDENT}{INDENT}extra = 'forbid'") + + return "\n".join(lines) + + def field_type(self) -> str: + unions: list[str] = [] + # TODO: sorting does not need to happen on each call + self.fields.sort(key=self._type_significance, reverse=True) + for field in self.fields: + if isinstance(field, ParsedInlineFragmentNode): + unions.append(field.parsed_type.unwrapped_python_type) + if len(unions) > 0: + unions.append(self.parsed_type.unwrapped_python_type) + return self.parsed_type.wrapped_python_type.replace( + self.parsed_type.unwrapped_python_type, f"Union[{', '.join(unions)}]" + ) + return self.parsed_type.wrapped_python_type + + def _type_significance(self, node: ParsedInlineFragmentNode) -> int: + """ + Pydantic does best-effort matching on Unions. + Declare most significant type first. + This, smart_union and disallowing extra fields gives high confidence in matching. + + https://pydantic-docs.helpmanual.io/usage/types/#unions + """ + return len(node.fields) @dataclass -class ParsedOperation: - name: str - type: str - variables: List[ParsedVariableDefinition] = field(default_factory=list) - children: List[ParsedObject] = field(default_factory=list) +class ParsedOperationNode(ParsedNode): + def class_code_string(self) -> str: + lines = ["\n\n"] + lines.append(f"class {self.parsed_type.unwrapped_python_type}Query(BaseModel):") + for field in self.fields: + if isinstance(field, ParsedClassNode): + lines.append( + f'{INDENT}{field.py_key}: {field.field_type()} = Field(..., alias="{field.gql_key}")' + ) + # https://pydantic-docs.helpmanual.io/usage/model_config/#smart-union + # https://stackoverflow.com/a/69705356/4478420 + lines.append("") + lines.append(f"{INDENT}class Config:") + lines.append(f"{INDENT}{INDENT}smart_union = True") + lines.append(f"{INDENT}{INDENT}extra = 'forbid'") -NodeT = Union[ParsedOperation, ParsedObject] + return "\n".join(lines) @dataclass -class ParsedQuery: - query: str - objects: List[NodeT] = field(default_factory=list) - enums: List[ParsedEnum] = field(default_factory=list) +class ParsedFieldType: + unwrapped_python_type: str + wrapped_python_type: str + is_primitive: bool class FieldToTypeMatcherVisitor(Visitor): def __init__(self, schema: GraphQLSchema, type_info: TypeInfo, query: str): + # These are required for GQL Visitor to do its magic Visitor.__init__(self) self.schema = schema self.type_info = type_info self.query = query - self.parsed = ParsedQuery(query=self.query) - self.dfs_path: List[ParsedObject] = [] - - def push(self, obj: NodeT): - self.dfs_path.append(obj) - - def pull(self) -> NodeT: - return self.dfs_path.pop() - - @property - def current(self) -> ParsedObject: - return self.dfs_path[-1] - - # Document - def enter_operation_definition(self, node: OperationDefinitionNode, *_args): - name, operation = node.name, node.operation - - variables = [] - for var in node.variable_definitions: - ptype, nullable, _ = self.__variable_type_to_python(var.type) - variables.append( - ParsedVariableDefinition( - name=var.variable.name.value, - type=ptype, - nullable=nullable, - default_value=var.default_value.value - if var.default_value - else None, - ) - ) - parsed_op = ParsedOperation( - name=name.value, - type=str(operation.value), - variables=variables, - children=[ - ParsedObject(name=f"{name.value}Data", py_name=f"{name.value}Data") - ], + # These are our custom fields + self.parsed = ParsedNode( + parent=None, + fields=[], + parsed_type=ParsedFieldType( + unwrapped_python_type="", + wrapped_python_type="", + is_primitive=False, + ), ) + self.parent = self.parsed + self.deduplication_cache: set[str] = set() - self.parsed.objects.append(parsed_op) # pylint:disable=no-member - self.push(parsed_op) - self.push(parsed_op.children[0]) # pylint:disable=unsubscriptable-object - - return node - - # def enter_selection_set(self, node, *_): - # return node + # GQL mandatory functions + def enter(self, node, *_): + pass - def leave_selection_set(self, node, *_): - self.pull() - return node + def leave(self, node, *_): + pass - # Fragments - - def enter_fragment_definition(self, node, *_): - # Same as operation definition - obj = ParsedObject( - name=node.name.value, - py_name=mapper.class_to_python(node.name.value), + def enter_inline_fragment(self, node: InlineFragmentNode, *_): + graphql_type = self.type_info.get_type() + field_type = self._parse_type(graphql_type=graphql_type) + current = ParsedInlineFragmentNode( + fields=[], + parent=self.parent, + parsed_type=field_type, + ) + self.parent.fields.append(current) + self.parent = current + + def leave_inline_fragment(self, node: InlineFragmentNode, *_): + self.parent = self.parent.parent if self.parent else self.parent + + def enter_operation_definition(self, node: OperationDefinitionNode, *_): + current = ParsedOperationNode( + parent=self.parent, + fields=[], + parsed_type=ParsedFieldType( + unwrapped_python_type=node.name.value, + wrapped_python_type=f"Optional[list[{node.name.value}]]", + is_primitive=False, + ), + ) + self.parent.fields.append(current) + self.parent = current + + def leave_operation_definition(self, node: OperationDefinitionNode, *_): + self.parent = self.parent.parent if self.parent else self.parent + + def enter_field(self, node: FieldNode, *_): + graphql_type: GraphQLOutputType = self.type_info.get_type() + field_type = self._parse_type(graphql_type=graphql_type) + py_key = graphql_field_name_to_python(node.name.value) + gql_key = node.alias.value if node.alias else node.name.value + current = ParsedClassNode( + fields=[], + parent=self.parent, + parsed_type=field_type, + py_key=py_key, + gql_key=gql_key, ) - self.parsed.objects.append(obj) # pylint:disable=no-member - self.push(obj) - return node - - def enter_fragment_spread(self, node, *_): - self.current.parents.append(node.name.value) - return node - - # def enter_inline_fragment(self, node, *_): - # return node - # - # def leave_inline_fragment(self, node, *_): - # return node - - # Field - def enter_field(self, node, *_): - name = node.alias.value if node.alias else node.name.value - graphql_type = self.type_info.get_type() - python_type, nullable, underlying_graphql_type = self.__scalar_type_to_python( - graphql_type + self.parent.fields.append(current) + self.parent = current + + def leave_field(self, node: FieldNode, *_): + self.parent = self.parent.parent if self.parent else self.parent + + # Custom Functions + def _parse_type(self, graphql_type: GraphQLOutputType) -> ParsedFieldType: + is_optional = True + if isinstance(graphql_type, GraphQLNonNull): + is_optional = False + graphql_type = graphql_type.of_type + + is_list = False + if isinstance(graphql_type, GraphQLList): + is_list = True + graphql_type = graphql_type.of_type + + needs_further_unwrapping = isinstance( + graphql_type, GraphQLNonNull + ) or isinstance(graphql_type, GraphQLList) + parsed_of_type = None + if needs_further_unwrapping: + parsed_of_type = self._parse_type(graphql_type=graphql_type) + + unwrapped_type = ( + self._to_python_type(graphql_type) + if not parsed_of_type + else parsed_of_type.unwrapped_python_type + ) + wrapped_type = ( + unwrapped_type if not parsed_of_type else parsed_of_type.wrapped_python_type ) - is_list = python_type.startswith("list[") - unwrapped_type = python_type.removeprefix("list[").removesuffix("]") - - parsed_field = ParsedField( - py_name=mapper.field_to_python(name), - gql_name=name, - is_list=is_list, - type=python_type, - unwrapped_type=unwrapped_type, - nullable=nullable, + is_primitive = ( + isinstance(graphql_type, GraphQLScalarType) + if not parsed_of_type + else parsed_of_type.is_primitive ) - self.current.fields.append(parsed_field) # TODO: nullables should go to the end + if is_optional and is_list: + wrapped_type = f"Optional[list[{wrapped_type}]]" + elif is_optional: + wrapped_type = f"Optional[{wrapped_type}]" + elif is_list: + wrapped_type = f"list[{wrapped_type}]" + + return ParsedFieldType( + unwrapped_python_type=unwrapped_type, + wrapped_python_type=wrapped_type, + is_primitive=is_primitive, + ) - if not is_scalar_type(underlying_graphql_type): - if is_enum_type(underlying_graphql_type): - enum_type = cast( - GraphQLEnumType, self.schema.type_map[underlying_graphql_type.name] - ) - name = enum_type.name - if not any( - e.name == name for e in self.parsed.enums - ): # pylint:disable=not-an-iterable - parsed_enum = ParsedEnum( - name=enum_type.name, - values={ - name: value.value or name - for name, value in enum_type.values.items() - }, - ) - self.parsed.enums.append(parsed_enum) # pylint:disable=no-member - else: - obj = ParsedObject( - name=str(underlying_graphql_type), - py_name=mapper.class_to_python(str(underlying_graphql_type)), - ) - parsed_field.child = obj - - self.current.children.append(obj) - self.push(obj) - - return node - - @staticmethod - def __scalar_type_to_python(scalar): - nullable = True - if isinstance(scalar, GraphQLNonNull): - nullable = False - scalar = scalar.of_type - - mapping = { - "ID": "str", - "String": "str", - "Int": "int", - "Float": "float", - "Boolean": "bool", - "DateTime": "DateTime", - } - - if isinstance(scalar, GraphQLList): - scalar = scalar.of_type - if isinstance(scalar, GraphQLNonNull): - scalar = scalar.of_type - nullable = False - - name = mapper.primitive_to_python(str(scalar)) - if isinstance(scalar, GraphQLObjectType) or isinstance( - scalar, GraphQLInterfaceType - ): - name = mapper.class_to_python(str(scalar)) - - mapping = f"list[{name}]" - elif isinstance(scalar, GraphQLObjectType) or isinstance( - scalar, GraphQLInterfaceType - ): - mapping = mapper.class_to_python(str(scalar)) + def _to_python_type(self, graphql_type: GraphQLOutputType) -> str: + if isinstance(graphql_type, GraphQLScalarType): + return graphql_primitive_to_python(graphql_type=graphql_type) else: - mapping = mapper.primitive_to_python(str(scalar)) - - return mapping, nullable, scalar - - @staticmethod - def __variable_type_to_python(var_type: TypeNode): - nullable = True - if isinstance(var_type, NonNullTypeNode): - nullable = False - var_type = var_type.type + cur = self.parent.parent + class_name = str(graphql_type).replace("_", "") + class_name = f"{class_name[:-2]}V{class_name[-1]}" + while cur and cur.parent and class_name in self.deduplication_cache: + class_name = f"{cur.parsed_type.unwrapped_python_type}_{class_name}" + cur = cur.parent - mapping = mapper.primitive_to_python(var_type.name.value) - return mapping, nullable, var_type + self.deduplication_cache.add(class_name) + return class_name class AnonymousQueryError(Exception): @@ -284,9 +302,8 @@ def __init__(self, errors): class QueryParser: def __init__(self, schema: GraphQLSchema): self.schema = schema - self.__jinja2_env = None - def parse(self, query: str, should_validate: bool = True) -> ParsedQuery: + def parse(self, query: str, should_validate: bool = True) -> ParsedNode: document_ast = parse(query) operation = get_operation_ast(document_ast) @@ -301,5 +318,4 @@ def parse(self, query: str, should_validate: bool = True) -> ParsedQuery: type_info = TypeInfo(self.schema) visitor = FieldToTypeMatcherVisitor(self.schema, type_info, query) visit(document_ast, TypeInfoVisitor(type_info, visitor)) - result = visitor.parsed - return result + return visitor.parsed diff --git a/reconcile/gql_queries/ocp/__init__.py b/reconcile/gql_queries/ocp/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/reconcile/gql_queries/ocp/ocp_auth.gql b/reconcile/gql_queries/ocp/ocp_auth.gql new file mode 100644 index 0000000000..ede893c98d --- /dev/null +++ b/reconcile/gql_queries/ocp/ocp_auth.gql @@ -0,0 +1,87 @@ +query OCPAuthFull { + ocp_release_mirror: ocp_release_mirror_v1 { + hiveCluster { + name + serverUrl + insecureSkipTLSVerify + jumpHost { + hostname + knownHosts + user + port + identity { + path + field + version + format + } + } + managedGroups + ocm { + name + url + accessTokenClientId + accessTokenUrl + offlineToken { + path + field + format + version + } + } + automationToken { + path + field + version + format + } + internal + disable { + integrations + } + auth { + service + ... on ClusterAuthGithubOrg_v1 { + org + } + ... on ClusterAuthGithubOrgTeam_v1 { + org + team + } + } + } + ecrResourcesNamespace { + name + managedTerraformResources + terraformResources { + provider + ... on NamespaceTerraformResourceECR_v1 { + account + region + identifier + output_resource_name + } + } + cluster { + name + serverUrl + automationToken { + path + field + version + format + } + internal + } + } + quayTargetOrgs { + name + instance { + name + } + } + ocpReleaseEcrIdentifier + ocpArtDevEcrIdentifier + mirrorChannels + } +} \ No newline at end of file diff --git a/reconcile/gql_queries/ocp/ocp_auth.py b/reconcile/gql_queries/ocp/ocp_auth.py new file mode 100644 index 0000000000..8fe2e7b44b --- /dev/null +++ b/reconcile/gql_queries/ocp/ocp_auth.py @@ -0,0 +1,206 @@ +""" +THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! +""" +from typing import Optional, Union # noqa: F401 # pylint: disable=W0611 + +from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 + + +class VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = 'forbid' + + +class ClusterJumpHostV1(BaseModel): + hostname: str = Field(..., alias="hostname") + known_hosts: str = Field(..., alias="knownHosts") + user: str = Field(..., alias="user") + port: Optional[int] = Field(..., alias="port") + identity: VaultSecretV1 = Field(..., alias="identity") + + class Config: + smart_union = True + extra = 'forbid' + + +class ClusterV1_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + f_format: Optional[str] = Field(..., alias="format") + version: Optional[int] = Field(..., alias="version") + + class Config: + smart_union = True + extra = 'forbid' + + +class OpenShiftClusterManagerV1(BaseModel): + name: str = Field(..., alias="name") + url: str = Field(..., alias="url") + access_token_client_id: str = Field(..., alias="accessTokenClientId") + access_token_url: str = Field(..., alias="accessTokenUrl") + offline_token: Optional[ClusterV1_VaultSecretV1] = Field(..., alias="offlineToken") + + class Config: + smart_union = True + extra = 'forbid' + + +class OcpReleaseMirrorV1_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = 'forbid' + + +class DisableClusterAutomationsV1(BaseModel): + integrations: Optional[list[str]] = Field(..., alias="integrations") + + class Config: + smart_union = True + extra = 'forbid' + + +class ClusterAuthGithubOrgV1(BaseModel): + service: str = Field(..., alias="service") + org: str = Field(..., alias="org") + + class Config: + smart_union = True + extra = 'forbid' + + +class ClusterAuthGithubOrgTeamV1(BaseModel): + service: str = Field(..., alias="service") + org: str = Field(..., alias="org") + team: str = Field(..., alias="team") + + class Config: + smart_union = True + extra = 'forbid' + + +class ClusterAuthV1(BaseModel): + service: str = Field(..., alias="service") + + class Config: + smart_union = True + extra = 'forbid' + + +class ClusterV1(BaseModel): + name: str = Field(..., alias="name") + server_url: str = Field(..., alias="serverUrl") + insecure_skip_t_l_s_verify: Optional[bool] = Field(..., alias="insecureSkipTLSVerify") + jump_host: Optional[ClusterJumpHostV1] = Field(..., alias="jumpHost") + managed_groups: Optional[list[str]] = Field(..., alias="managedGroups") + ocm: Optional[OpenShiftClusterManagerV1] = Field(..., alias="ocm") + automation_token: Optional[OcpReleaseMirrorV1_VaultSecretV1] = Field(..., alias="automationToken") + internal: Optional[bool] = Field(..., alias="internal") + disable: Optional[DisableClusterAutomationsV1] = Field(..., alias="disable") + auth: Optional[Union[ClusterAuthGithubOrgTeamV1, ClusterAuthGithubOrgV1, ClusterAuthV1]] = Field(..., alias="auth") + + class Config: + smart_union = True + extra = 'forbid' + + +class NamespaceTerraformResourceECRV1(BaseModel): + provider: str = Field(..., alias="provider") + account: str = Field(..., alias="account") + region: Optional[str] = Field(..., alias="region") + identifier: str = Field(..., alias="identifier") + output_resource_name: Optional[str] = Field(..., alias="output_resource_name") + + class Config: + smart_union = True + extra = 'forbid' + + +class NamespaceTerraformResourceV1(BaseModel): + provider: str = Field(..., alias="provider") + + class Config: + smart_union = True + extra = 'forbid' + + +class NamespaceV1_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = 'forbid' + + +class OcpReleaseMirrorV1_ClusterV1(BaseModel): + name: str = Field(..., alias="name") + server_url: str = Field(..., alias="serverUrl") + automation_token: Optional[NamespaceV1_VaultSecretV1] = Field(..., alias="automationToken") + internal: Optional[bool] = Field(..., alias="internal") + + class Config: + smart_union = True + extra = 'forbid' + + +class NamespaceV1(BaseModel): + name: str = Field(..., alias="name") + managed_terraform_resources: Optional[bool] = Field(..., alias="managedTerraformResources") + terraform_resources: Optional[list[Union[NamespaceTerraformResourceECRV1, NamespaceTerraformResourceV1]]] = Field(..., alias="terraformResources") + cluster: OcpReleaseMirrorV1_ClusterV1 = Field(..., alias="cluster") + + class Config: + smart_union = True + extra = 'forbid' + + +class QuayInstanceV1(BaseModel): + name: str = Field(..., alias="name") + + class Config: + smart_union = True + extra = 'forbid' + + +class QuayOrgV1(BaseModel): + name: str = Field(..., alias="name") + instance: QuayInstanceV1 = Field(..., alias="instance") + + class Config: + smart_union = True + extra = 'forbid' + + +class OcpReleaseMirrorV1(BaseModel): + hive_cluster: ClusterV1 = Field(..., alias="hiveCluster") + ecr_resources_namespace: NamespaceV1 = Field(..., alias="ecrResourcesNamespace") + quay_target_orgs: Optional[list[QuayOrgV1]] = Field(..., alias="quayTargetOrgs") + ocp_release_ecr_identifier: str = Field(..., alias="ocpReleaseEcrIdentifier") + ocp_art_dev_ecr_identifier: str = Field(..., alias="ocpArtDevEcrIdentifier") + mirror_channels: Optional[list[str]] = Field(..., alias="mirrorChannels") + + class Config: + smart_union = True + extra = 'forbid' + + +class OCPAuthFullQuery(BaseModel): + ocp_release_mirror_v1: Optional[list[OcpReleaseMirrorV1]] = Field(..., alias="ocp_release_mirror") + + class Config: + smart_union = True + extra = 'forbid' diff --git a/reconcile/gql_queries/saas_files/saas_files_full.py b/reconcile/gql_queries/saas_files/saas_files_full.py index cc990d6899..8c713446fa 100644 --- a/reconcile/gql_queries/saas_files/saas_files_full.py +++ b/reconcile/gql_queries/saas_files/saas_files_full.py @@ -1,30 +1,45 @@ """ THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! """ - -from typing import Any, Optional # noqa: F401 # pylint: disable=W0611 +from typing import Optional, Union # noqa: F401 # pylint: disable=W0611 from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 class VaultSecretV1(BaseModel): path: str = Field(..., alias="path") - _format: Optional[str] = Field(..., alias="format") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = 'forbid' class SaasSecretParametersV1(BaseModel): name: str = Field(..., alias="name") secret: VaultSecretV1 = Field(..., alias="secret") + class Config: + smart_union = True + extra = 'forbid' + class PipelinesProviderV1(BaseModel): name: str = Field(..., alias="name") + class Config: + smart_union = True + extra = 'forbid' + class SlackOutputV1(BaseModel): channel: Optional[str] = Field(..., alias="channel") username: Optional[str] = Field(..., alias="username") + class Config: + smart_union = True + extra = 'forbid' + class SaasFileV2(BaseModel): labels: Optional[Json] = Field(..., alias="labels") @@ -33,10 +48,22 @@ class SaasFileV2(BaseModel): pipelines_provider: PipelinesProviderV1 = Field(..., alias="pipelinesProvider") slack: Optional[SlackOutputV1] = Field(..., alias="slack") + class Config: + smart_union = True + extra = 'forbid' + class AppV1(BaseModel): saas_files_v2: Optional[list[SaasFileV2]] = Field(..., alias="saasFilesV2") + class Config: + smart_union = True + extra = 'forbid' + + +class SaasFilesV2FullQuery(BaseModel): + apps_v1: Optional[list[AppV1]] = Field(..., alias="apps_v1") -def data_to_obj(data: dict[Any, Any]) -> list[AppV1]: - return [AppV1(**el) for el in data["apps_v1"]] + class Config: + smart_union = True + extra = 'forbid' diff --git a/reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql index 893328b51a..2e7061384c 100644 --- a/reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql +++ b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql @@ -1,4 +1,4 @@ -query ListSaasFilesV2 { +query ListSaasFilesV2Small { apps_v1 { saasFilesV2 { name diff --git a/reconcile/gql_queries/saas_files/saas_files_small_with_provider.py b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.py index b30c5443cb..3c8fa5cf12 100644 --- a/reconcile/gql_queries/saas_files/saas_files_small_with_provider.py +++ b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.py @@ -1,8 +1,7 @@ """ THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! """ - -from typing import Any, Optional # noqa: F401 # pylint: disable=W0611 +from typing import Optional, Union # noqa: F401 # pylint: disable=W0611 from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 @@ -10,15 +9,31 @@ class PipelinesProviderV1(BaseModel): name: str = Field(..., alias="name") + class Config: + smart_union = True + extra = 'forbid' + class SaasFileV2(BaseModel): name: str = Field(..., alias="name") pipelines_provider: PipelinesProviderV1 = Field(..., alias="pipelinesProvider") + class Config: + smart_union = True + extra = 'forbid' + class AppV1(BaseModel): saas_files_v2: Optional[list[SaasFileV2]] = Field(..., alias="saasFilesV2") + class Config: + smart_union = True + extra = 'forbid' + + +class ListSaasFilesV2SmallQuery(BaseModel): + apps_v1: Optional[list[AppV1]] = Field(..., alias="apps_v1") -def data_to_obj(data: dict[Any, Any]) -> list[AppV1]: - return [AppV1(**el) for el in data["apps_v1"]] + class Config: + smart_union = True + extra = 'forbid' diff --git a/reconcile/typed_queries.py b/reconcile/typed_queries.py index c931e21b02..6648dfeba1 100644 --- a/reconcile/typed_queries.py +++ b/reconcile/typed_queries.py @@ -1,21 +1,23 @@ +from typing import Any + +from reconcile.gql_queries.ocp import ocp_auth from reconcile.gql_queries.saas_files import saas_files_small_with_provider from reconcile.gql_queries.saas_files import saas_files_full from reconcile.utils import gql -def get_query(query_name: str) -> str: +def get_query_data(query_name: str) -> dict[Any, Any]: + gqlapi = gql.get_api() with open(f"reconcile/gql_queries/{query_name}") as f: - return f.read() + return gqlapi.query(f.read()) def query_saas_files_small() -> list[saas_files_small_with_provider.SaasFileV2]: - gqlapi = gql.get_api() - query = get_query("saas_files/saas_files_small_with_provider.gql") - data = gqlapi.query(query) + data = get_query_data("saas_files/saas_files_small_with_provider.gql") - apps: list[ - saas_files_small_with_provider.AppV1 - ] = saas_files_small_with_provider.data_to_obj(data) + apps: list[saas_files_small_with_provider.AppV1] = ( + saas_files_small_with_provider.ListSaasFilesV2SmallQuery(**data).apps_v1 or [] + ) all_saas_files: list[saas_files_small_with_provider.SaasFileV2] = [] for app in apps: saas_files_v2: list[saas_files_small_with_provider.SaasFileV2] = ( @@ -28,11 +30,11 @@ def query_saas_files_small() -> list[saas_files_small_with_provider.SaasFileV2]: def query_saas_files_full() -> list[saas_files_full.SaasFileV2]: - gqlapi = gql.get_api() - query = get_query("saas_files/saas_files_full.gql") - data = gqlapi.query(query) + data = get_query_data("saas_files/saas_files_full.gql") - apps: list[saas_files_full.AppV1] = saas_files_full.data_to_obj(data) + apps: list[saas_files_full.AppV1] = ( + saas_files_full.SaasFilesV2FullQuery(**data).apps_v1 or [] + ) all_saas_files: list[saas_files_full.SaasFileV2] = [] for app in apps: saas_files_v2: list[saas_files_full.SaasFileV2] = app.saas_files_v2 or [] @@ -40,3 +42,11 @@ def query_saas_files_full() -> list[saas_files_full.SaasFileV2]: all_saas_files.append(app_saas_file) return all_saas_files + + +def query_ocp_auth() -> list[ocp_auth.OcpReleaseMirrorV1]: + data = get_query_data("ocp/ocp_auth.gql") + result: list[ocp_auth.OcpReleaseMirrorV1] = ( + ocp_auth.OCPAuthFullQuery(**data).ocp_release_mirror_v1 or [] + ) + return result From c78571ef09c773625353db3ffe70853bc729af03 Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Thu, 2 Jun 2022 16:23:57 +0200 Subject: [PATCH 08/12] Properly implement interfaces --- code_generator/main.py | 23 +++++-- code_generator/query_parser.py | 15 ++--- reconcile/gql_queries/ocp/ocp_auth.py | 67 +++++++++---------- .../saas_files/saas_files_full.gql | 2 +- .../gql_queries/saas_files/saas_files_full.py | 18 ++--- .../saas_files_small_with_provider.gql | 2 +- .../saas_files_small_with_provider.py | 12 ++-- reconcile/typed_queries.py | 2 +- 8 files changed, 72 insertions(+), 69 deletions(-) diff --git a/code_generator/main.py b/code_generator/main.py index 2dd0aba1be..a90df00b80 100644 --- a/code_generator/main.py +++ b/code_generator/main.py @@ -3,7 +3,7 @@ from graphql import build_client_schema, get_introspection_query -from code_generator.query_parser import ParsedNode, QueryParser # type: ignore +from code_generator.query_parser import ParsedNode, ParsedInlineFragmentNode, QueryParser # type: ignore HEADER = '"""\nTHIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY!\n"""\n' @@ -27,15 +27,24 @@ def find_query_files() -> list[str]: return result -def post_order(node: ParsedNode) -> str: +def traverse(node: ParsedNode) -> str: """ Pydantic doesnt play well with from __future__ import annotations - --> order of class declaration is important --> post-order + --> order of class declaration is important: + - post-order for non-inline fragment nodes, i.e., non-interface nodes + - pre-order for nodes that implement an interface """ result = "" for child in node.fields: - result = f"{result}{post_order(child)}" - return f"{result}{node.class_code_string()}" + if not isinstance(child, ParsedInlineFragmentNode): + result = f"{result}{traverse(child)}" + + result = f"{result}{node.class_code_string()}" + + for child in node.fields: + if isinstance(child, ParsedInlineFragmentNode): + result = f"{result}{traverse(child)}" + return result def main(): @@ -45,14 +54,14 @@ def main(): for file in find_query_files(): with open(file, "r") as f: result = query_parser.parse(f.read()) - code = post_order(result) + code = traverse(result) with open(f"{file[:-3]}py", "w") as out_file: out_file.write(HEADER) out_file.write( "from typing import Optional, Union # noqa: F401 # pylint: disable=W0611\n\n" ) out_file.write( - "from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611" + "from pydantic import BaseModel, Extra, Field, Json # noqa: F401 # pylint: disable=W0611" ) out_file.write(code) out_file.write("\n") diff --git a/code_generator/query_parser.py b/code_generator/query_parser.py index e728aff146..dd1603343e 100644 --- a/code_generator/query_parser.py +++ b/code_generator/query_parser.py @@ -48,12 +48,9 @@ def class_code_string(self) -> str: return "" lines = ["\n\n"] - lines.append(f"class {self.parsed_type.unwrapped_python_type}(BaseModel):") - for parent_field in self.parent.fields: - if isinstance(parent_field, ParsedClassNode): - lines.append( - f'{INDENT}{parent_field.py_key}: {parent_field.field_type()} = Field(..., alias="{parent_field.gql_key}")' - ) + lines.append( + f"class {self.parsed_type.unwrapped_python_type}({self.parent.parsed_type.unwrapped_python_type}):" + ) for field in self.fields: if isinstance(field, ParsedClassNode): lines.append( @@ -65,7 +62,7 @@ def class_code_string(self) -> str: lines.append("") lines.append(f"{INDENT}class Config:") lines.append(f"{INDENT}{INDENT}smart_union = True") - lines.append(f"{INDENT}{INDENT}extra = 'forbid'") + lines.append(f"{INDENT}{INDENT}extra = Extra.forbid") return "\n".join(lines) @@ -92,7 +89,7 @@ def class_code_string(self) -> str: lines.append("") lines.append(f"{INDENT}class Config:") lines.append(f"{INDENT}{INDENT}smart_union = True") - lines.append(f"{INDENT}{INDENT}extra = 'forbid'") + lines.append(f"{INDENT}{INDENT}extra = Extra.forbid") return "\n".join(lines) @@ -137,7 +134,7 @@ def class_code_string(self) -> str: lines.append("") lines.append(f"{INDENT}class Config:") lines.append(f"{INDENT}{INDENT}smart_union = True") - lines.append(f"{INDENT}{INDENT}extra = 'forbid'") + lines.append(f"{INDENT}{INDENT}extra = Extra.forbid") return "\n".join(lines) diff --git a/reconcile/gql_queries/ocp/ocp_auth.py b/reconcile/gql_queries/ocp/ocp_auth.py index 8fe2e7b44b..957af2ca1d 100644 --- a/reconcile/gql_queries/ocp/ocp_auth.py +++ b/reconcile/gql_queries/ocp/ocp_auth.py @@ -3,7 +3,7 @@ """ from typing import Optional, Union # noqa: F401 # pylint: disable=W0611 -from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 +from pydantic import BaseModel, Extra, Field, Json # noqa: F401 # pylint: disable=W0611 class VaultSecretV1(BaseModel): @@ -14,7 +14,7 @@ class VaultSecretV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class ClusterJumpHostV1(BaseModel): @@ -26,7 +26,7 @@ class ClusterJumpHostV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class ClusterV1_VaultSecretV1(BaseModel): @@ -37,7 +37,7 @@ class ClusterV1_VaultSecretV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class OpenShiftClusterManagerV1(BaseModel): @@ -49,7 +49,7 @@ class OpenShiftClusterManagerV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class OcpReleaseMirrorV1_VaultSecretV1(BaseModel): @@ -60,7 +60,7 @@ class OcpReleaseMirrorV1_VaultSecretV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class DisableClusterAutomationsV1(BaseModel): @@ -68,34 +68,32 @@ class DisableClusterAutomationsV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid -class ClusterAuthGithubOrgV1(BaseModel): +class ClusterAuthV1(BaseModel): service: str = Field(..., alias="service") - org: str = Field(..., alias="org") class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid -class ClusterAuthGithubOrgTeamV1(BaseModel): - service: str = Field(..., alias="service") +class ClusterAuthGithubOrgV1(ClusterAuthV1): org: str = Field(..., alias="org") - team: str = Field(..., alias="team") class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid -class ClusterAuthV1(BaseModel): - service: str = Field(..., alias="service") +class ClusterAuthGithubOrgTeamV1(ClusterAuthV1): + org: str = Field(..., alias="org") + team: str = Field(..., alias="team") class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class ClusterV1(BaseModel): @@ -112,27 +110,26 @@ class ClusterV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid -class NamespaceTerraformResourceECRV1(BaseModel): +class NamespaceTerraformResourceAWSV1(BaseModel): provider: str = Field(..., alias="provider") - account: str = Field(..., alias="account") - region: Optional[str] = Field(..., alias="region") - identifier: str = Field(..., alias="identifier") - output_resource_name: Optional[str] = Field(..., alias="output_resource_name") class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid -class NamespaceTerraformResourceV1(BaseModel): - provider: str = Field(..., alias="provider") +class NamespaceTerraformResourceECRV1(NamespaceTerraformResourceAWSV1): + account: str = Field(..., alias="account") + region: Optional[str] = Field(..., alias="region") + identifier: str = Field(..., alias="identifier") + output_resource_name: Optional[str] = Field(..., alias="output_resource_name") class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class NamespaceV1_VaultSecretV1(BaseModel): @@ -143,7 +140,7 @@ class NamespaceV1_VaultSecretV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class OcpReleaseMirrorV1_ClusterV1(BaseModel): @@ -154,18 +151,18 @@ class OcpReleaseMirrorV1_ClusterV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class NamespaceV1(BaseModel): name: str = Field(..., alias="name") managed_terraform_resources: Optional[bool] = Field(..., alias="managedTerraformResources") - terraform_resources: Optional[list[Union[NamespaceTerraformResourceECRV1, NamespaceTerraformResourceV1]]] = Field(..., alias="terraformResources") + terraform_resources: Optional[list[Union[NamespaceTerraformResourceECRV1, NamespaceTerraformResourceAWSV1]]] = Field(..., alias="terraformResources") cluster: OcpReleaseMirrorV1_ClusterV1 = Field(..., alias="cluster") class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class QuayInstanceV1(BaseModel): @@ -173,7 +170,7 @@ class QuayInstanceV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class QuayOrgV1(BaseModel): @@ -182,7 +179,7 @@ class QuayOrgV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class OcpReleaseMirrorV1(BaseModel): @@ -195,7 +192,7 @@ class OcpReleaseMirrorV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class OCPAuthFullQuery(BaseModel): @@ -203,4 +200,4 @@ class OCPAuthFullQuery(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid diff --git a/reconcile/gql_queries/saas_files/saas_files_full.gql b/reconcile/gql_queries/saas_files/saas_files_full.gql index 50c66cf790..c023e697d4 100644 --- a/reconcile/gql_queries/saas_files/saas_files_full.gql +++ b/reconcile/gql_queries/saas_files/saas_files_full.gql @@ -1,6 +1,6 @@ query SaasFilesV2Full { apps_v1 { - saasFilesV2 { + saasFiles { labels secretParameters { name diff --git a/reconcile/gql_queries/saas_files/saas_files_full.py b/reconcile/gql_queries/saas_files/saas_files_full.py index 8c713446fa..591c08a199 100644 --- a/reconcile/gql_queries/saas_files/saas_files_full.py +++ b/reconcile/gql_queries/saas_files/saas_files_full.py @@ -3,7 +3,7 @@ """ from typing import Optional, Union # noqa: F401 # pylint: disable=W0611 -from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 +from pydantic import BaseModel, Extra, Field, Json # noqa: F401 # pylint: disable=W0611 class VaultSecretV1(BaseModel): @@ -12,7 +12,7 @@ class VaultSecretV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class SaasSecretParametersV1(BaseModel): @@ -21,7 +21,7 @@ class SaasSecretParametersV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class PipelinesProviderV1(BaseModel): @@ -29,7 +29,7 @@ class PipelinesProviderV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class SlackOutputV1(BaseModel): @@ -38,7 +38,7 @@ class SlackOutputV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class SaasFileV2(BaseModel): @@ -50,15 +50,15 @@ class SaasFileV2(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class AppV1(BaseModel): - saas_files_v2: Optional[list[SaasFileV2]] = Field(..., alias="saasFilesV2") + saas_files: Optional[list[SaasFileV2]] = Field(..., alias="saasFiles") class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class SaasFilesV2FullQuery(BaseModel): @@ -66,4 +66,4 @@ class SaasFilesV2FullQuery(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid diff --git a/reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql index 2e7061384c..2ab9c40adf 100644 --- a/reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql +++ b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.gql @@ -1,6 +1,6 @@ query ListSaasFilesV2Small { apps_v1 { - saasFilesV2 { + saasFiles { name pipelinesProvider { name diff --git a/reconcile/gql_queries/saas_files/saas_files_small_with_provider.py b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.py index 3c8fa5cf12..fcf1221d4a 100644 --- a/reconcile/gql_queries/saas_files/saas_files_small_with_provider.py +++ b/reconcile/gql_queries/saas_files/saas_files_small_with_provider.py @@ -3,7 +3,7 @@ """ from typing import Optional, Union # noqa: F401 # pylint: disable=W0611 -from pydantic import BaseModel, Field, Json # noqa: F401 # pylint: disable=W0611 +from pydantic import BaseModel, Extra, Field, Json # noqa: F401 # pylint: disable=W0611 class PipelinesProviderV1(BaseModel): @@ -11,7 +11,7 @@ class PipelinesProviderV1(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class SaasFileV2(BaseModel): @@ -20,15 +20,15 @@ class SaasFileV2(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class AppV1(BaseModel): - saas_files_v2: Optional[list[SaasFileV2]] = Field(..., alias="saasFilesV2") + saas_files: Optional[list[SaasFileV2]] = Field(..., alias="saasFiles") class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid class ListSaasFilesV2SmallQuery(BaseModel): @@ -36,4 +36,4 @@ class ListSaasFilesV2SmallQuery(BaseModel): class Config: smart_union = True - extra = 'forbid' + extra = Extra.forbid diff --git a/reconcile/typed_queries.py b/reconcile/typed_queries.py index 6648dfeba1..6742c45b24 100644 --- a/reconcile/typed_queries.py +++ b/reconcile/typed_queries.py @@ -37,7 +37,7 @@ def query_saas_files_full() -> list[saas_files_full.SaasFileV2]: ) all_saas_files: list[saas_files_full.SaasFileV2] = [] for app in apps: - saas_files_v2: list[saas_files_full.SaasFileV2] = app.saas_files_v2 or [] + saas_files_v2: list[saas_files_full.SaasFileV2] = app.saas_files or [] for app_saas_file in saas_files_v2: all_saas_files.append(app_saas_file) From 9353188a8bb097fdb0da254da47104eeac78fbb6 Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Thu, 2 Jun 2022 16:34:46 +0200 Subject: [PATCH 09/12] A schema change happened and typing showed it :) --- reconcile/typed_queries.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reconcile/typed_queries.py b/reconcile/typed_queries.py index 6742c45b24..89bc5be472 100644 --- a/reconcile/typed_queries.py +++ b/reconcile/typed_queries.py @@ -21,7 +21,7 @@ def query_saas_files_small() -> list[saas_files_small_with_provider.SaasFileV2]: all_saas_files: list[saas_files_small_with_provider.SaasFileV2] = [] for app in apps: saas_files_v2: list[saas_files_small_with_provider.SaasFileV2] = ( - app.saas_files_v2 or [] + app.saas_files or [] ) for app_saas_file in saas_files_v2: all_saas_files.append(app_saas_file) From c1c2c0f70d499eefbfa8ae13c6ccd5fbe13fe897 Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Fri, 3 Jun 2022 11:14:40 +0200 Subject: [PATCH 10/12] More query examples from queries.py --- reconcile/gql_queries/apps/apps_with_path.gql | 34 ++ reconcile/gql_queries/apps/apps_with_path.py | 99 ++++ .../saas_files/saas_files_humongous.gql | 233 ++++++++ .../saas_files/saas_files_humongous.py | 560 ++++++++++++++++++ 4 files changed, 926 insertions(+) create mode 100644 reconcile/gql_queries/apps/apps_with_path.gql create mode 100644 reconcile/gql_queries/apps/apps_with_path.py create mode 100644 reconcile/gql_queries/saas_files/saas_files_humongous.gql create mode 100644 reconcile/gql_queries/saas_files/saas_files_humongous.py diff --git a/reconcile/gql_queries/apps/apps_with_path.gql b/reconcile/gql_queries/apps/apps_with_path.gql new file mode 100644 index 0000000000..12fbe88422 --- /dev/null +++ b/reconcile/gql_queries/apps/apps_with_path.gql @@ -0,0 +1,34 @@ +query AppsWithPath($path: String) { + apps: apps_v1 (path: $path) { + labels + name + description + sopsUrl + grafanaUrls { + url + } + architectureDocument + serviceOwners { + name + email + } + escalationPolicy { + description + channels { + jiraBoard { + name + server { + serverUrl + token { + path + field + } + } + } + slackUserGroup { + name + } + } + } + } +} \ No newline at end of file diff --git a/reconcile/gql_queries/apps/apps_with_path.py b/reconcile/gql_queries/apps/apps_with_path.py new file mode 100644 index 0000000000..56d06abb3c --- /dev/null +++ b/reconcile/gql_queries/apps/apps_with_path.py @@ -0,0 +1,99 @@ +""" +THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! +""" +from typing import Optional, Union # noqa: F401 # pylint: disable=W0611 + +from pydantic import BaseModel, Extra, Field, Json # noqa: F401 # pylint: disable=W0611 + + +class GrafanaDashboardUrlsV1(BaseModel): + url: str = Field(..., alias="url") + + class Config: + smart_union = True + extra = Extra.forbid + + +class OwnerV1(BaseModel): + name: str = Field(..., alias="name") + email: str = Field(..., alias="email") + + class Config: + smart_union = True + extra = Extra.forbid + + +class VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + + class Config: + smart_union = True + extra = Extra.forbid + + +class JiraServerV1(BaseModel): + server_url: str = Field(..., alias="serverUrl") + token: VaultSecretV1 = Field(..., alias="token") + + class Config: + smart_union = True + extra = Extra.forbid + + +class JiraBoardV1(BaseModel): + name: str = Field(..., alias="name") + server: JiraServerV1 = Field(..., alias="server") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PermissionSlackUsergroupV1(BaseModel): + name: str = Field(..., alias="name") + + class Config: + smart_union = True + extra = Extra.forbid + + +class AppEscalationPolicyChannelsV1(BaseModel): + jira_board: Optional[list[JiraBoardV1]] = Field(..., alias="jiraBoard") + slack_user_group: Optional[list[PermissionSlackUsergroupV1]] = Field(..., alias="slackUserGroup") + + class Config: + smart_union = True + extra = Extra.forbid + + +class AppEscalationPolicyV1(BaseModel): + description: str = Field(..., alias="description") + channels: AppEscalationPolicyChannelsV1 = Field(..., alias="channels") + + class Config: + smart_union = True + extra = Extra.forbid + + +class AppV1(BaseModel): + labels: Optional[Json] = Field(..., alias="labels") + name: str = Field(..., alias="name") + description: str = Field(..., alias="description") + sops_url: str = Field(..., alias="sopsUrl") + grafana_urls: Optional[list[GrafanaDashboardUrlsV1]] = Field(..., alias="grafanaUrls") + architecture_document: str = Field(..., alias="architectureDocument") + service_owners: Optional[list[OwnerV1]] = Field(..., alias="serviceOwners") + escalation_policy: AppEscalationPolicyV1 = Field(..., alias="escalationPolicy") + + class Config: + smart_union = True + extra = Extra.forbid + + +class AppsWithPathQuery(BaseModel): + apps_v1: Optional[list[AppV1]] = Field(..., alias="apps") + + class Config: + smart_union = True + extra = Extra.forbid diff --git a/reconcile/gql_queries/saas_files/saas_files_humongous.gql b/reconcile/gql_queries/saas_files/saas_files_humongous.gql new file mode 100644 index 0000000000..518a97a613 --- /dev/null +++ b/reconcile/gql_queries/saas_files/saas_files_humongous.gql @@ -0,0 +1,233 @@ +query SaasFilesV2XXL { + saas_files: saas_files_v2 { + path + name + app { + name + } + pipelinesProvider { + name + provider + ...on PipelinesProviderTekton_v1 { + namespace { + name + cluster { + name + consoleUrl + serverUrl + insecureSkipTLSVerify + jumpHost { + hostname + knownHosts + user + port + identity { + path + field + version + format + } + } + automationToken { + path + field + version + format + } + internal + disable { + integrations + } + } + } + defaults { + pipelineTemplates { + openshiftSaasDeploy { + name + } + } + } + pipelineTemplates { + openshiftSaasDeploy { + name + } + } + } + } + deployResources { + requests { + cpu + memory + } + limits { + cpu + memory + } + } + slack { + output + workspace { + name + integrations { + name + token { + path + field + version + format + } + channel + icon_emoji + username + } + } + channel + notifications { + start + } + } + managedResourceTypes + takeover + compare + publishJobLogs + clusterAdmin + imagePatterns + use_channel_in_image_tag + authentication { + code { + path + field + version + format + } + image { + path + field + version + format + } + } + parameters + secretParameters { + name + secret { + path + field + version + format + } + } + resourceTemplates { + name + url + path + provider + hash_length + parameters + secretParameters { + name + secret { + path + field + version + format + } + } + targets { + namespace { + name + environment { + name + parameters + secretParameters { + name + secret { + path + field + version + format + } + } + } + app { + name + } + cluster { + name + serverUrl + insecureSkipTLSVerify + jumpHost { + hostname + knownHosts + user + port + identity { + path + field + version + format + } + } + automationToken { + path + field + version + format + } + clusterAdminAutomationToken { + path + field + version + format + } + internal + disable { + integrations + } + } + } + ref + promotion { + auto + publish + subscribe + promotion_data { + channel + data { + type + ... on ParentSaasPromotion_v1 { + parent_saas + target_config_hash + } + } + } + } + parameters + secretParameters { + name + secret { + path + field + version + format + } + } + upstream { + instance { + name + serverUrl + } + name + } + disable + delete + } + } + roles { + users { + org_username + tag_on_merge_requests + } + } + } +} \ No newline at end of file diff --git a/reconcile/gql_queries/saas_files/saas_files_humongous.py b/reconcile/gql_queries/saas_files/saas_files_humongous.py new file mode 100644 index 0000000000..c451511ee6 --- /dev/null +++ b/reconcile/gql_queries/saas_files/saas_files_humongous.py @@ -0,0 +1,560 @@ +""" +THIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY! +""" +from typing import Optional, Union # noqa: F401 # pylint: disable=W0611 + +from pydantic import BaseModel, Extra, Field, Json # noqa: F401 # pylint: disable=W0611 + + +class AppV1(BaseModel): + name: str = Field(..., alias="name") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PipelinesProviderV1(BaseModel): + name: str = Field(..., alias="name") + provider: str = Field(..., alias="provider") + + class Config: + smart_union = True + extra = Extra.forbid + + +class VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class ClusterJumpHostV1(BaseModel): + hostname: str = Field(..., alias="hostname") + known_hosts: str = Field(..., alias="knownHosts") + user: str = Field(..., alias="user") + port: Optional[int] = Field(..., alias="port") + identity: VaultSecretV1 = Field(..., alias="identity") + + class Config: + smart_union = True + extra = Extra.forbid + + +class NamespaceV1_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class DisableClusterAutomationsV1(BaseModel): + integrations: Optional[list[str]] = Field(..., alias="integrations") + + class Config: + smart_union = True + extra = Extra.forbid + + +class ClusterV1(BaseModel): + name: str = Field(..., alias="name") + console_url: str = Field(..., alias="consoleUrl") + server_url: str = Field(..., alias="serverUrl") + insecure_skip_t_l_s_verify: Optional[bool] = Field(..., alias="insecureSkipTLSVerify") + jump_host: Optional[ClusterJumpHostV1] = Field(..., alias="jumpHost") + automation_token: Optional[NamespaceV1_VaultSecretV1] = Field(..., alias="automationToken") + internal: Optional[bool] = Field(..., alias="internal") + disable: Optional[DisableClusterAutomationsV1] = Field(..., alias="disable") + + class Config: + smart_union = True + extra = Extra.forbid + + +class NamespaceV1(BaseModel): + name: str = Field(..., alias="name") + cluster: ClusterV1 = Field(..., alias="cluster") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PipelinesProviderTektonObjectTemplateV1(BaseModel): + name: str = Field(..., alias="name") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PipelinesProviderPipelineTemplatesV1(BaseModel): + openshift_saas_deploy: PipelinesProviderTektonObjectTemplateV1 = Field(..., alias="openshiftSaasDeploy") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PipelinesProviderTektonProviderDefaultsV1(BaseModel): + pipeline_templates: PipelinesProviderPipelineTemplatesV1 = Field(..., alias="pipelineTemplates") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PipelinesProviderTektonV1_PipelinesProviderTektonObjectTemplateV1(BaseModel): + name: str = Field(..., alias="name") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PipelinesProviderV1_PipelinesProviderPipelineTemplatesV1(BaseModel): + openshift_saas_deploy: PipelinesProviderTektonV1_PipelinesProviderTektonObjectTemplateV1 = Field(..., alias="openshiftSaasDeploy") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PipelinesProviderTektonV1(PipelinesProviderV1): + namespace: NamespaceV1 = Field(..., alias="namespace") + defaults: PipelinesProviderTektonProviderDefaultsV1 = Field(..., alias="defaults") + pipeline_templates: Optional[PipelinesProviderV1_PipelinesProviderPipelineTemplatesV1] = Field(..., alias="pipelineTemplates") + + class Config: + smart_union = True + extra = Extra.forbid + + +class ResourceRequirementsV1(BaseModel): + cpu: str = Field(..., alias="cpu") + memory: str = Field(..., alias="memory") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasFileV2_ResourceRequirementsV1(BaseModel): + cpu: str = Field(..., alias="cpu") + memory: str = Field(..., alias="memory") + + class Config: + smart_union = True + extra = Extra.forbid + + +class DeployResourcesV1(BaseModel): + requests: ResourceRequirementsV1 = Field(..., alias="requests") + limits: SaasFileV2_ResourceRequirementsV1 = Field(..., alias="limits") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SlackWorkspaceV1_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SlackWorkspaceIntegrationV1(BaseModel): + name: str = Field(..., alias="name") + token: SlackWorkspaceV1_VaultSecretV1 = Field(..., alias="token") + channel: str = Field(..., alias="channel") + icon_emoji: str = Field(..., alias="icon_emoji") + username: str = Field(..., alias="username") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SlackWorkspaceV1(BaseModel): + name: str = Field(..., alias="name") + integrations: Optional[list[SlackWorkspaceIntegrationV1]] = Field(..., alias="integrations") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SlackOutputNotificationsV1(BaseModel): + start: Optional[bool] = Field(..., alias="start") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SlackOutputV1(BaseModel): + output: Optional[str] = Field(..., alias="output") + workspace: SlackWorkspaceV1 = Field(..., alias="workspace") + channel: Optional[str] = Field(..., alias="channel") + notifications: Optional[SlackOutputNotificationsV1] = Field(..., alias="notifications") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasFileV2_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasFilesV2XXL_SaasFileV2_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasFileAuthenticationV1(BaseModel): + code: Optional[SaasFileV2_VaultSecretV1] = Field(..., alias="code") + image: Optional[SaasFilesV2XXL_SaasFileV2_VaultSecretV1] = Field(..., alias="image") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasFilesV2XXL_SaasFileV2_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasSecretParametersV1(BaseModel): + name: str = Field(..., alias="name") + secret: SaasFilesV2XXL_SaasFileV2_VaultSecretV1 = Field(..., alias="secret") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateV2_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasFileV2_SaasSecretParametersV1(BaseModel): + name: str = Field(..., alias="name") + secret: SaasResourceTemplateV2_VaultSecretV1 = Field(..., alias="secret") + + class Config: + smart_union = True + extra = Extra.forbid + + +class EnvironmentV1_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateV2_NamespaceV1_SaasSecretParametersV1(BaseModel): + name: str = Field(..., alias="name") + secret: EnvironmentV1_VaultSecretV1 = Field(..., alias="secret") + + class Config: + smart_union = True + extra = Extra.forbid + + +class EnvironmentV1(BaseModel): + name: str = Field(..., alias="name") + parameters: Optional[Json] = Field(..., alias="parameters") + secret_parameters: Optional[list[SaasResourceTemplateV2_NamespaceV1_SaasSecretParametersV1]] = Field(..., alias="secretParameters") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateTargetV2_AppV1(BaseModel): + name: str = Field(..., alias="name") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateTargetV2_ClusterV1_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateV2_NamespaceV1_ClusterJumpHostV1(BaseModel): + hostname: str = Field(..., alias="hostname") + known_hosts: str = Field(..., alias="knownHosts") + user: str = Field(..., alias="user") + port: Optional[int] = Field(..., alias="port") + identity: SaasResourceTemplateTargetV2_ClusterV1_VaultSecretV1 = Field(..., alias="identity") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateV2_NamespaceV1_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateTargetV2_SaasResourceTemplateV2_NamespaceV1_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateV2_NamespaceV1_DisableClusterAutomationsV1(BaseModel): + integrations: Optional[list[str]] = Field(..., alias="integrations") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateTargetV2_ClusterV1(BaseModel): + name: str = Field(..., alias="name") + server_url: str = Field(..., alias="serverUrl") + insecure_skip_t_l_s_verify: Optional[bool] = Field(..., alias="insecureSkipTLSVerify") + jump_host: Optional[SaasResourceTemplateV2_NamespaceV1_ClusterJumpHostV1] = Field(..., alias="jumpHost") + automation_token: Optional[SaasResourceTemplateV2_NamespaceV1_VaultSecretV1] = Field(..., alias="automationToken") + cluster_admin_automation_token: Optional[SaasResourceTemplateTargetV2_SaasResourceTemplateV2_NamespaceV1_VaultSecretV1] = Field(..., alias="clusterAdminAutomationToken") + internal: Optional[bool] = Field(..., alias="internal") + disable: Optional[SaasResourceTemplateV2_NamespaceV1_DisableClusterAutomationsV1] = Field(..., alias="disable") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateV2_NamespaceV1(BaseModel): + name: str = Field(..., alias="name") + environment: EnvironmentV1 = Field(..., alias="environment") + app: SaasResourceTemplateTargetV2_AppV1 = Field(..., alias="app") + cluster: SaasResourceTemplateTargetV2_ClusterV1 = Field(..., alias="cluster") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PromotionChannelDataV1(BaseModel): + f_type: str = Field(..., alias="type") + + class Config: + smart_union = True + extra = Extra.forbid + + +class ParentSaasPromotionV1(PromotionChannelDataV1): + parent_saas: Optional[str] = Field(..., alias="parent_saas") + target_config_hash: Optional[str] = Field(..., alias="target_config_hash") + + class Config: + smart_union = True + extra = Extra.forbid + + +class PromotionDataV1(BaseModel): + channel: Optional[str] = Field(..., alias="channel") + data: Optional[list[Union[ParentSaasPromotionV1, PromotionChannelDataV1]]] = Field(..., alias="data") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateTargetPromotionV1(BaseModel): + auto: Optional[bool] = Field(..., alias="auto") + publish: Optional[list[str]] = Field(..., alias="publish") + subscribe: Optional[list[str]] = Field(..., alias="subscribe") + promotion_data: Optional[list[PromotionDataV1]] = Field(..., alias="promotion_data") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateTargetV2_VaultSecretV1(BaseModel): + path: str = Field(..., alias="path") + field: str = Field(..., alias="field") + version: Optional[int] = Field(..., alias="version") + f_format: Optional[str] = Field(..., alias="format") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateV2_SaasSecretParametersV1(BaseModel): + name: str = Field(..., alias="name") + secret: SaasResourceTemplateTargetV2_VaultSecretV1 = Field(..., alias="secret") + + class Config: + smart_union = True + extra = Extra.forbid + + +class JenkinsInstanceV1(BaseModel): + name: str = Field(..., alias="name") + server_url: str = Field(..., alias="serverUrl") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateTargetUpstreamV1(BaseModel): + instance: JenkinsInstanceV1 = Field(..., alias="instance") + name: str = Field(..., alias="name") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateTargetV2(BaseModel): + namespace: SaasResourceTemplateV2_NamespaceV1 = Field(..., alias="namespace") + ref: str = Field(..., alias="ref") + promotion: Optional[SaasResourceTemplateTargetPromotionV1] = Field(..., alias="promotion") + parameters: Optional[Json] = Field(..., alias="parameters") + secret_parameters: Optional[list[SaasResourceTemplateV2_SaasSecretParametersV1]] = Field(..., alias="secretParameters") + upstream: Optional[SaasResourceTemplateTargetUpstreamV1] = Field(..., alias="upstream") + disable: Optional[bool] = Field(..., alias="disable") + delete: Optional[bool] = Field(..., alias="delete") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasResourceTemplateV2(BaseModel): + name: str = Field(..., alias="name") + url: str = Field(..., alias="url") + path: str = Field(..., alias="path") + provider: Optional[str] = Field(..., alias="provider") + hash_length: Optional[int] = Field(..., alias="hash_length") + parameters: Optional[Json] = Field(..., alias="parameters") + secret_parameters: Optional[list[SaasFileV2_SaasSecretParametersV1]] = Field(..., alias="secretParameters") + targets: Optional[list[SaasResourceTemplateTargetV2]] = Field(..., alias="targets") + + class Config: + smart_union = True + extra = Extra.forbid + + +class UserV1(BaseModel): + org_username: str = Field(..., alias="org_username") + tag_on_merge_requests: Optional[bool] = Field(..., alias="tag_on_merge_requests") + + class Config: + smart_union = True + extra = Extra.forbid + + +class RoleV1(BaseModel): + users: Optional[list[UserV1]] = Field(..., alias="users") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasFileV2(BaseModel): + path: str = Field(..., alias="path") + name: str = Field(..., alias="name") + app: AppV1 = Field(..., alias="app") + pipelines_provider: Union[PipelinesProviderTektonV1, PipelinesProviderV1] = Field(..., alias="pipelinesProvider") + deploy_resources: Optional[DeployResourcesV1] = Field(..., alias="deployResources") + slack: Optional[SlackOutputV1] = Field(..., alias="slack") + managed_resource_types: Optional[list[str]] = Field(..., alias="managedResourceTypes") + takeover: Optional[bool] = Field(..., alias="takeover") + compare: Optional[bool] = Field(..., alias="compare") + publish_job_logs: Optional[bool] = Field(..., alias="publishJobLogs") + cluster_admin: Optional[bool] = Field(..., alias="clusterAdmin") + image_patterns: Optional[list[str]] = Field(..., alias="imagePatterns") + use_channel_in_image_tag: Optional[bool] = Field(..., alias="use_channel_in_image_tag") + authentication: Optional[SaasFileAuthenticationV1] = Field(..., alias="authentication") + parameters: Optional[Json] = Field(..., alias="parameters") + secret_parameters: Optional[list[SaasSecretParametersV1]] = Field(..., alias="secretParameters") + resource_templates: Optional[list[SaasResourceTemplateV2]] = Field(..., alias="resourceTemplates") + roles: Optional[list[RoleV1]] = Field(..., alias="roles") + + class Config: + smart_union = True + extra = Extra.forbid + + +class SaasFilesV2XXLQuery(BaseModel): + saas_files_v2: Optional[list[SaasFileV2]] = Field(..., alias="saas_files") + + class Config: + smart_union = True + extra = Extra.forbid From bcc27c8168fa87ef882708fecb29914e48ce8c6b Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Fri, 3 Jun 2022 11:39:44 +0200 Subject: [PATCH 11/12] Proper dedup prefixing --- code_generator/query_parser.py | 2 +- reconcile/gql_queries/ocp/ocp_auth.py | 16 ++-- .../saas_files/saas_files_humongous.py | 88 +++++++++---------- 3 files changed, 53 insertions(+), 53 deletions(-) diff --git a/code_generator/query_parser.py b/code_generator/query_parser.py index dd1603343e..11c4f88d9a 100644 --- a/code_generator/query_parser.py +++ b/code_generator/query_parser.py @@ -273,7 +273,7 @@ def _to_python_type(self, graphql_type: GraphQLOutputType) -> str: if isinstance(graphql_type, GraphQLScalarType): return graphql_primitive_to_python(graphql_type=graphql_type) else: - cur = self.parent.parent + cur = self.parent class_name = str(graphql_type).replace("_", "") class_name = f"{class_name[:-2]}V{class_name[-1]}" while cur and cur.parent and class_name in self.deduplication_cache: diff --git a/reconcile/gql_queries/ocp/ocp_auth.py b/reconcile/gql_queries/ocp/ocp_auth.py index 957af2ca1d..cc186c93b5 100644 --- a/reconcile/gql_queries/ocp/ocp_auth.py +++ b/reconcile/gql_queries/ocp/ocp_auth.py @@ -29,7 +29,7 @@ class Config: extra = Extra.forbid -class ClusterV1_VaultSecretV1(BaseModel): +class OpenShiftClusterManagerV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") f_format: Optional[str] = Field(..., alias="format") @@ -45,14 +45,14 @@ class OpenShiftClusterManagerV1(BaseModel): url: str = Field(..., alias="url") access_token_client_id: str = Field(..., alias="accessTokenClientId") access_token_url: str = Field(..., alias="accessTokenUrl") - offline_token: Optional[ClusterV1_VaultSecretV1] = Field(..., alias="offlineToken") + offline_token: Optional[OpenShiftClusterManagerV1_VaultSecretV1] = Field(..., alias="offlineToken") class Config: smart_union = True extra = Extra.forbid -class OcpReleaseMirrorV1_VaultSecretV1(BaseModel): +class ClusterV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -103,7 +103,7 @@ class ClusterV1(BaseModel): jump_host: Optional[ClusterJumpHostV1] = Field(..., alias="jumpHost") managed_groups: Optional[list[str]] = Field(..., alias="managedGroups") ocm: Optional[OpenShiftClusterManagerV1] = Field(..., alias="ocm") - automation_token: Optional[OcpReleaseMirrorV1_VaultSecretV1] = Field(..., alias="automationToken") + automation_token: Optional[ClusterV1_VaultSecretV1] = Field(..., alias="automationToken") internal: Optional[bool] = Field(..., alias="internal") disable: Optional[DisableClusterAutomationsV1] = Field(..., alias="disable") auth: Optional[Union[ClusterAuthGithubOrgTeamV1, ClusterAuthGithubOrgV1, ClusterAuthV1]] = Field(..., alias="auth") @@ -132,7 +132,7 @@ class Config: extra = Extra.forbid -class NamespaceV1_VaultSecretV1(BaseModel): +class NamespaceV1_ClusterV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -143,10 +143,10 @@ class Config: extra = Extra.forbid -class OcpReleaseMirrorV1_ClusterV1(BaseModel): +class NamespaceV1_ClusterV1(BaseModel): name: str = Field(..., alias="name") server_url: str = Field(..., alias="serverUrl") - automation_token: Optional[NamespaceV1_VaultSecretV1] = Field(..., alias="automationToken") + automation_token: Optional[NamespaceV1_ClusterV1_VaultSecretV1] = Field(..., alias="automationToken") internal: Optional[bool] = Field(..., alias="internal") class Config: @@ -158,7 +158,7 @@ class NamespaceV1(BaseModel): name: str = Field(..., alias="name") managed_terraform_resources: Optional[bool] = Field(..., alias="managedTerraformResources") terraform_resources: Optional[list[Union[NamespaceTerraformResourceECRV1, NamespaceTerraformResourceAWSV1]]] = Field(..., alias="terraformResources") - cluster: OcpReleaseMirrorV1_ClusterV1 = Field(..., alias="cluster") + cluster: NamespaceV1_ClusterV1 = Field(..., alias="cluster") class Config: smart_union = True diff --git a/reconcile/gql_queries/saas_files/saas_files_humongous.py b/reconcile/gql_queries/saas_files/saas_files_humongous.py index c451511ee6..46f8408542 100644 --- a/reconcile/gql_queries/saas_files/saas_files_humongous.py +++ b/reconcile/gql_queries/saas_files/saas_files_humongous.py @@ -46,7 +46,7 @@ class Config: extra = Extra.forbid -class NamespaceV1_VaultSecretV1(BaseModel): +class ClusterV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -71,7 +71,7 @@ class ClusterV1(BaseModel): server_url: str = Field(..., alias="serverUrl") insecure_skip_t_l_s_verify: Optional[bool] = Field(..., alias="insecureSkipTLSVerify") jump_host: Optional[ClusterJumpHostV1] = Field(..., alias="jumpHost") - automation_token: Optional[NamespaceV1_VaultSecretV1] = Field(..., alias="automationToken") + automation_token: Optional[ClusterV1_VaultSecretV1] = Field(..., alias="automationToken") internal: Optional[bool] = Field(..., alias="internal") disable: Optional[DisableClusterAutomationsV1] = Field(..., alias="disable") @@ -113,7 +113,7 @@ class Config: extra = Extra.forbid -class PipelinesProviderTektonV1_PipelinesProviderTektonObjectTemplateV1(BaseModel): +class PipelinesProviderTektonV1_PipelinesProviderPipelineTemplatesV1_PipelinesProviderTektonObjectTemplateV1(BaseModel): name: str = Field(..., alias="name") class Config: @@ -121,8 +121,8 @@ class Config: extra = Extra.forbid -class PipelinesProviderV1_PipelinesProviderPipelineTemplatesV1(BaseModel): - openshift_saas_deploy: PipelinesProviderTektonV1_PipelinesProviderTektonObjectTemplateV1 = Field(..., alias="openshiftSaasDeploy") +class PipelinesProviderTektonV1_PipelinesProviderPipelineTemplatesV1(BaseModel): + openshift_saas_deploy: PipelinesProviderTektonV1_PipelinesProviderPipelineTemplatesV1_PipelinesProviderTektonObjectTemplateV1 = Field(..., alias="openshiftSaasDeploy") class Config: smart_union = True @@ -132,7 +132,7 @@ class Config: class PipelinesProviderTektonV1(PipelinesProviderV1): namespace: NamespaceV1 = Field(..., alias="namespace") defaults: PipelinesProviderTektonProviderDefaultsV1 = Field(..., alias="defaults") - pipeline_templates: Optional[PipelinesProviderV1_PipelinesProviderPipelineTemplatesV1] = Field(..., alias="pipelineTemplates") + pipeline_templates: Optional[PipelinesProviderTektonV1_PipelinesProviderPipelineTemplatesV1] = Field(..., alias="pipelineTemplates") class Config: smart_union = True @@ -148,7 +148,7 @@ class Config: extra = Extra.forbid -class SaasFileV2_ResourceRequirementsV1(BaseModel): +class DeployResourcesV1_ResourceRequirementsV1(BaseModel): cpu: str = Field(..., alias="cpu") memory: str = Field(..., alias="memory") @@ -159,14 +159,14 @@ class Config: class DeployResourcesV1(BaseModel): requests: ResourceRequirementsV1 = Field(..., alias="requests") - limits: SaasFileV2_ResourceRequirementsV1 = Field(..., alias="limits") + limits: DeployResourcesV1_ResourceRequirementsV1 = Field(..., alias="limits") class Config: smart_union = True extra = Extra.forbid -class SlackWorkspaceV1_VaultSecretV1(BaseModel): +class SlackWorkspaceIntegrationV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -179,7 +179,7 @@ class Config: class SlackWorkspaceIntegrationV1(BaseModel): name: str = Field(..., alias="name") - token: SlackWorkspaceV1_VaultSecretV1 = Field(..., alias="token") + token: SlackWorkspaceIntegrationV1_VaultSecretV1 = Field(..., alias="token") channel: str = Field(..., alias="channel") icon_emoji: str = Field(..., alias="icon_emoji") username: str = Field(..., alias="username") @@ -217,7 +217,7 @@ class Config: extra = Extra.forbid -class SaasFileV2_VaultSecretV1(BaseModel): +class SaasFileAuthenticationV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -228,7 +228,7 @@ class Config: extra = Extra.forbid -class SaasFilesV2XXL_SaasFileV2_VaultSecretV1(BaseModel): +class SaasFileV2_SaasFileAuthenticationV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -240,15 +240,15 @@ class Config: class SaasFileAuthenticationV1(BaseModel): - code: Optional[SaasFileV2_VaultSecretV1] = Field(..., alias="code") - image: Optional[SaasFilesV2XXL_SaasFileV2_VaultSecretV1] = Field(..., alias="image") + code: Optional[SaasFileAuthenticationV1_VaultSecretV1] = Field(..., alias="code") + image: Optional[SaasFileV2_SaasFileAuthenticationV1_VaultSecretV1] = Field(..., alias="image") class Config: smart_union = True extra = Extra.forbid -class SaasFilesV2XXL_SaasFileV2_VaultSecretV1(BaseModel): +class SaasSecretParametersV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -261,14 +261,14 @@ class Config: class SaasSecretParametersV1(BaseModel): name: str = Field(..., alias="name") - secret: SaasFilesV2XXL_SaasFileV2_VaultSecretV1 = Field(..., alias="secret") + secret: SaasSecretParametersV1_VaultSecretV1 = Field(..., alias="secret") class Config: smart_union = True extra = Extra.forbid -class SaasResourceTemplateV2_VaultSecretV1(BaseModel): +class SaasResourceTemplateV2_SaasSecretParametersV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -279,16 +279,16 @@ class Config: extra = Extra.forbid -class SaasFileV2_SaasSecretParametersV1(BaseModel): +class SaasResourceTemplateV2_SaasSecretParametersV1(BaseModel): name: str = Field(..., alias="name") - secret: SaasResourceTemplateV2_VaultSecretV1 = Field(..., alias="secret") + secret: SaasResourceTemplateV2_SaasSecretParametersV1_VaultSecretV1 = Field(..., alias="secret") class Config: smart_union = True extra = Extra.forbid -class EnvironmentV1_VaultSecretV1(BaseModel): +class EnvironmentV1_SaasSecretParametersV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -299,9 +299,9 @@ class Config: extra = Extra.forbid -class SaasResourceTemplateV2_NamespaceV1_SaasSecretParametersV1(BaseModel): +class EnvironmentV1_SaasSecretParametersV1(BaseModel): name: str = Field(..., alias="name") - secret: EnvironmentV1_VaultSecretV1 = Field(..., alias="secret") + secret: EnvironmentV1_SaasSecretParametersV1_VaultSecretV1 = Field(..., alias="secret") class Config: smart_union = True @@ -311,14 +311,14 @@ class Config: class EnvironmentV1(BaseModel): name: str = Field(..., alias="name") parameters: Optional[Json] = Field(..., alias="parameters") - secret_parameters: Optional[list[SaasResourceTemplateV2_NamespaceV1_SaasSecretParametersV1]] = Field(..., alias="secretParameters") + secret_parameters: Optional[list[EnvironmentV1_SaasSecretParametersV1]] = Field(..., alias="secretParameters") class Config: smart_union = True extra = Extra.forbid -class SaasResourceTemplateTargetV2_AppV1(BaseModel): +class SaasResourceTemplateTargetV2_NamespaceV1_AppV1(BaseModel): name: str = Field(..., alias="name") class Config: @@ -326,7 +326,7 @@ class Config: extra = Extra.forbid -class SaasResourceTemplateTargetV2_ClusterV1_VaultSecretV1(BaseModel): +class SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_ClusterJumpHostV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -337,19 +337,19 @@ class Config: extra = Extra.forbid -class SaasResourceTemplateV2_NamespaceV1_ClusterJumpHostV1(BaseModel): +class SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_ClusterJumpHostV1(BaseModel): hostname: str = Field(..., alias="hostname") known_hosts: str = Field(..., alias="knownHosts") user: str = Field(..., alias="user") port: Optional[int] = Field(..., alias="port") - identity: SaasResourceTemplateTargetV2_ClusterV1_VaultSecretV1 = Field(..., alias="identity") + identity: SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_ClusterJumpHostV1_VaultSecretV1 = Field(..., alias="identity") class Config: smart_union = True extra = Extra.forbid -class SaasResourceTemplateV2_NamespaceV1_VaultSecretV1(BaseModel): +class SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -360,7 +360,7 @@ class Config: extra = Extra.forbid -class SaasResourceTemplateTargetV2_SaasResourceTemplateV2_NamespaceV1_VaultSecretV1(BaseModel): +class SaasResourceTemplateTargetV2_NamespaceV1_SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -371,7 +371,7 @@ class Config: extra = Extra.forbid -class SaasResourceTemplateV2_NamespaceV1_DisableClusterAutomationsV1(BaseModel): +class SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_DisableClusterAutomationsV1(BaseModel): integrations: Optional[list[str]] = Field(..., alias="integrations") class Config: @@ -379,26 +379,26 @@ class Config: extra = Extra.forbid -class SaasResourceTemplateTargetV2_ClusterV1(BaseModel): +class SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1(BaseModel): name: str = Field(..., alias="name") server_url: str = Field(..., alias="serverUrl") insecure_skip_t_l_s_verify: Optional[bool] = Field(..., alias="insecureSkipTLSVerify") - jump_host: Optional[SaasResourceTemplateV2_NamespaceV1_ClusterJumpHostV1] = Field(..., alias="jumpHost") - automation_token: Optional[SaasResourceTemplateV2_NamespaceV1_VaultSecretV1] = Field(..., alias="automationToken") - cluster_admin_automation_token: Optional[SaasResourceTemplateTargetV2_SaasResourceTemplateV2_NamespaceV1_VaultSecretV1] = Field(..., alias="clusterAdminAutomationToken") + jump_host: Optional[SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_ClusterJumpHostV1] = Field(..., alias="jumpHost") + automation_token: Optional[SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_VaultSecretV1] = Field(..., alias="automationToken") + cluster_admin_automation_token: Optional[SaasResourceTemplateTargetV2_NamespaceV1_SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_VaultSecretV1] = Field(..., alias="clusterAdminAutomationToken") internal: Optional[bool] = Field(..., alias="internal") - disable: Optional[SaasResourceTemplateV2_NamespaceV1_DisableClusterAutomationsV1] = Field(..., alias="disable") + disable: Optional[SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1_DisableClusterAutomationsV1] = Field(..., alias="disable") class Config: smart_union = True extra = Extra.forbid -class SaasResourceTemplateV2_NamespaceV1(BaseModel): +class SaasResourceTemplateTargetV2_NamespaceV1(BaseModel): name: str = Field(..., alias="name") environment: EnvironmentV1 = Field(..., alias="environment") - app: SaasResourceTemplateTargetV2_AppV1 = Field(..., alias="app") - cluster: SaasResourceTemplateTargetV2_ClusterV1 = Field(..., alias="cluster") + app: SaasResourceTemplateTargetV2_NamespaceV1_AppV1 = Field(..., alias="app") + cluster: SaasResourceTemplateTargetV2_NamespaceV1_ClusterV1 = Field(..., alias="cluster") class Config: smart_union = True @@ -442,7 +442,7 @@ class Config: extra = Extra.forbid -class SaasResourceTemplateTargetV2_VaultSecretV1(BaseModel): +class SaasResourceTemplateTargetV2_SaasSecretParametersV1_VaultSecretV1(BaseModel): path: str = Field(..., alias="path") field: str = Field(..., alias="field") version: Optional[int] = Field(..., alias="version") @@ -453,9 +453,9 @@ class Config: extra = Extra.forbid -class SaasResourceTemplateV2_SaasSecretParametersV1(BaseModel): +class SaasResourceTemplateTargetV2_SaasSecretParametersV1(BaseModel): name: str = Field(..., alias="name") - secret: SaasResourceTemplateTargetV2_VaultSecretV1 = Field(..., alias="secret") + secret: SaasResourceTemplateTargetV2_SaasSecretParametersV1_VaultSecretV1 = Field(..., alias="secret") class Config: smart_union = True @@ -481,11 +481,11 @@ class Config: class SaasResourceTemplateTargetV2(BaseModel): - namespace: SaasResourceTemplateV2_NamespaceV1 = Field(..., alias="namespace") + namespace: SaasResourceTemplateTargetV2_NamespaceV1 = Field(..., alias="namespace") ref: str = Field(..., alias="ref") promotion: Optional[SaasResourceTemplateTargetPromotionV1] = Field(..., alias="promotion") parameters: Optional[Json] = Field(..., alias="parameters") - secret_parameters: Optional[list[SaasResourceTemplateV2_SaasSecretParametersV1]] = Field(..., alias="secretParameters") + secret_parameters: Optional[list[SaasResourceTemplateTargetV2_SaasSecretParametersV1]] = Field(..., alias="secretParameters") upstream: Optional[SaasResourceTemplateTargetUpstreamV1] = Field(..., alias="upstream") disable: Optional[bool] = Field(..., alias="disable") delete: Optional[bool] = Field(..., alias="delete") @@ -502,7 +502,7 @@ class SaasResourceTemplateV2(BaseModel): provider: Optional[str] = Field(..., alias="provider") hash_length: Optional[int] = Field(..., alias="hash_length") parameters: Optional[Json] = Field(..., alias="parameters") - secret_parameters: Optional[list[SaasFileV2_SaasSecretParametersV1]] = Field(..., alias="secretParameters") + secret_parameters: Optional[list[SaasResourceTemplateV2_SaasSecretParametersV1]] = Field(..., alias="secretParameters") targets: Optional[list[SaasResourceTemplateTargetV2]] = Field(..., alias="targets") class Config: From 3560872455c11adc654e691f969cae88248bbcb3 Mon Sep 17 00:00:00 2001 From: Karl Fischer Date: Wed, 8 Jun 2022 15:24:40 +0200 Subject: [PATCH 12/12] Add introsprection as file --- Makefile | 3 + code_generator/introspection.py | 21 + code_generator/main.py | 18 +- .../gql_queries/schema_introspection.json | 29368 ++++++++++++++++ 4 files changed, 29400 insertions(+), 10 deletions(-) create mode 100644 code_generator/introspection.py create mode 100644 reconcile/gql_queries/schema_introspection.json diff --git a/Makefile b/Makefile index cd8cac9541..2634f9209f 100644 --- a/Makefile +++ b/Makefile @@ -80,6 +80,9 @@ clean: generate-queries: . ./venv/bin/activate && query-generator +get-introspection: + . ./venv/bin/activate && python3 code_generator/introspection.py + dev-venv: clean ## Create a local venv for your IDE and remote debugging python3.9 -m venv venv . ./venv/bin/activate && pip install --upgrade pip diff --git a/code_generator/introspection.py b/code_generator/introspection.py new file mode 100644 index 0000000000..281f7d6548 --- /dev/null +++ b/code_generator/introspection.py @@ -0,0 +1,21 @@ +import json +import requests + +from graphql import get_introspection_query + + +INTROSPECTION_JSON_FILE = "reconcile/gql_queries/schema_introspection.json" + + +def query_schema(): + gql_url = "http://localhost:4000/graphql" + query = get_introspection_query() + request = requests.post(gql_url, json={"query": query}) + if request.status_code == 200: + with open(INTROSPECTION_JSON_FILE, "w") as f: + f.write(json.dumps(request.json(), indent=4)) + return + raise Exception(f"Could not query {gql_url}") + + +query_schema() diff --git a/code_generator/main.py b/code_generator/main.py index a90df00b80..aa4fa6a82b 100644 --- a/code_generator/main.py +++ b/code_generator/main.py @@ -1,7 +1,8 @@ +import json import os -import requests -from graphql import build_client_schema, get_introspection_query +from graphql import build_client_schema +from code_generator.introspection import INTROSPECTION_JSON_FILE from code_generator.query_parser import ParsedNode, ParsedInlineFragmentNode, QueryParser # type: ignore @@ -9,13 +10,9 @@ HEADER = '"""\nTHIS IS AN AUTO-GENERATED FILE. DO NOT MODIFY MANUALLY!\n"""\n' -def query_schema() -> dict: - gql_url = "http://localhost:4000/graphql" - query = get_introspection_query() - request = requests.post(gql_url, json={"query": query}) - if request.status_code == 200: - return request.json()["data"] - raise Exception(f"Could not query {gql_url}") +def get_schema() -> dict: + with open(INTROSPECTION_JSON_FILE) as f: + return json.loads(f.read())["data"] def find_query_files() -> list[str]: @@ -48,7 +45,7 @@ def traverse(node: ParsedNode) -> str: def main(): - schema_raw = query_schema() + schema_raw = get_schema() schema = build_client_schema(schema_raw) # type: ignore query_parser = QueryParser(schema=schema) for file in find_query_files(): @@ -57,6 +54,7 @@ def main(): code = traverse(result) with open(f"{file[:-3]}py", "w") as out_file: out_file.write(HEADER) + # TODO: import DateTime out_file.write( "from typing import Optional, Union # noqa: F401 # pylint: disable=W0611\n\n" ) diff --git a/reconcile/gql_queries/schema_introspection.json b/reconcile/gql_queries/schema_introspection.json new file mode 100644 index 0000000000..aa8e536e4f --- /dev/null +++ b/reconcile/gql_queries/schema_introspection.json @@ -0,0 +1,29368 @@ +{ + "data": { + "__schema": { + "queryType": { + "name": "Query" + }, + "mutationType": null, + "subscriptionType": null, + "types": [ + { + "kind": "OBJECT", + "name": "Query", + "description": null, + "fields": [ + { + "name": "app_interface_settings_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppInterfaceSettings_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app_interface_emails_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppInterfaceEmail_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app_interface_slack_notifications_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppInterfaceSlackNotification_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "credentials_requests_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CredentialsRequest_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "users_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "org_username", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "external_users_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ExternalUser_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bots_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Bot_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "roles_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "name", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Role_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "permissions_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "Permission_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "awsgroups_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSGroup_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "awsaccounts_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "name", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "uid", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusters_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "name", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kafka_clusters_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "KafkaCluster_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespaces_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gcp_projects_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GcpProject_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quay_orgs_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "QuayOrg_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quay_instances_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "QuayInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "jenkins_instances_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JenkinsInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "jenkins_configs_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JenkinsConfig_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "jira_servers_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JiraServer_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "jira_boards_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "name", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JiraBoard_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendgrid_accounts_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendGridAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "products_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Product_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environments_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Environment_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "apps_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "name", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "escalation_policies_1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppEscalationPolicy_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resources_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "schema", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Resource_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault_instances_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault_audit_backends_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultAudit_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault_auth_backends_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultAuth_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault_secret_engines_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecretEngine_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault_roles_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultRole_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault_policies_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultPolicy_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dependencies_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Dependency_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "githuborg_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GithubOrg_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gitlabinstance_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GitlabInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "integrations_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Integration_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "documents_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Document_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reports_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Report_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sre_checkpoints_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SRECheckpoint_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sentry_teams_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SentryTeam_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sentry_instances_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SentryInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app_interface_sql_queries_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppInterfaceSqlQuery_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "query_validations_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "name", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "QueryValidation_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "saas_files_v2", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "name", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasFile_v2", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipelines_providers_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "PipelinesProvider_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unleash_instances_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UnleashInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gabi_instances_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GabiInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "template_tests_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TemplateTest_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dns_zone_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DnsZone_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slack_workspaces_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SlackWorkspace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ocp_release_mirror_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OcpReleaseMirror_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slo_document_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SLODocument_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "shared_resources_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "name", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SharedResources_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pagerduty_instances_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PagerDutyInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ocm_instances_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OpenShiftClusterManager_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dyn_traffic_directors_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DynTrafficDirector_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status_page_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "StatusPage_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status_page_component_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "StatusPageComponent_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endpoint_monitoring_provider_v1", + "description": null, + "args": [ + { + "name": "path", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "EndpointMonitoringProvider_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppInterfaceSettings_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "repoUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kubeBinary", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pullRequestGateway", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mergeRequestGateway", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "saasDeployJobTemplate", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hashLength", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "smtp", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SmtpSettings_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "githubRepoInvites", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "GithubRepoInvites_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dependencies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppInterfaceDependencyMapping_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "credentials", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CredentialsRequestMap_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sqlQuery", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SqlQuerySettings_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pushGatewayCluster", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "alertingServices", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endpointMonitoringBlackboxExporterModules", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ldap", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "LdapSettings_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "JSON", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Boolean", + "description": "The `Boolean` scalar type represents `true` or `false`.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SmtpSettings_v1", + "description": null, + "fields": [ + { + "name": "mailAddress", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "credentials", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "description": null, + "fields": [ + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "field", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "format", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GithubRepoInvites_v1", + "description": null, + "fields": [ + { + "name": "credentials", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppInterfaceDependencyMapping_v1", + "description": null, + "fields": [ + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "services", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Dependency_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Dependency_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "statefulness", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "opsModel", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "statusPage", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SLA", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dependencyFailureImpact", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Float", + "description": "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CredentialsRequestMap_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secret", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SqlQuerySettings_v1", + "description": null, + "fields": [ + { + "name": "imageRepository", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pullSecret", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NamespaceOpenshiftResourceVaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceOpenshiftResourceVaultSecret_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validate_alertmanager_config", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "alertmanager_config_key", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceOpenshiftResource_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "NamespaceOpenshiftResource_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "NamespaceOpenshiftResourceVaultSecret_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceOpenshiftResourceResource_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceOpenshiftResourceResourceTemplate_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceOpenshiftResourceRoute_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "Cluster_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "auth", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "ClusterAuth_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "observabilityNamespace", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "grafanaUrl", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consoleUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kibanaUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "prometheusUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "alertmanagerUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serverUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "elbFQDN", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedGroups", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedClusterRoles", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ocm", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "OpenShiftClusterManager_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "spec", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ClusterSpec_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "externalConfiguration", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ClusterExternalConfiguration_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upgradePolicy", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ClusterUpgradePolicy_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "additionalRouters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClusterAdditionalRouter_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "network", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ClusterNetwork_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "machinePools", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClusterMachinePool_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peering", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ClusterPeering_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "addons", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClusterAddon_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "insecureSkipTLSVerify", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "jumpHost", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ClusterJumpHost_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "automationToken", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusterAdminAutomationToken", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "internal", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disable", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "DisableClusterAutomations_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "awsInfrastructureAccess", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSInfrastructureAccess_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "awsInfrastructureManagementAccounts", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSInfrastructureManagementAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "prometheus", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ClusterPrometheus_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespaces", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "ClusterAuth_v1", + "description": null, + "fields": [ + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "ClusterAuthGithubOrg_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "ClusterAuthGithubOrgTeam_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "ClusterAuthOIDC_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "Namespace_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "grafanaUrl", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cluster", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environment", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Environment_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "limitRanges", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "LimitRange_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quota", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ResourceQuota_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "networkPoliciesAllow", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusterAdmin", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedRoles", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedResourceTypes", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedResourceTypeOverrides", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NamespaceManagedResourceTypeOverrides_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedResourceNames", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NamespaceManagedResourceNames_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sharedResources", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SharedResources_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "openshiftResources", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "NamespaceOpenshiftResource_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedExternalResources", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "externalResources", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "NamespaceExternalResource_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedTerraformResources", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terraformResources", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "openshiftServiceAccountTokens", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ServiceAccountTokenSpec_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kafkaCluster", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "KafkaCluster_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "App_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "onboardingStatus", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "grafanaUrls", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GrafanaDashboardUrls_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sopsUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "architectureDocument", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parentApp", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serviceDocs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serviceOwners", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Owner_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serviceNotifications", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Owner_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dependencies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Dependency_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gcrRepos", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppGcrRepos_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quayRepos", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppQuayRepos_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "escalationPolicy", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppEscalationPolicy_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endPoints", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppEndPoints_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "codeComponents", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppCodeComponents_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sentryProjects", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppSentryProjects_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "statusPageComponents", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "StatusPageComponent_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespaces", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "childrenApps", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "jenkinsConfigs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JenkinsConfig_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "saasFiles", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasFile_v2", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sreCheckpoints", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SRECheckpoint_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sloDocuments", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SLODocument_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GrafanaDashboardUrls_v1", + "description": null, + "fields": [ + { + "name": "title", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Owner_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "email", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppGcrRepos_v1", + "description": null, + "fields": [ + { + "name": "project", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GcpProject_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "items", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppGcrReposItems_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GcpProject_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedTeams", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "automationToken", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pushCredentials", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ExternalResourcesProvisioner_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "ExternalResourcesProvisioner_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "GcpProject_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "AppGcrReposItems_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "public", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mirror", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ContainerImageMirror_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ContainerImageMirror_v1", + "description": null, + "fields": [ + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pullCredentials", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tags", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tagsExclude", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppQuayRepos_v1", + "description": null, + "fields": [ + { + "name": "org", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "QuayOrg_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "teams", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppQuayReposTeams_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notifications", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppQuayReposNotifications_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "items", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppQuayReposItems_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "QuayOrg_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mirror", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "QuayOrg_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedRepos", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "QuayInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serverUrl", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedTeams", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "automationToken", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pushCredentials", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "QuayInstance_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppQuayReposTeams_v1", + "description": null, + "fields": [ + { + "name": "permissions", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PermissionQuayOrgTeam_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "role", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PermissionQuayOrgTeam_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quayOrg", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "QuayOrg_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "team", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Permission_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "Permission_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "PermissionQuayOrgTeam_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PermissionSlackUsergroup_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PermissionGithubOrgTeam_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PermissionGithubOrg_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PermissionJenkinsRole_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "PermissionGitlabGroupMembership_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "AppQuayReposNotifications_v1", + "description": null, + "fields": [ + { + "name": "event", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "severity", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "method", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "escalationPolicy", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppEscalationPolicy_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationMethod", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "AppQuayReposNotificationVerificationMethod_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppEscalationPolicy_v1", + "description": null, + "fields": [ + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "channels", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppEscalationPolicyChannels_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppEscalationPolicyChannels_v1", + "description": null, + "fields": [ + { + "name": "slackUserGroup", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PermissionSlackUsergroup_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "email", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pagerduty", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "PagerDutyTarget_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "jiraBoard", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JiraBoard_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nextEscalationPolicy", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "AppEscalationPolicy_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PermissionSlackUsergroup_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "handle", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workspace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SlackWorkspace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pagerduty", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PagerDutyTarget_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "channels", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ownersFromRepos", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "schedule", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Schedule_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "skip", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "roles", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Role_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Permission_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SlackWorkspace_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "api_client", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SlackWorkspaceApiClient_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "integrations", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SlackWorkspaceIntegration_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedUsergroups", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SlackWorkspaceApiClient_v1", + "description": null, + "fields": [ + { + "name": "global", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SlackWorkspaceApiClientGlobalConfig_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "methods", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SlackWorkspaceApiClientMethodConfig_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SlackWorkspaceApiClientGlobalConfig_v1", + "description": null, + "fields": [ + { + "name": "max_retries", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timeout", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SlackWorkspaceApiClientMethodConfig_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "args", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SlackWorkspaceIntegration_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "channel", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "icon_emoji", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "username", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PagerDutyTarget_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PagerDutyInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scheduleID", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "escalationPolicyID", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PagerDutyInstance_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Schedule_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "schedule", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ScheduleEntry_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ScheduleEntry_v1", + "description": null, + "fields": [ + { + "name": "start", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "end", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "users", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "User_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "org_username", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "github_username", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quay_username", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slack_username", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pagerduty_username", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "aws_username", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "public_gpg_key", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tag_on_merge_requests", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tag_on_cluster_updates", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "roles", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Role_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requests", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CredentialsRequest_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "queries", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppInterfaceSqlQuery_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gabi_instances", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GabiInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Role_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expirationDate", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "permissions", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "Permission_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "oidc_permissions", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "OidcPermission_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tag_on_cluster_updates", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "access", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Access_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "aws_groups", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSGroup_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "user_policies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSUserPolicy_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sentry_teams", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SentryTeam_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sentry_roles", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SentryRole_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendgrid_accounts", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendGridAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "owned_saas_files", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasFile_v2", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "users", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bots", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Bot_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "OidcPermission_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "OidcPermissionVault_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "Access_v1", + "description": null, + "fields": [ + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "role", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cluster", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "group", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusterRole", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSGroup_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "policies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "roles", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Role_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consoleUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "uid", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resourcesDefaultRegion", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supportedDeploymentRegions", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "providerVersion", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terraformUsername", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountOwners", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Owner_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "automationToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "garbageCollection", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "enableDeletion", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deletionApprovals", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccountDeletionApproval_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disable", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "DisableClusterAutomations_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deleteKeys", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resetPasswords", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccountResetPassword_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "premiumSupport", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "partition", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sharing", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "AWSAccountSharingOption_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terraformState", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "TerraformStateAWS_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ecrs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSECR_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "policies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSUserPolicy_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ExternalResourcesProvisioner_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSAccountDeletionApproval_v1", + "description": null, + "fields": [ + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expiration", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DisableClusterAutomations_v1", + "description": null, + "fields": [ + { + "name": "integrations", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "e2eTests", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSAccountResetPassword_v1", + "description": null, + "fields": [ + { + "name": "user", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "AWSAccountSharingOption_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "AWSAccountSharingOptionAMI_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "TerraformStateAWS_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bucket", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "integrations", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSTerraformStateIntegrations_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "TerraformState_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "TerraformState_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "TerraformStateAWS_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "AWSTerraformStateIntegrations_v1", + "description": null, + "fields": [ + { + "name": "integration", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "key", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSECR_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSUserPolicy_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mandatory", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "policy", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SentryTeam_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SentryInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SentryInstance_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consoleUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "automationToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "adminUser", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SentryRole_v1", + "description": null, + "fields": [ + { + "name": "role", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SentryInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendGridAccount_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SaasFile_v2", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipelinesProvider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "PipelinesProvider_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slack", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SlackOutput_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedResourceTypes", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authentication", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SaasFileAuthentication_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parameters", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretParameters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasSecretParameters_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resourceTemplates", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasResourceTemplate_v2", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "imagePatterns", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "takeover", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "compare", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "publishJobLogs", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusterAdmin", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "use_channel_in_image_tag", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "configurableResources", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deployResources", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "DeployResources_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "roles", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Role_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "PipelinesProvider_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "PipelinesProviderTekton_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "SlackOutput_v1", + "description": null, + "fields": [ + { + "name": "workspace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SlackWorkspace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "channel", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "icon_emoji", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "username", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notifications", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SlackOutputNotifications_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SlackOutputNotifications_v1", + "description": null, + "fields": [ + { + "name": "start", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SaasFileAuthentication_v1", + "description": null, + "fields": [ + { + "name": "code", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "image", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SaasSecretParameters_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secret", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SaasResourceTemplate_v2", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash_length", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parameters", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretParameters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasSecretParameters_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targets", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasResourceTemplateTarget_v2", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SaasResourceTemplateTarget_v2", + "description": null, + "fields": [ + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ref", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "promotion", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SaasResourceTemplateTargetPromotion_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parameters", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretParameters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasSecretParameters_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upstream", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SaasResourceTemplateTargetUpstream_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disable", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SaasResourceTemplateTargetPromotion_v1", + "description": null, + "fields": [ + { + "name": "auto", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "publish", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "subscribe", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "promotion_data", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PromotionData_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PromotionData_v1", + "description": null, + "fields": [ + { + "name": "channel", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "data", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "PromotionChannelData_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "PromotionChannelData_v1", + "description": null, + "fields": [ + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "ParentSaasPromotion_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "SaasResourceTemplateTargetUpstream_v1", + "description": null, + "fields": [ + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JenkinsInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "JenkinsInstance_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serverUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "previousUrls", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "plugins", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deleteMethod", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedProjects", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "buildsCleanupRules", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JenkinsInstanceBuildsCleanupRules_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "JenkinsInstanceBuildsCleanupRules_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "keep_hours", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DeployResources_v1", + "description": null, + "fields": [ + { + "name": "requests", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ResourceRequirements_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "limits", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ResourceRequirements_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ResourceRequirements_v1", + "description": null, + "fields": [ + { + "name": "cpu", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memory", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Bot_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "org_username", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "github_username", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gitlab_username", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "openshift_serviceaccount", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quay_username", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "owner", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "roles", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Role_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CredentialsRequest_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "user", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "credentials", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppInterfaceSqlQuery_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requestor", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "overrides", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SqlEmailOverrides_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "schedule", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "query", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "queries", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SqlEmailOverrides_v1", + "description": null, + "fields": [ + { + "name": "db_host", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "db_port", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "db_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "db_user", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "db_password", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GabiInstance_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "signoffManagers", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "users", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instances", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GabiNamespace_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expirationDate", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GabiNamespace_v1", + "description": null, + "fields": [ + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "JiraBoard_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "server", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JiraServer_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "severityPriorityMappings", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JiraSeverityPriorityMappings_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slack", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SlackOutput_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "JiraServer_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serverUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "JiraSeverityPriorityMappings_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mappings", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SeverityPriorityMapping_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SeverityPriorityMapping_v1", + "description": null, + "fields": [ + { + "name": "severity", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "priority", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppQuayReposNotificationVerificationMethod_v1", + "description": null, + "fields": [ + { + "name": "jiraBoard", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "JiraBoard_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppQuayReposItems_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "public", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mirror", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ContainerImageMirror_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppEndPoints_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "monitoring", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppEndPointMonitoring_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppEndPointMonitoring_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "EndpointMonitoringProvider_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "EndpointMonitoringProvider_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "metricLabels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timeout", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "checkInterval", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "EndpointMonitoringProviderBlackboxExporter_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "EndpointMonitoringProviderSignalFx_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "AppCodeComponents_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resource", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gitlabRepoOwners", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "CodeComponentGitlabOwners_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "gitlabHousekeeping", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "CodeComponentGitlabHousekeeping_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "jira", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "JiraServer_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mirror", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CodeComponentGitlabOwners_v1", + "description": null, + "fields": [ + { + "name": "enabled", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CodeComponentGitlabHousekeeping_v1", + "description": null, + "fields": [ + { + "name": "enabled", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "rebase", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "days_interval", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "limit", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "enable_closing", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipeline_timeout", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppSentryProjects_v1", + "description": null, + "fields": [ + { + "name": "team", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SentryTeam_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "projects", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SentryProjectItems_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SentryProjectItems_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "email_prefix", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "platform", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sensitive_fields", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "safe_fields", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "auto_resolve_age", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "allowed_domains", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "StatusPageComponent_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "displayName", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instructions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "page", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "StatusPage_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "groupName", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "StatusProvider_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "apps", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "StatusPage_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "apiUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "credentials", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "components", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "StatusPageComponent_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "StatusProvider_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "PrometheusAlertsStatusProvider_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "ManualStatusProvider_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "JenkinsConfig_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JenkinsInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "config", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "config_path", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SRECheckpoint_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "date", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "issue", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SLODocument_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespaces", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slos", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SLODocumentSLO_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SLODocumentSLO_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SLIType", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SLISpecification", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SLODetails", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SLOTarget", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SLOParameters", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SLODocumentSLOSLOParameters_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expr", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SLOTargetUnit", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "prometheusRules", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "prometheusRulesTests", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dashboard", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SLODocumentSLOSLOParameters_v1", + "description": null, + "fields": [ + { + "name": "window", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Environment_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "product", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Product_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parameters", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretParameters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasSecretParameters_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dependsOn", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Environment_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespaces", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Product_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "productOwners", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Owner_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environments", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Environment_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LimitRange_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "limits", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "LimitRangeItem_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LimitRangeItem_v1", + "description": null, + "fields": [ + { + "name": "default", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ResourceValues_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaultRequest", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ResourceValues_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "max", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ResourceValues_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "maxLimitRequestRatio", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ResourceValues_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "min", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ResourceValues_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ResourceValues_v1", + "description": null, + "fields": [ + { + "name": "cpu", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memory", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ResourceQuota_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quotas", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ResourceQuotaItem_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ResourceQuotaItem_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resources", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ResourceQuotaItemResources_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scopes", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ResourceQuotaItemResources_v1", + "description": null, + "fields": [ + { + "name": "limits", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ResourceValues_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "requests", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ResourceValues_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pods", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceManagedResourceTypeOverrides_v1", + "description": null, + "fields": [ + { + "name": "resource", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "override", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceManagedResourceNames_v1", + "description": null, + "fields": [ + { + "name": "resource", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resourceNames", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SharedResources_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "openshiftResources", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "NamespaceOpenshiftResource_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "openshiftServiceAccountTokens", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ServiceAccountTokenSpec_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "terraformResources", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ServiceAccountTokenSpec_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "serviceAccountName", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceASG_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceSecretsManager_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceS3CloudFrontPublicKey_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceACM_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceElasticSearch_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceRDS_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceS3_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceServiceAccount_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceSecretsManagerServiceAccount_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceRole_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceElastiCache_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceSQS_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceDynamoDB_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceECR_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceS3CloudFront_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceS3SQS_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceCloudWatch_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceKMS_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceKinesis_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALB_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceRoute53Zone_v1", + "ofType": null + } + ] + }, + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceGenericSecretOutputFormat_v1", + "ofType": null + } + ] + }, + { + "kind": "INTERFACE", + "name": "NamespaceExternalResource_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provisioner", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "ExternalResourcesProvisioner_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "NamespaceTerraformProviderResourceAWS_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformProviderResourceGCPProject_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "KafkaCluster_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ocm", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "OpenShiftClusterManager_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "spec", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "KafkaClusterSpec_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespaces", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "OpenShiftClusterManager_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accessTokenClientId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accessTokenUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offlineToken", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockedVersions", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "KafkaClusterSpec_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "multi_az", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterSpec_v1", + "description": null, + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "external_id", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "channel", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "initial_version", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "multi_az", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "storage", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "load_balancers", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "private", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provision_shard_id", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "autoscale", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ClusterSpecAutoScale_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disable_user_workload_monitoring", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterSpecAutoScale_v1", + "description": null, + "fields": [ + { + "name": "min_replicas", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "max_replicas", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterExternalConfiguration_v1", + "description": null, + "fields": [ + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterUpgradePolicy_v1", + "description": null, + "fields": [ + { + "name": "schedule_type", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "schedule", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workloads", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "conditions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClusterUpgradePolicyConditions_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterUpgradePolicyConditions_v1", + "description": null, + "fields": [ + { + "name": "soakDays", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mutexes", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterAdditionalRouter_v1", + "description": null, + "fields": [ + { + "name": "private", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "route_selectors", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterNetwork_v1", + "description": null, + "fields": [ + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vpc", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pod", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterMachinePool_v1", + "description": null, + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "replicas", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taints", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Taint_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Taint_v1", + "description": null, + "fields": [ + { + "name": "key", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "value", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "effect", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeering_v1", + "description": null, + "fields": [ + { + "name": "connections", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "ClusterPeeringConnection_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "ClusterPeeringConnection_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "manageRoutes", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionAccount_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionAccountVPCMesh_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionAccountTGW_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionClusterRequester_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionClusterAccepter_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "ClusterAddon_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parameters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClusterAddonParameters_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterAddonParameters_v1", + "description": null, + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "value", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterJumpHost_v1", + "description": null, + "fields": [ + { + "name": "hostname", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "knownHosts", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "user", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "port", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identity", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSInfrastructureAccess_v1", + "description": null, + "fields": [ + { + "name": "awsGroup", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSGroup_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accessLevel", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSInfrastructureManagementAccount_v1", + "description": null, + "fields": [ + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accessLevel", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "default", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterPrometheus_v1", + "description": null, + "fields": [ + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "auth", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LdapSettings_v1", + "description": null, + "fields": [ + { + "name": "serverUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "baseDn", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppInterfaceEmail_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "subject", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "to", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppInterfaceEmailAudience_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppInterfaceEmailAudience_v1", + "description": null, + "fields": [ + { + "name": "aliases", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "services", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clusters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespaces", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "aws_accounts", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "roles", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Role_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "users", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppInterfaceSlackNotification_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "subject", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "channel", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "to", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppInterfaceSlackNotificationAudience_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AppInterfaceSlackNotificationAudience_v1", + "description": null, + "fields": [ + { + "name": "users", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ExternalUser_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "github_username", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sponsors", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "User_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Resource_v1", + "description": null, + "fields": [ + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "content", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sha256sum", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultInstance_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "address", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "auth", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "VaultInstanceAuth_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "VaultInstanceAuth_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretEngine", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "VaultInstanceAuthApprole_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "VaultInstanceAuthToken_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "VaultAudit_v1", + "description": null, + "fields": [ + { + "name": "_path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "options", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "VaultAuditOptions_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "VaultAuditOptions_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "VaultAuditOptionsFile_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "VaultAuth_v1", + "description": null, + "fields": [ + { + "name": "_path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "settings", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultAuthSettings_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "policy_mappings", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultPolicyMapping_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultAuthSettings_v1", + "description": null, + "fields": [ + { + "name": "config", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "VaultAuthConfig_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "VaultAuthConfig_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "VaultAuthConfigGithub_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "VaultAuthConfigOidc_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "VaultPolicyMapping_v1", + "description": null, + "fields": [ + { + "name": "github_team", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PermissionGithubOrgTeam_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "policies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultPolicy_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PermissionGithubOrgTeam_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "org", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "team", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "role", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Permission_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultPolicy_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "rules", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultSecretEngine_v1", + "description": null, + "fields": [ + { + "name": "_path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "options", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "VaultSecretEngineOptions_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "VaultSecretEngineOptions_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "VaultSecretEngineOptionsKV_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "VaultRole_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mount", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "options", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "VaultRoleOptions_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "VaultRoleOptions_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "VaultApproleOptions_v1", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "VaultRoleOidcOptions_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "GithubOrg_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "two_factor_authentication", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "default", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedTeams", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GitlabInstance_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "backupOrgs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managedGroups", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "projectRequests", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GitlabProjects_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sslVerify", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GitlabProjects_v1", + "description": null, + "fields": [ + { + "name": "group", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "projects", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Integration_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upstream", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "schemas", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pr_check", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "IntegrationPrCheck_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "managed", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IntegrationManaged_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "IntegrationPrCheck_v1", + "description": null, + "fields": [ + { + "name": "cmd", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "state", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sqs", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disabled", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "always_run", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "no_validate_schemas", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "run_for_valid_saas_file_changes", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "IntegrationManaged_v1", + "description": null, + "fields": [ + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "spec", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IntegrationSpec_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "IntegrationSpec_v1", + "description": null, + "fields": [ + { + "name": "cache", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "command", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disableUnleash", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "environmentAware", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "extraArgs", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "extraEnv", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IntegrationSpecExtraEnv_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "internalCertificates", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "logs", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "IntegrationSpecLogs_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resources", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DeployResources_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "shards", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sleepDurationSecs", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "state", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "storage", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "trigger", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cron", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "dashdotdb", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "concurrencyPolicy", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "restartPolicy", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "successfulJobHistoryLimit", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "failedJobHistoryLimit", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "IntegrationSpecExtraEnv_v1", + "description": null, + "fields": [ + { + "name": "secretName", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretKey", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "value", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "IntegrationSpecLogs_v1", + "description": null, + "fields": [ + { + "name": "slack", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Document_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "content_path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Report_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "app", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "App_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "date", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "contentFormatVersion", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "content", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "QueryValidation_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "escalationPolicy", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AppEscalationPolicy_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "queries", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "QontractQuery_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "QontractQuery_v1", + "description": null, + "fields": [ + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UnleashInstance_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notifications", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "UnleashNotifications_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "featureToggles", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UnleashFeatureToggle_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UnleashNotifications_v1", + "description": null, + "fields": [ + { + "name": "slack", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SlackOutput_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UnleashFeatureToggle_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "enabled", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reason", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TemplateTest_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resourcePath", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expectedResult", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DnsZone_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vpc", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "AWSVPC_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "origin", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unmanaged_record_names", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "records", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DnsRecord_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSVPC_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vpc_id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cidr_block", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "subnets", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSSubnet_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSSubnet_v1", + "description": null, + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DnsRecord_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ttl", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "alias", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "DnsRecordAlias_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "weighted_routing_policy", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "DnsRecordWeightedRoutingPolicy_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "set_identifier", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "records", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "_healthcheck", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "DnsRecordHealthcheck_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "_target_cluster", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "_target_namespace_zone", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "DnsNamespaceZone_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DnsRecordAlias_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zone_id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "evaluate_target_health", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DnsRecordWeightedRoutingPolicy_v1", + "description": null, + "fields": [ + { + "name": "weight", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DnsRecordHealthcheck_v1", + "description": null, + "fields": [ + { + "name": "fqdn", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "port", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resource_path", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "failure_threshold", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "request_interval", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "search_string", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DnsNamespaceZone_v1", + "description": null, + "fields": [ + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "OcpReleaseMirror_v1", + "description": null, + "fields": [ + { + "name": "hiveCluster", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ecrResourcesNamespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ocpReleaseEcrIdentifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ocpArtDevEcrIdentifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "quayTargetOrgs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "QuayOrg_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mirrorChannels", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DynTrafficDirector_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ttl", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "records", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DynTrafficDirectorRecord_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DynTrafficDirectorRecord_v1", + "description": null, + "fields": [ + { + "name": "hostname", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cluster", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "weight", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__Schema", + "description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", + "fields": [ + { + "name": "types", + "description": "A list of all types supported by this server.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "queryType", + "description": "The type that query operations will be rooted at.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mutationType", + "description": "If this server supports mutation, the type that mutation operations will be rooted at.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "subscriptionType", + "description": "If this server support subscription, the type that subscription operations will be rooted at.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "directives", + "description": "A list of all directives supported by this server.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Directive", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__Type", + "description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", + "fields": [ + { + "name": "kind", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "__TypeKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fields", + "description": null, + "args": [ + { + "name": "includeDeprecated", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "interfaces", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "possibleTypes", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "enumValues", + "description": null, + "args": [ + { + "name": "includeDeprecated", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": "false" + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__EnumValue", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inputFields", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ofType", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "__TypeKind", + "description": "An enum describing what kind of type a given `__Type` is.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "SCALAR", + "description": "Indicates this type is a scalar.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OBJECT", + "description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INTERFACE", + "description": "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNION", + "description": "Indicates this type is a union. `possibleTypes` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ENUM", + "description": "Indicates this type is an enum. `enumValues` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INPUT_OBJECT", + "description": "Indicates this type is an input object. `inputFields` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LIST", + "description": "Indicates this type is a list. `ofType` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "NON_NULL", + "description": "Indicates this type is a non-null. `ofType` is a valid field.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__Field", + "description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "args", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDeprecated", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deprecationReason", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__InputValue", + "description": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__Type", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaultValue", + "description": "A GraphQL-formatted string representing the default value for this input value.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__EnumValue", + "description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDeprecated", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deprecationReason", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "__Directive", + "description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "locations", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "__DirectiveLocation", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "args", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "__InputValue", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "__DirectiveLocation", + "description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "QUERY", + "description": "Location adjacent to a query operation.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MUTATION", + "description": "Location adjacent to a mutation operation.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SUBSCRIPTION", + "description": "Location adjacent to a subscription operation.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FIELD", + "description": "Location adjacent to a field.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAGMENT_DEFINITION", + "description": "Location adjacent to a fragment definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FRAGMENT_SPREAD", + "description": "Location adjacent to a fragment spread.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INLINE_FRAGMENT", + "description": "Location adjacent to an inline fragment.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "VARIABLE_DEFINITION", + "description": "Location adjacent to a variable definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SCHEMA", + "description": "Location adjacent to a schema definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SCALAR", + "description": "Location adjacent to a scalar definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OBJECT", + "description": "Location adjacent to an object type definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "FIELD_DEFINITION", + "description": "Location adjacent to a field definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ARGUMENT_DEFINITION", + "description": "Location adjacent to an argument definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INTERFACE", + "description": "Location adjacent to an interface definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNION", + "description": "Location adjacent to a union definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ENUM", + "description": "Location adjacent to an enum definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ENUM_VALUE", + "description": "Location adjacent to an enum value definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INPUT_OBJECT", + "description": "Location adjacent to an input object type definition.", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "INPUT_FIELD_DEFINITION", + "description": "Location adjacent to an input object field definition.", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultAuditOptionsFile_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "file_path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "log_raw", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hmac_accessor", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mode", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "format", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "prefix", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "VaultAuditOptions_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultAuthConfigGithub_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "organization", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "base_url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "max_ttl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ttl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "VaultAuthConfig_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultAuthConfigOidc_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "oidc_discovery_url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "oidc_client_id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "oidc_client_secret", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "default_role", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "VaultAuthConfig_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultSecretEngineOptionsKV_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "VaultSecretEngineOptions_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultApproleOptions_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bind_secret_id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "local_secret_ids", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_period", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secret_id_num_uses", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secret_id_ttl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_explicit_max_ttl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_max_ttl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_no_default_policy", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_num_uses", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_ttl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_policies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "policies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secret_id_bound_cidrs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_bound_cidrs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "VaultRoleOptions_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultRoleOidcOptions_v1", + "description": null, + "fields": [ + { + "name": "_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "allowed_redirect_uris", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bound_audiences", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bound_claims", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bound_claims_type", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bound_subject", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "claim_mappings", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clock_skew_leeway", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "expiration_leeway", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "groups_claim", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "max_age", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "not_before_leeway", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "oidc_scopes", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "role_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_ttl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_max_ttl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_explicit_max_ttl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_period", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_policies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_bound_cidrs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_no_default_policy", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token_num_uses", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "user_claim", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verbose_oidc_logging", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "VaultRoleOptions_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "KeyValue_v1", + "description": null, + "fields": [ + { + "name": "key", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "value", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterAuthGithubOrg_v1", + "description": null, + "fields": [ + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "org", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ClusterAuth_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterAuthGithubOrgTeam_v1", + "description": null, + "fields": [ + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "org", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "team", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ClusterAuth_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterAuthOIDC_v1", + "description": null, + "fields": [ + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ClusterAuth_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionAccount_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vpc", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSVPC_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "manageRoutes", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assumeRole", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ClusterPeeringConnection_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionAccountVPCMesh_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tags", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "manageRoutes", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ClusterPeeringConnection_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionAccountTGW_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tags", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "manageRoutes", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "manageSecurityGroups", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cidrBlock", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assumeRole", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ClusterPeeringConnection_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionClusterRequester_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cluster", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "manageRoutes", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assumeRole", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ClusterPeeringConnection_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ClusterPeeringConnectionClusterAccepter_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cluster", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "awsInfrastructureManagementAccount", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "manageRoutes", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assumeRole", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ClusterPeeringConnection_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSAccountSharingOptionAMI_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "regex", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "AWSAccountSharingOption_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AWSS3EventNotification_v1", + "description": null, + "fields": [ + { + "name": "event_type", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "destination", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "destination_type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "filter_prefix", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "filter_suffix", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ACMDomain_v1", + "description": null, + "fields": [ + { + "name": "domain_name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "alternate_names", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceOpenshiftResourceResource_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validate_json", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validate_alertmanager_config", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "alertmanager_config_key", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceOpenshiftResource_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceOpenshiftResourceResourceTemplate_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "variables", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validate_alertmanager_config", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "alertmanager_config_key", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceOpenshiftResource_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceOpenshiftResourceRoute_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault_tls_secret_path", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault_tls_secret_version", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceOpenshiftResource_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformProviderResourceAWS_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provisioner", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSAccount_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resources", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceExternalResource_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformProviderResourceGCPProject_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provisioner", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GcpProject_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "resources", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceGCP_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceExternalResource_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceGCP_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceManagedZone_v1", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceManagedZone_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceGCP_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceGenericSecretOutputFormat_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "data", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceASG_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cloudinit_configs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CloudinitConfig_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "variables", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "image", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ASGImage_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CloudinitConfig_v1", + "description": null, + "fields": [ + { + "name": "filename", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "content_type", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "content", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ASGImage_v1", + "description": null, + "fields": [ + { + "name": "tag_name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ref", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upstream", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SaasResourceTemplateTargetUpstream_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceSecretsManager_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secret", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceS3CloudFrontPublicKey_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secret", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceACM_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secret", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "domain", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ACMDomain_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceElasticSearch_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "publish_log_types", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceRDS_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "availability_zone", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parameter_group", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "overrides", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_db_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reset_password", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "enhanced_monitoring", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "replica_source", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ca_cert", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceS3_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "overrides", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "event_notifications", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSS3EventNotification_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sqs_identifier", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "s3_events", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bucket_policy", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "storage_class", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceServiceAccountAWSInfrastructureAccess_v1", + "description": null, + "fields": [ + { + "name": "cluster", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Cluster_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "access_level", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assume_role", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceServiceAccount_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "variables", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "policies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "user_policy", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "aws_infrastructure_access", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceServiceAccountAWSInfrastructureAccess_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AssumeRole_v1", + "description": null, + "fields": [ + { + "name": "AWS", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Service", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceSecretsManagerServiceAccount_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secrets_prefix", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceRole_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assume_role", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AssumeRole_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "assume_condition", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inline_policy", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceElastiCache_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parameter_group", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "overrides", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SQSQueuesSpecs_v1", + "description": null, + "fields": [ + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "queues", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "KeyValue_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceSQS_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "specs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SQSQueuesSpecs_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DynamoDBTableSpecs_v1", + "description": null, + "fields": [ + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tables", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "KeyValue_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceDynamoDB_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "specs", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DynamoDBTableSpecs_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceECR_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mirror", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ContainerImageMirror_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "public", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceS3CloudFront_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "storage_class", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceS3SQS_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kms_encryption", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "storage_class", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceCloudWatch_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "es_identifier", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "filter_pattern", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceKMS_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "overrides", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceKinesis_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "overrides", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALB_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vpc", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AWSVPC_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "certificate_arn", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "idle_timeout", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targets", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALBTargets_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "rules", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALBRules_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALBTargets_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "default", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ips", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "openshift_service", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALBRules_v1", + "description": null, + "fields": [ + { + "name": "condition", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALBConditon_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "action", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALBAction_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALBConditon_v1", + "description": null, + "fields": [ + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "methods", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceALBAction_v1", + "description": null, + "fields": [ + { + "name": "target", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "weight", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NamespaceTerraformResourceRoute53Zone_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "region", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "identifier", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_resource_name", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "output_format", + "description": null, + "args": [], + "type": { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceOutputFormat_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "annotations", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "NamespaceTerraformResourceAWS_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SaasResourceTemplate_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "url", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash_length", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parameters", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretParameters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasSecretParameters_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targets", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasResourceTemplateTarget_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SaasResourceTemplateTarget_v1", + "description": null, + "fields": [ + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ref", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "promotion", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SaasResourceTemplateTargetPromotion_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parameters", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretParameters", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SaasSecretParameters_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upstream", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disable", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delete", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ParentSaasPromotion_v1", + "description": null, + "fields": [ + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "parent_saas", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "target_config_hash", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PromotionChannelData_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PipelinesProviderTekton_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "defaults", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PipelinesProviderTektonProviderDefaults_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "retention", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "PipelinesProviderRetention_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taskTemplates", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PipelinesProviderTektonObjectTemplate_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipelineTemplates", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "PipelinesProviderPipelineTemplates_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deployResources", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "DeployResources_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "PipelinesProvider_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PipelinesProviderTektonProviderDefaults_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "retention", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PipelinesProviderRetention_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taskTemplates", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PipelinesProviderTektonObjectTemplate_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pipelineTemplates", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PipelinesProviderPipelineTemplates_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deployResources", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "DeployResources_v1", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PipelinesProviderRetention_v1", + "description": null, + "fields": [ + { + "name": "days", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "minimum", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PipelinesProviderTektonObjectTemplate_v1", + "description": null, + "fields": [ + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "variables", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PipelinesProviderPipelineTemplates_v1", + "description": null, + "fields": [ + { + "name": "openshiftSaasDeploy", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PipelinesProviderTektonObjectTemplate_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultInstanceAuthApprole_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretEngine", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "roleID", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretID", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "VaultInstanceAuth_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VaultInstanceAuthToken_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secretEngine", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "VaultInstanceAuth_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "OidcPermissionVault_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vault_policies", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultPolicy_v1", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "OidcPermission_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PermissionGithubOrg_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "org", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "role", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Permission_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PermissionJenkinsRole_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "instance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "JenkinsInstance_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "role", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultSecret_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Permission_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PermissionGitlabGroupMembership_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "service", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "group", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "access", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Permission_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EndpointMonitoringProviderBlackboxExporter_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "metricLabels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timeout", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "checkInterval", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blackboxExporter", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EndpointMonitoringProviderBlackboxExporterSettings_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EndpointMonitoringProvider_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EndpointMonitoringProviderBlackboxExporterSettings_v1", + "description": null, + "fields": [ + { + "name": "module", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "exporterUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EndpointMonitoringProviderSignalFx_v1", + "description": null, + "fields": [ + { + "name": "schema", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "path", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "description", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "metricLabels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timeout", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "checkInterval", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "signalFx", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EndpointMonitoringProviderSignalFxSettings_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EndpointMonitoringProvider_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EndpointMonitoringProviderSignalFxSettings_v1", + "description": null, + "fields": [ + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "exporterUrl", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targetFilterLabel", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PrometheusAlertsStatusProvider_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "prometheusAlerts", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PrometheusAlertsStatusProviderConfig_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "StatusProvider_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PrometheusAlertsStatusProviderConfig_v1", + "description": null, + "fields": [ + { + "name": "namespace", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Namespace_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "matchers", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PrometheusAlertMatcher_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PrometheusAlertMatcher_v1", + "description": null, + "fields": [ + { + "name": "matchExpression", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PrometheusAlertMatcherExpression_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "componentStatus", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PrometheusAlertMatcherExpression_v1", + "description": null, + "fields": [ + { + "name": "alert", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "labels", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ManualStatusProvider_v1", + "description": null, + "fields": [ + { + "name": "provider", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "manual", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ManualStatusProviderConfig_v1", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "StatusProvider_v1", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ManualStatusProviderConfig_v1", + "description": null, + "fields": [ + { + "name": "componentStatus", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "from", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "until", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + } + ], + "directives": [ + { + "name": "include", + "description": "Directs the executor to include this field or fragment only when the `if` argument is true.", + "locations": [ + "FIELD", + "FRAGMENT_SPREAD", + "INLINE_FRAGMENT" + ], + "args": [ + { + "name": "if", + "description": "Included when true.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + } + ] + }, + { + "name": "skip", + "description": "Directs the executor to skip this field or fragment when the `if` argument is true.", + "locations": [ + "FIELD", + "FRAGMENT_SPREAD", + "INLINE_FRAGMENT" + ], + "args": [ + { + "name": "if", + "description": "Skipped when true.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + } + ] + }, + { + "name": "deprecated", + "description": "Marks an element of a GraphQL schema as no longer supported.", + "locations": [ + "FIELD_DEFINITION", + "ENUM_VALUE" + ], + "args": [ + { + "name": "reason", + "description": "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax (as specified by [CommonMark](https://commonmark.org/).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": "\"No longer supported\"" + } + ] + } + ] + } + }, + "extensions": {} +} \ No newline at end of file