Enviar archivos de configuración de la aplicación

PARCHE /grupos/{ID de grupo}/aplicaciones/{ID de aplicación}/push

Sube una nueva configuración completa de la aplicación. Esta operación sobrescribe toda la configuración existente de la aplicación.

Nota: Si la configuración de su aplicación incluye alguna referencia a un secreto, debe crear el secreto antes de enviar la configuración.

Parámetros de ruta

aplicación/json

Cuerpo

  • Nombre string Requerido

    El nombre de la aplicación.

  • región_del_proveedor string Requerido

    Uno de:

    Los valores son aws-us-east-1, aws-us-west-2, aws-us-east-2, aws-eu-central-1, aws-eu-west-1, aws-eu-west-2, aws-ap-southeast-1, aws-ap-southeast-2, aws-ap-south-1 o aws-sa-east-1.

    Los valores son azure-eastus2, azure-westus, azure-westeurope, azure-eastasia o azure-southeastasia.

    Los valores son gcp-us-central1, gcp-us-east4, gcp-us-west1, gcp-europe-west1 o gcp-asia-south1.

  • modelo de implementación string Requerido

    Los valores son GLOBAL o LOCAL.

  • medio ambiente string

    El entorno de la aplicación.

    Los valores son development, testing, qa o production.

  • proveedores de autenticación matriz[objeto] Requerido
    Cualquiera de:
  • datos de usuario personalizados objeto | nulo
    Ocultar los atributos custom_user_data Mostrar atributos custom_user_data objeto | nulo
    • nombre_de_la_base_de_datos string

      El nombre de la base de datos que contiene datos de usuario personalizados.

    • nombre_de_colección string

      El nombre de la colección que contiene datos de usuario personalizados.

    • campo de identificación del usuario string

      El nombre de un campo que aparece en cada documento de datos de usuario personalizado y que contiene el ID de la cuenta de usuario del usuario correspondiente de cada documento.

    • habilitado booleano

      Si es true, se habilitan los datos de usuario personalizados.

    • nombre_del_servicio_mongo string Requerido

      El nombre de la fuente de datos MongoDB vinculada que contiene datos de usuario personalizados.

    • nombre_de_función_de_creación_del_usuario string

      El nombre de una función de creación de usuarios que se ejecuta cada vez que se registra un nuevo usuario.

  • data_api_config objeto | nulo
    Ocultar atributos data_api_config Mostrar atributos data_api_config objeto | nulo
    • inhabilitado booleano Requerido
    • versiones array[string] Requerido

      Una versión compatible de la API de datos.

      El valor es v1.

    • return_type string Requerido

      Un formato de datos compatible con la API de datos y puntos finales personalizados.

      Los valores son JSON o EJSON.

    • crear_usuario_en_auth booleano
    • ejecutar como id de usuario string

      ID de cuenta de un usuario de la aplicación. Si se define, los endpoints siempre se ejecutarán con el usuario especificado.

    • ejecutar_como_id_de_usuario_script_source string

      Código fuente en cadena para una función que devuelve el ID de la cuenta de un usuario de la aplicación. Si se define, los endpoints ejecutan la función en cada solicitud y se ejecutan como el usuario con el ID devuelto por la función.

    • método de validación string Requerido

      Los valores son NO_VALIDATION, SECRET_AS_QUERY_PARAM o VERIFY_PAYLOAD.

    • nombre_secreto string

      Si validation_method está establecido en "SECRET_AS_QUERY_PARAM" o "VERIFY_PAYLOAD", este es el name del Secreto que autoriza las solicitudes.

    • puede_evaluar Objeto

      Una expresión JSON que evalúa como true si se permite que un punto final se ejecute en respuesta a una solicitud entrante.

  • data_sources matriz[objeto] Requerido
    Uno de:
  • puntos finales matriz[objeto] Requerido
    Ocultar atributos de puntos finales Mostrar atributos de puntos finales Objeto
    • ruta string Requerido
    • método http string Requerido

      Los valores son GET, POST, PUT, PATCH, DELETE o *.

    • id_de_función string Requerido
    • método de validación string Requerido

      Los valores son NO_VALIDATION, SECRET_AS_QUERY_PARAM o VERIFY_PAYLOAD.

    • id_secreto string

      Si validation_method está establecido en "SECRET_AS_QUERY_PARAM" o "VERIFY_PAYLOAD", este es el _id del Secreto que autoriza las solicitudes.

    • return_type string Requerido

      Un formato de datos compatible con la API de datos y puntos finales personalizados.

      Los valores son JSON o EJSON.

    • respuesta_resultado booleano Requerido
    • obtener datos de usuario personalizados booleano
    • crear_usuario_en_auth booleano
    • inhabilitado booleano Requerido
    • nombre_de_función string Requerido

      Nombre de la función del punto final.

  • entornos Objeto Requerido
    Ocultar atributos de entornos Mostrar atributos de entornos Objeto
    • values Objeto

      Un objeto que asigna cada nombre de entorno posible a las definiciones de los valores de entorno disponibles en ese entorno.

      Hide values attributes Mostrar atributos de valores Objeto
      • ninguno Objeto
        No ocultar ningún atributo No mostrar ningún atributo Objeto
        • values Objeto
      • desarrollo Objeto
        Ocultar atributo de desarrollo Mostrar atributo de desarrollo Objeto
        • values Objeto
      • testing Objeto
        Ocultar atributo de prueba Mostrar atributo de prueba Objeto
        • values Objeto
      • qa Objeto
        Hide qa attribute Mostrar atributo qa Objeto
        • values Objeto
      • producción Objeto
        Ocultar atributo de producción Mostrar atributo de producción Objeto
        • values Objeto
  • Funciones matriz[objeto] Requerido
    Ocultar atributos de funciones Mostrar atributos de funciones Objeto
    • puede_evaluar Objeto

      Una expresión JSON que evalúa como true si se permite que la función se ejecute en respuesta a una solicitud entrante.

    • Nombre string Requerido

      Un nombre único para la función.

    • privada booleano Requerido

      Si es true, la función se oculta a las aplicaciones cliente. Aún se puede llamar a una función privada desde expresiones JSON y otras funciones, incluyendo webhooks y activadores entrantes.

    • fuente string Requerido

      El código fuente de la función, convertido en cadena. El código debe ser ES6 válido.

    • ejecutar como sistema booleano

      Si es true, la función se ejecuta con privilegios completos, omitiendo las reglas de todos los servicios.

    • ejecutar como id de usuario string

      ID de cuenta de un usuario de la aplicación. Si se define, los endpoints siempre se ejecutarán con el usuario especificado. No se puede usar con run_as_user_id_script_source.

    • ejecutar_como_id_de_usuario_script_source string

      El código fuente en cadena de una función que devuelve el ID de la cuenta de un usuario de la aplicación. Si se define, los puntos finales ejecutan la función en cada solicitud y se ejecutan como el usuario con el ID devuelto por la función. No se puede usar run_as_user_id con.

  • Graphql Objeto Requerido
    Ocultar atributos graphql Mostrar atributos graphql Objeto
    • config Objeto Requerido
      Ocultar atributos de configuración Mostrar atributos de configuración Objeto
      • uso_pluralización_natural booleano

        Si es true, los nombres de tipos de esquema generados utilizan la pluralización inglesa común siempre que sea posible.

        Si false, o si no se puede determinar una pluralización natural, entonces los tipos plurales usan el nombre del tipo singular con una "s" añadida al final.

        No puedes cambiar este valor después de crear tu aplicación. Este valor es true para todas las aplicaciones nuevas.

      • deshabilitar_introspección_de_esquema booleano

        Si true, la API de GraphQL bloquea consultas de introspección de clientes.

    • configuración de validación Objeto Requerido
      Ocultar los atributos validation_settings Mostrar atributos de validation_settings Objeto
      • acción de validación de lectura string

        Los valores son ERROR o WARN.

      • nivel de validación de lectura string

        Los valores son STRICT o OFF.

      • write_validation_action string

        Los valores son ERROR o WARN.

      • nivel de validación de escritura string

        Los valores son STRICT o OFF.

    • solucionadores personalizados matriz[objeto] Requerido
      Ocultar atributos de custom_resolvers Mostrar atributos custom_resolvers Objeto
      • en_tipo string Requerido

        El nombre del tipo principal del solucionador. Puede ser "Query", "Mutation" o el nombre de un tipo generado si se trata de una propiedad calculada.

      • nombre_del_campo string Requerido

        El nombre del campo de resolución personalizado que aparece en el esquema GraphQL.

      • input_type string | objeto

        El tipo del parámetro input del resolvedor personalizado. Puede ser un escalar, el nombre de un tipo generado existente o un objeto de esquema JSON personalizado. Si no está definido, el resolvedor no acepta ninguna entrada.

      • formato de tipo de entrada string

        El tipo de entrada que utiliza el resolvedor personalizado. Este valor debe corresponder al valor de input_type:

        • Un tipo de entrada escalar debe utilizar "scalar" o "scalar-list"
        • Un tipo de entrada generado debe utilizar "generated" o "generated-list"
        • Se debe utilizar un tipo de entrada personalizado "custom"

        Si no está definido, el solucionador no acepta ninguna entrada.

        Los valores son scalar, scalar-list, generated, generated-list o custom.

      • tipo de carga útil string | objeto

        El tipo del valor devuelto por el resolvedor personalizado. Puede ser un escalar, el nombre de un tipo generado existente o un objeto de esquema JSON personalizado.

        Si no está definido, el solucionador devuelve un objeto DefaultPayload:

        type DefaultPayload {
          status: String!
        }
        
      • payload_type_format string

        El tipo de carga útil que utiliza el resolvedor personalizado. Este valor debe corresponder al valor de payload_type:

        • Un tipo de carga útil escalar debe utilizar "scalar" o "scalar-list"
        • Un tipo de carga útil generada debe utilizar "generated" o "generated-list"
        • Se debe utilizar un tipo de carga útil personalizado "custom"

        Si no está definido, el solucionador devuelve un objeto DefaultPayload.

        Los valores son scalar, scalar-list, generated, generated-list o custom.

      • nombre_de_función string Requerido

        Nombre de la función de resolución.

  • hosting Objeto Requerido
    Ocultar atributos de alojamiento Mostrar atributos de alojamiento Objeto
    • habilitado booleano Requerido
    • dominio personalizado string
    • ruta_de_error_predeterminada string
    • default_error_code string
  • puntos finales https matriz[objeto] Requerido

    [Obsoleto] Lista de servicios HTTP heredados. Esto es solo por compatibilidad con versiones anteriores.

    Ocultar atributos https_endpoints Mostrar atributos https_endpoints Objeto
    • Nombre string

      El nombre del servicio.

    • tipo string

      El tipo de servicio.

      Los valores son aws, twilio, github, gcm o http.

    • incoming_webhooks matriz[objeto]
      Ocultar atributos incoming_webhooks Mostrar los atributos incoming_webhooks Objeto
      • Nombre string Requerido
      • fuente_de_función string Requerido
      • respuesta_resultado booleano Requerido
      • opciones Objeto
        Ocultar atributos de opciones Mostrar atributos de opciones Objeto
        • secreto string
        • secretAsQueryParam booleano
    • Versión entero
  • reenvíos de registro matriz[objeto] Requerido
    Ocultar atributos de log_forwarders Mostrar atributos de log_forwarders Objeto
    • Nombre string Requerido
    • inhabilitado booleano Requerido
    • tipos de registro array[string] Requerido

      Los valores son auth, endpoint, function, graphql, push, schema, service, sync, trigger o trigger_error_handler.

    • log_statuses array[string] Requerido

      Los valores son error o success.

    • política Objeto Requerido
      Ocultar atributo de política Mostrar atributo de política Objeto
      • tipo string

        Los valores son single o batch.

    • acción Objeto Requerido
      Ocultar atributos de acción Mostrar atributos de acción Objeto
      • tipo string

        Los valores son collection o function.

      • Nombre string
      • data_source string
      • database string
      • Colección string
  • schemas matriz[objeto] Requerido
    Ocultar atributos de esquemas Mostrar atributos de esquemas Objeto
    • metadata Objeto

      Metadatos que describen a qué colección vinculada se aplica el esquema.

      Hide metadata attributes Mostrar atributos de metadatos Objeto
      • data_source string

        El nombre de la fuente de datos.

      • database string

        El nombre de la base de datos.

      • Colección string

        El nombre de la colección.

    • esquema Objeto

      Un esquema válido para la colección.

      Ocultar atributos del esquema Mostrar atributos del esquema Objeto
      • bsonType string

        El tipo BSON del campo.

        Los valores son object, array, string, number, int, long, double, decimal, date, timestamp, bool, null, regex, objectId, binary, uuid, function, javascript, symbol, minKey o maxKey.

      • Título string

        Un título legible para humanos para el esquema.

      • Requerido array[string]

        Para los esquemas object, una matriz de nombres de campos que se requieren en las instancias del objeto.

      • propiedades Objeto

        Un objeto donde cada nombre de campo es una propiedad del esquema. El valor correspondiente es una definición de esquema para ese campo.

        Ocultar atributo de propiedades Mostrar atributo de propiedades Objeto
    • relaciones Objeto

      Relaciones con colecciones externas. Cada nombre de campo es una propiedad del esquema. El valor correspondiente es una definición de relación para ese campo.

      Ocultar el atributo de relaciones Mostrar atributo de relaciones Objeto
      • * Objeto Propiedades adicionales

        Una definición de relación.

        Ocultar * atributos Mostrar * atributos Objeto
        • ref string

          Una cadena de referencia para la colección extranjera.

        • clave externa string

          El nombre del campo en la colección externa al que apunta la relación.

        • es_lista booleano

          Si true:

          • La relación puede apuntar a muchos documentos extranjeros.
          • El campo local debe definirse como una matriz en el esquema de colección.
  • Servicios matriz[objeto] Requerido

    [Obsoleto] Lista de servicios heredados de terceros no HTTP. Esto es solo por compatibilidad con versiones anteriores.

    Ocultar atributos de servicios Mostrar atributos de servicios Objeto
    • Nombre string

      El nombre del servicio.

    • tipo string

      El tipo de servicio.

      Los valores son aws, twilio, github, gcm o http.

    • incoming_webhooks matriz[objeto]
      Ocultar atributos incoming_webhooks Mostrar los atributos incoming_webhooks Objeto
      • Nombre string Requerido
      • fuente_de_función string Requerido
      • respuesta_resultado booleano Requerido
      • opciones Objeto
        Ocultar atributos de opciones Mostrar atributos de opciones Objeto
        • secreto string
        • secretAsQueryParam booleano
    • Versión entero
  • sincronizar Objeto Requerido
    Ocultar atributos de sincronización Mostrar atributos de sincronización Objeto
    • Estado string Requerido

      El estado del servicio de sincronización ("enabled", "disabled" o vacío si la sincronización no está configurada).

    • nombre_de_la_base_de_datos string

      El nombre de una base de datos en el clúster sincronizado donde App Services almacena datos en modo de desarrollo. App Services genera automáticamente un esquema para cada tipo sincronizado y asigna cada tipo de objeto a una colección dentro de la base de datos.

    • nombres de campos consultables array[string]

      Una matriz de nombres de campos consultables en cualquier colección.

    • indexed_queryable_fields_names array[string]

      Una lista de nombres de campos para usar como campo indexado consultable. Aunque esta propiedad es un arreglo, Sincronización actualmente soporta solo un campo indexado consultable. Por lo tanto, este arreglo puede contener como máximo un elemento.

      El campo consultable indexado debe estar presente en el esquema y ser del mismo tipo de campo elegible en todas las colecciones que sincronices. El nombre del campo indexado consultable también debe aparecer en queryable_fields_names ya que este es un campo consultable global.

    • nombres de campos consultables de colección Objeto

      Una matriz de nombres de campos consultables en la colección especificada.

      Ocultar el atributo collection_queryable_fields_names Mostrar el atributo collection_queryable_fields_names Objeto
      • * Objeto Propiedades adicionales
        Ocultar * atributo Mostrar atributo * Objeto
        • * string Propiedades adicionales

          El nombre del campo consultable.

    • permisos Objeto

      Obsoleto

    • última_deshabilitación string

      La última vez que se deshabilitó la sincronización, representada por la cantidad de segundos desde la época de UNIX.

    • días máximos sin conexión del cliente entero

      La cantidad de días que el cliente puede estar fuera de línea antes de que sea necesario reiniciarlo.

    • el modo de recuperación está deshabilitado booleano

      Especifica si el modo de restablecimiento del cliente está deshabilitado. De forma predeterminada, el modo de restablecimiento del cliente está habilitado y este valor es false.

    • asymmetric_tables array[string]

      Una matriz de nombres de colecciones que se definen como asimétricas con la ingesta de datos, donde los clientes pueden escribir datos pero no leerlos.

  • disparadores matriz[objeto] Requerido
    Uno de:
  • values matriz[objeto] Requerido
    Hide values attributes Mostrar atributos de valores Objeto
    • Nombre string Requerido
    • privada booleano Requerido
    • de_secreto booleano Requerido

      Si true es, el valor es una referencia por nombre a un secreto.

Respuestas

  • 204

    Empuje exitoso

  • 400

    Invalid request

  • 500

    Error al extraer la configuración

PARCHE /grupos/{groupId}/aplicaciones/{appId}/push
curl \
 --request PATCH 'https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/push' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{"name":"string","provider_region":"aws-us-east-1","deployment_model":"GLOBAL","environment":"production","auth_providers":[{"name":"anon-user","type":"anon-user","disabled":true}],"custom_user_data":{"database_name":"myapp","collection_name":"users","user_id_field":"user_account_id","enabled":true,"mongo_service_name":"mongodb-atlas","on_user_creation_function_name":"myFunction"},"data_api_config":{"disabled":true,"versions":["v1"],"return_type":"JSON","create_user_on_auth":true,"run_as_user_id":"string","run_as_user_id_script_source":"string","validation_method":"NO_VALIDATION","secret_name":"string","can_evaluate":{}},"data_sources":[{"name":"string","type":"string","config":{"clusterName":"Cluster0","readPreference":"primary","readPreferenceTagSets":["server1"],"wireProtocolEnabled":true},"default_rule":{"roles":[{"document_filters":{"read":{},"write":{}},"name":"string","apply_when":{},"read":{},"write":{},"insert":{},"delete":{},"search":{},"fields":{},"additional_fields":{"read":{},"write":{}}}],"filters":[{"name":"string","apply_when":{},"query":{},"projection":{"additionalProperty1":0,"additionalProperty2":0}}]},"rules":[{"database":"string","collection":"string","roles":[{"document_filters":{"read":{},"write":{}},"name":"string","apply_when":{},"read":{},"write":{},"insert":{},"delete":{},"search":{},"fields":{},"additional_fields":{"read":{},"write":{}}}],"filters":[{"name":"string","apply_when":{},"query":{},"projection":{"additionalProperty1":0,"additionalProperty2":0}}]}]}],"endpoints":[{"route":"string","http_method":"GET","function_id":"string","validation_method":"NO_VALIDATION","secret_id":"string","return_type":"JSON","respond_result":true,"fetch_custom_user_data":true,"create_user_on_auth":true,"disabled":true,"function_name":"string"}],"environments":{"values":{"none":{"values":{}},"development":{"values":{}},"testing":{"values":{}},"qa":{"values":{}},"production":{"values":{}}}},"functions":[{"can_evaluate":{},"name":"string","private":true,"source":"string","run_as_system":true,"run_as_user_id":"string","run_as_user_id_script_source":"string"}],"graphql":{"config":{"use_natural_pluralization":true,"disable_schema_introspection":true},"validation_settings":{"read_validation_action":"ERROR","read_validation_level":"STRICT","write_validation_action":"ERROR","write_validation_level":"STRICT"},"custom_resolvers":[{"on_type":"string","field_name":"string","input_type":"string","input_type_format":"scalar","payload_type":"string","payload_type_format":"scalar","function_name":"string"}]},"hosting":{"enabled":true,"custom_domain":"example.com","default_error_path":"/404.html","default_error_code":"404"},"https_endpoints":[{"name":"string","type":"aws","incoming_webhooks":[{"name":"string","function_source":"string","respond_result":true,"options":{"secret":"string","secretAsQueryParam":true}}],"version":42}],"log_forwarders":[{"name":"string","disabled":true,"log_types":["auth"],"log_statuses":["error"],"policy":{"type":"single"},"action":{"type":"collection","name":"string","data_source":"string","database":"string","collection":"string"}}],"schemas":[{"metadata":{"data_source":"string","database":"string","collection":"string"},"schema":{"bsonType":"object","title":"string","required":["string"],"properties":{"*":{}}},"relationships":{"additionalProperty1":{"ref":"string","foreign_key":"string","is_list":true},"additionalProperty2":{"ref":"string","foreign_key":"string","is_list":true}}}],"services":[{"name":"string","type":"aws","incoming_webhooks":[{"name":"string","function_source":"string","respond_result":true,"options":{"secret":"string","secretAsQueryParam":true}}],"version":42}],"sync":{"state":"string","database_name":"string","queryable_fields_names":["string"],"indexed_queryable_fields_names":["string"],"collection_queryable_fields_names":{"additionalProperty1":{"additionalProperty1":"string","additionalProperty2":"string"},"additionalProperty2":{"additionalProperty1":"string","additionalProperty2":"string"}},"permissions":{},"last_disabled":"string","client_max_offline_days":42,"is_recovery_mode_disabled":true,"asymmetric_tables":["string"]},"triggers":[{"name":"onNewEmployee","type":"DATABASE","config":{"match":{},"project":{},"database":"HR","collection":"employees","service_id":"5adeb649b8b998486770ae7c","full_document":true,"operation_types":["INSERT"]},"function_id":"5eea9ca4ca0e356e2c2a148a","event_processors":{"FUNCTION":{"config":{"function_id":"6841b8d3e71dc81bed89dbba","function_name":"Atlas_Triggers_DatabaseInsert_1749137618"}}}}],"values":[{"name":"string","private":true,"from_secret":true}]}'
Solicitar ejemplos
{
  "name": "string",
  "provider_region": "aws-us-east-1",
  "deployment_model": "GLOBAL",
  "environment": "production",
  "auth_providers": [
    {
      "name": "anon-user",
      "type": "anon-user",
      "disabled": true
    }
  ],
  "custom_user_data": {
    "database_name": "myapp",
    "collection_name": "users",
    "user_id_field": "user_account_id",
    "enabled": true,
    "mongo_service_name": "mongodb-atlas",
    "on_user_creation_function_name": "myFunction"
  },
  "data_api_config": {
    "disabled": true,
    "versions": [
      "v1"
    ],
    "return_type": "JSON",
    "create_user_on_auth": true,
    "run_as_user_id": "string",
    "run_as_user_id_script_source": "string",
    "validation_method": "NO_VALIDATION",
    "secret_name": "string",
    "can_evaluate": {}
  },
  "data_sources": [
    {
      "name": "string",
      "type": "string",
      "config": {
        "clusterName": "Cluster0",
        "readPreference": "primary",
        "readPreferenceTagSets": [
          "server1"
        ],
        "wireProtocolEnabled": true
      },
      "default_rule": {
        "roles": [
          {
            "document_filters": {
              "read": {},
              "write": {}
            },
            "name": "string",
            "apply_when": {},
            "read": {},
            "write": {},
            "insert": {},
            "delete": {},
            "search": {},
            "fields": {},
            "additional_fields": {
              "read": {},
              "write": {}
            }
          }
        ],
        "filters": [
          {
            "name": "string",
            "apply_when": {},
            "query": {},
            "projection": {
              "additionalProperty1": 0,
              "additionalProperty2": 0
            }
          }
        ]
      },
      "rules": [
        {
          "database": "string",
          "collection": "string",
          "roles": [
            {
              "document_filters": {
                "read": {},
                "write": {}
              },
              "name": "string",
              "apply_when": {},
              "read": {},
              "write": {},
              "insert": {},
              "delete": {},
              "search": {},
              "fields": {},
              "additional_fields": {
                "read": {},
                "write": {}
              }
            }
          ],
          "filters": [
            {
              "name": "string",
              "apply_when": {},
              "query": {},
              "projection": {
                "additionalProperty1": 0,
                "additionalProperty2": 0
              }
            }
          ]
        }
      ]
    }
  ],
  "endpoints": [
    {
      "route": "string",
      "http_method": "GET",
      "function_id": "string",
      "validation_method": "NO_VALIDATION",
      "secret_id": "string",
      "return_type": "JSON",
      "respond_result": true,
      "fetch_custom_user_data": true,
      "create_user_on_auth": true,
      "disabled": true,
      "function_name": "string"
    }
  ],
  "environments": {
    "values": {
      "none": {
        "values": {}
      },
      "development": {
        "values": {}
      },
      "testing": {
        "values": {}
      },
      "qa": {
        "values": {}
      },
      "production": {
        "values": {}
      }
    }
  },
  "functions": [
    {
      "can_evaluate": {},
      "name": "string",
      "private": true,
      "source": "string",
      "run_as_system": true,
      "run_as_user_id": "string",
      "run_as_user_id_script_source": "string"
    }
  ],
  "graphql": {
    "config": {
      "use_natural_pluralization": true,
      "disable_schema_introspection": true
    },
    "validation_settings": {
      "read_validation_action": "ERROR",
      "read_validation_level": "STRICT",
      "write_validation_action": "ERROR",
      "write_validation_level": "STRICT"
    },
    "custom_resolvers": [
      {
        "on_type": "string",
        "field_name": "string",
        "input_type": "string",
        "input_type_format": "scalar",
        "payload_type": "string",
        "payload_type_format": "scalar",
        "function_name": "string"
      }
    ]
  },
  "hosting": {
    "enabled": true,
    "custom_domain": "example.com",
    "default_error_path": "/404.html",
    "default_error_code": "404"
  },
  "https_endpoints": [
    {
      "name": "string",
      "type": "aws",
      "incoming_webhooks": [
        {
          "name": "string",
          "function_source": "string",
          "respond_result": true,
          "options": {
            "secret": "string",
            "secretAsQueryParam": true
          }
        }
      ],
      "version": 42
    }
  ],
  "log_forwarders": [
    {
      "name": "string",
      "disabled": true,
      "log_types": [
        "auth"
      ],
      "log_statuses": [
        "error"
      ],
      "policy": {
        "type": "single"
      },
      "action": {
        "type": "collection",
        "name": "string",
        "data_source": "string",
        "database": "string",
        "collection": "string"
      }
    }
  ],
  "schemas": [
    {
      "metadata": {
        "data_source": "string",
        "database": "string",
        "collection": "string"
      },
      "schema": {
        "bsonType": "object",
        "title": "string",
        "required": [
          "string"
        ],
        "properties": {
          "*": {}
        }
      },
      "relationships": {
        "additionalProperty1": {
          "ref": "string",
          "foreign_key": "string",
          "is_list": true
        },
        "additionalProperty2": {
          "ref": "string",
          "foreign_key": "string",
          "is_list": true
        }
      }
    }
  ],
  "services": [
    {
      "name": "string",
      "type": "aws",
      "incoming_webhooks": [
        {
          "name": "string",
          "function_source": "string",
          "respond_result": true,
          "options": {
            "secret": "string",
            "secretAsQueryParam": true
          }
        }
      ],
      "version": 42
    }
  ],
  "sync": {
    "state": "string",
    "database_name": "string",
    "queryable_fields_names": [
      "string"
    ],
    "indexed_queryable_fields_names": [
      "string"
    ],
    "collection_queryable_fields_names": {
      "additionalProperty1": {
        "additionalProperty1": "string",
        "additionalProperty2": "string"
      },
      "additionalProperty2": {
        "additionalProperty1": "string",
        "additionalProperty2": "string"
      }
    },
    "permissions": {},
    "last_disabled": "string",
    "client_max_offline_days": 42,
    "is_recovery_mode_disabled": true,
    "asymmetric_tables": [
      "string"
    ]
  },
  "triggers": [
    {
      "name": "onNewEmployee",
      "type": "DATABASE",
      "config": {
        "match": {},
        "project": {},
        "database": "HR",
        "collection": "employees",
        "service_id": "5adeb649b8b998486770ae7c",
        "full_document": true,
        "operation_types": [
          "INSERT"
        ]
      },
      "function_id": "5eea9ca4ca0e356e2c2a148a",
      "event_processors": {
        "FUNCTION": {
          "config": {
            "function_id": "6841b8d3e71dc81bed89dbba",
            "function_name": "Atlas_Triggers_DatabaseInsert_1749137618"
          }
        }
      }
    }
  ],
  "values": [
    {
      "name": "string",
      "private": true,
      "from_secret": true
    }
  ]
}