REST Resource: projects.sites.customDomains

Recurso: CustomDomain

Un CustomDomain es una entidad que vincula un nombre de dominio a un sitio de Firebase Hosting. Agrega una CustomDomain a tu sitio para permitir que Hosting publique el contenido del sitio en respuesta a las solicitudes en tu nombre de dominio.

Representación JSON
{
  "name": string,
  "annotations": {
    string: string,
    ...
  },
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "expireTime": string,
  "etag": string,
  "hostState": enum (HostState),
  "ownershipState": enum (OwnershipState),
  "requiredDnsUpdates": {
    object (DnsUpdates)
  },
  "issues": [
    {
      object (Status)
    }
  ],
  "certPreference": enum (Type),
  "cert": {
    object (Certificate)
  },
  "redirectTarget": string,
  "reconciling": boolean,
  "labels": {
    string: string,
    ...
  }
}
Campos
name

string

Solo salida. Es el nombre completamente calificado de CustomDomain.

annotations

map (key: string, value: string)

Anotaciones que puedes agregar para dejar metadatos legibles por humanos y máquinas sobre tu CustomDomain

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

string (Timestamp format)

Solo salida. La fecha y hora de creación del dominio personalizado.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Solo salida. La última vez que se actualizó el CustomDomain.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

deleteTime

string (Timestamp format)

Solo salida. La hora a la que se borró CustomDomain. null para los dominios personalizados que no se borraron. Los dominios personalizados borrados se conservan durante aproximadamente 30 días. Luego, Hosting los quita por completo. Para restablecer un dominio personalizado borrado, realiza una solicitud customDomains.undelete.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

expireTime

string (Timestamp format)

Solo salida. El tiempo mínimo antes de que un CustomDomain borrado de forma no definitiva se quite de Hosting por completo. null para los dominios personalizados que no se borraron.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

etag

string

Solo salida. Es una cadena que representa el estado actual de CustomDomain y te permite confirmar su estado inicial en solicitudes que lo modificarían. Usa la etiqueta para garantizar la coherencia cuando realices solicitudes customDomains.patch, customDomains.delete y customDomains.undelete.

hostState

enum (HostState)

Solo salida. El HostState del nombre de dominio al que hace referencia este CustomDomain.

ownershipState

enum (OwnershipState)

Solo salida. El OwnershipState del nombre de dominio al que hace referencia este CustomDomain.

requiredDnsUpdates

object (DnsUpdates)

Solo salida. Un conjunto de actualizaciones que debes realizar en los registros DNS del nombre de dominio para permitir que Hosting entregue contenido seguro en su nombre.

issues[]

object (Status)

Solo salida. Una serie de errores que se encontraron en los sistemas de Hosting cuando se intentaba establecer la capacidad de Hosting de entregar contenido seguro para tu nombre de dominio. Resuelve estos problemas para asegurarte de que CustomDomain se comporte correctamente.

certPreference

enum (Type)

Es un campo que te permite especificar el tipo de certificado SSL que Hosting crea para tu nombre de dominio. Los dominios personalizados del plan Spark solo tienen acceso al tipo de certificado GROUPED, mientras que los dominios del plan Blaze pueden seleccionar cualquier opción.

cert

object (Certificate)

Solo salida. El certificado SSL que Hosting tiene para el nombre de dominio de este dominio personalizado. Para los dominios personalizados nuevos, esto suele representar la intención de Hosting de crear un certificado en lugar de un certificado real. Consulta el campo state para obtener más información.

redirectTarget

string

Un nombre de dominio al que este CustomDomain debe dirigir el tráfico. Si se especifica, Hosting responderá a las solicitudes en este dominio personalizado con un código HTTP 301 y enrutará el tráfico al redirectTarget especificado en su lugar.

reconciling

boolean

Solo salida. Un campo que, si es verdadero, indica que los sistemas de Hosting están intentando que el estado del dominio personalizado coincida con el estado que deseas. Con mayor frecuencia, es true cuando se aprovisiona inicialmente un CustomDomain después de una solicitud customDomains.create o cuando se crea un nuevo certificado SSL para que coincida con un certPreference actualizado después de una solicitud customDomains.patch.

labels

map (key: string, value: string)

Etiquetas que se usan para metadatos adicionales o filtros.

Un objeto que contiene una lista de pares "key": value. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Estado del host

El estado del host de tu nombre de dominio. El estado del host se determina verificando cada dirección IP asociada con tu nombre de dominio para comprobar si se entrega contenido de Hosting.

Enums
HOST_STATE_UNSPECIFIED El estado del host de tu dominio personalizado no está especificado. El mensaje no es válido si no se especifica.
HOST_UNHOSTED El nombre de dominio de tu dominio personalizado no está asociado con ninguna dirección IP.
HOST_UNREACHABLE No se puede acceder al nombre de dominio de tu dominio personalizado. Servicios de hosting Las consultas de DNS para encontrar las direcciones IP de tu nombre de dominio generaron errores. Consulta el campo issues de tu objeto CustomDomain para obtener más detalles.
HOST_MISMATCH El nombre de dominio de tu dominio personalizado tiene direcciones IP que, en última instancia, no se resuelven en Hosting.
HOST_CONFLICT El nombre de dominio de tu dominio personalizado tiene direcciones IP que se resuelven tanto en Hosting como en otros servicios. Para garantizar resultados coherentes, quita los registros A y AAAA relacionados con servicios que no sean de Hosting.
HOST_ACTIVE Hosting entrega todas las solicitudes en el nombre de dominio de tu dominio personalizado. Si el OwnershipState del dominio personalizado también es ACTIVE, Hosting entrega el contenido del sitio de Hosting en el nombre de dominio.

Estado de propiedad

El estado de propiedad de tu dominio. Un dominio puede ser propiedad de un sitio de Firebase Hosting como máximo. La propiedad se puede determinar de dos maneras:

* TXT records: A TXT record on the domain in the form
`hosting-site=[siteId]`.
* CNAME records: A CNAME record that points to a Hosting site's default
domain.

Si tu CustomDomain está en una OwnershipState distinta de OWNERSHIP_ACTIVE durante más de 30 días y no se actualiza en al menos 30 días, los sistemas de propiedad de Hosting borrarán la CustomDomain. Para restablecer un CustomDomain borrado, realiza una solicitud customDomains.undelete.

Enums
OWNERSHIP_STATE_UNSPECIFIED El estado de propiedad del dominio personalizado no está especificado. Esto nunca debería suceder.
OWNERSHIP_MISSING El nombre de dominio de tu dominio personalizado no tiene registros de propiedad relacionados con Hosting. Ningún proyecto de Firebase tiene permiso para actuar en nombre del nombre de dominio.
OWNERSHIP_UNREACHABLE No se puede acceder al nombre de dominio de tu dominio personalizado. Servicios de hosting Las consultas de DNS para encontrar los registros de propiedad del nombre de dominio generaron errores. Consulta el campo issues de tu objeto CustomDomain para obtener más detalles.
OWNERSHIP_MISMATCH El nombre de dominio de tu dominio personalizado es propiedad de otro proyecto de Firebase. Quita los registros TXT en conflicto y reemplázalos por registros específicos del proyecto para tu proyecto de Firebase actual.
OWNERSHIP_CONFLICT El nombre de dominio de tu dominio personalizado tiene registros TXT en conflicto que indican que eres el propietario de tu proyecto de Firebase actual y de otro proyecto. Quita los registros de propiedad del otro proyecto para otorgar la propiedad actual del proyecto.
OWNERSHIP_PENDING Los registros DNS de tu dominio personalizado están configurados correctamente. Hosting transferirá la propiedad de tu dominio a este CustomDomain en un plazo de 24 horas.
OWNERSHIP_ACTIVE El nombre de dominio de tu dominio personalizado tiene TXT registros que otorgan permiso al proyecto para actuar en su nombre.

Actualizaciones de DNS

Un conjunto de actualizaciones de registros DNS que debes realizar para permitir que Hosting entregue contenido seguro en respuesta a las solicitudes en tu nombre de dominio. Estas actualizaciones presentan el estado actual de los registros DNS de tu nombre de dominio cuando Hosting los consultó por última vez y el conjunto de registros deseado que Hosting debe ver para que tu dominio personalizado pueda estar completamente activo.

Representación JSON
{
  "discovered": [
    {
      object (DnsRecordSet)
    }
  ],
  "desired": [
    {
      object (DnsRecordSet)
    }
  ],
  "checkTime": string
}
Campos
discovered[]

object (DnsRecordSet)

El conjunto de registros DNS que se descubre cuando se inspecciona un dominio.

desired[]

object (DnsRecordSet)

El conjunto de registros DNS que Hosting necesita entregar contenido seguro en el dominio.

checkTime

string (Timestamp format)

La última vez que Hosting verificó los registros DNS de tu dominio personalizado.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

DnsRecordSet

Un conjunto de registros DNS relevantes para la configuración y el mantenimiento de un dominio personalizado en Firebase Hosting.

Representación JSON
{
  "domainName": string,
  "checkError": {
    object (Status)
  },
  "records": [
    {
      object (DnsRecord)
    }
  ]
}
Campos
domainName

string

Solo salida. El nombre de dominio al que pertenece el conjunto de registros.

checkError

object (Status)

Solo salida. Se produjo un error cuando se consultaban los servicios de Hosting cuando se consultaban los registros DNS de tu nombre de dominio. Nota: Hosting ignora los errores NXDOMAIN, ya que, por lo general, significan que todavía no se configuró un nombre de dominio.

records[]

object (DnsRecord)

Solo salida. Registros en el dominio.

DnsRecord

Los registros DNS son registros de recursos que definen el comportamiento de los sistemas y servicios cuando se manejan solicitudes de un nombre de dominio. Por ejemplo, cuando agregas registros A a los registros DNS de tu nombre de dominio, les estás informando a otros sistemas (como los navegadores web de tus usuarios) que se comuniquen con esas direcciones IPv4 para recuperar recursos relevantes para tu nombre de dominio (como tus archivos de sitio de Hosting).

Representación JSON
{
  "domainName": string,
  "type": enum (Type),
  "rdata": string,
  "requiredAction": enum (Action)
}
Campos
domainName

string

Solo salida. El nombre de dominio al que pertenece el registro, p.ej., foo.bar.com.

type

enum (Type)

Solo salida. El tipo de registro, que determina qué datos contiene el registro.

rdata

string

Solo salida. Los datos del registro. El significado del valor depende del tipo de registro: - A y AAAA: direcciones IP para el nombre de dominio. - CNAME: otro dominio para buscar registros - TXT: cadenas de texto arbitrarias asociadas con el nombre de dominio. Hosting usa registros TXT para determinar qué proyectos de Firebase tienen permiso para actuar en nombre del nombre de dominio. - CAA: las marcas, la etiqueta y el valor del registro, p.ej., 0 issue "pki.goog"

requiredAction

enum (Action)

Solo salida. Una enumeración que indica la acción necesaria para este registro.

Tipo

El tipo de registro DNS, incluidos A, TXT, AAAA y CAA.

Enums
TYPE_UNSPECIFIED El tipo de registro no está especificado. El mensaje no es válido si no se especifica.
A Un registro A, como se define en RFC 1035 Los registros A determinan a qué direcciones IPv4 dirige el tráfico un nombre de dominio.
CNAME Un registro CNAME, como se define en RFC 1035 Los registros CNAME o de nombre canónico asignan un nombre de dominio a otro nombre de dominio canónico. Si hay un registro CNAME presente, debe ser el único registro en el nombre de dominio.
TXT Un registro TXT, como se define en RFC 1035 Los registros TXT contienen datos de texto arbitrarios en un nombre de dominio. Hosting usa registros TXT a fin de establecer qué proyecto de Firebase tiene permiso para realizar acciones en un nombre de dominio.
AAAA Un registro AAAA, como se define en RFC 3596, los registros AAAA determinan a qué direcciones IPv6 dirige el tráfico un nombre de dominio.
CAA

Un registro de CAA, como se define en RFC 6844. Los registros de autorización de autoridad certificadora (CAA) determinan qué autoridades certificadoras (organizaciones de creación de certificados SSL) están autorizadas a acuñar un certificado para el nombre de dominio. Firebase Hosting usa pki.goog como su AC principal.

Registros de CAA en cascada. Un registro de CAA en foo.com también se aplica a bar.foo.com, a menos que bar.foo.com tenga su propio conjunto de registros de CAA.

Los registros CAA son opcionales. Si un nombre de dominio y sus elementos superiores no tienen registros de CAA, todas las CA están autorizadas a acuñar certificados en su nombre. En general, Hosting solo te solicita que modifiques los registros de CAA cuando sea necesario para desbloquear la creación del certificado SSL.

Acción

La acción es un tipo de acción que debes realizar en este registro DNS para configurar tu dominio y usarlo con Firebase Hosting.

Enums
NONE No se requiere ninguna acción.
ADD Agrega este registro a tus registros DNS.
REMOVE Quita este registro de tus registros DNS.

Tipo

El tipo de certificado. Determina cómo los sistemas de Hosting crean y mantienen el certificado.

Enums
TYPE_UNSPECIFIED El tipo de certificado no está especificado. El mensaje no es válido si no se especifica.
TEMPORARY Un tipo de certificado de corta duración que cubre un nombre de dominio de manera temporal, mientras que Hosting crea un certificado más permanente.
GROUPED El certificado estándar para los dominios personalizados del plan Spark.
PROJECT_GROUPED Solo para el plan Blaze. Un certificado que abarca de 1 a 100 nombres de dominio con dominios personalizados en el mismo proyecto de Firebase.
DEDICATED Solo para el plan Blaze. Un certificado que cubre un solo nombre de dominio.

Certificado

Un certificado SSL que se usa para proporcionar encriptación de extremo a extremo para las solicitudes realizadas a tu nombre de dominio. Un Certificate puede ser un certificado SSL real o, en el caso de los dominios personalizados recién creados, el intent de Hosting de crear uno.

Representación JSON
{
  "type": enum (Type),
  "state": enum (CertState),
  "verification": {
    object (CertVerification)
  },
  "issues": [
    {
      object (Status)
    }
  ],
  "createTime": string,
  "expireTime": string
}
Campos
type

enum (Type)

Solo salida. El tipo de certificado.

state

enum (CertState)

Solo salida. Estado del certificado. Solo los estados CERT_ACTIVE y CERT_EXPIRING_SOON proporcionan cobertura SSL para un nombre de dominio. Si el estado es PROPAGATING y Hosting tenía un certificado activo para el nombre de dominio anteriormente, ese certificado que antes estaba activo proporciona cobertura SSL para el nombre de dominio hasta que se propaga el certificado actual.

verification

object (CertVerification)

Solo salida. Un conjunto de desafíos de ACME que puedes agregar a tus registros DNS o a un proveedor de hosting existente que no es de Hosting para permitir que Hosting cree un certificado SSL para tu nombre de dominio antes de dirigir el tráfico hacia el hosting. Puedes usar estos desafíos como parte de una transición sin tiempo de inactividad desde tu proveedor anterior a Hosting.

issues[]

object (Status)

Solo salida. Un conjunto de errores que Hosting encontró cuando intentó crear un certificado para el nombre de tu dominio. Resuelve estos problemas para asegurarte de que Hosting pueda proporcionar una comunicación segura con los visitantes de tu sitio.

createTime

string (Timestamp format)

Solo salida. Hora de creación del certificado. En el caso de los certificados TEMPORARY, esta es la hora en la que Hosting generó por primera vez los desafíos para tu nombre de dominio. Para todos los demás tipos de certificados, es la hora en la que se creó el certificado real.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

expireTime

string (Timestamp format)

Solo salida. Fecha y hora de vencimiento del certificado. Después de este período, ya no se podrá usar para proporcionar una comunicación segura entre Hosting y los visitantes de tu sitio.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

Estado de certificación

El estado del certificado SSL que tiene Hosting para tu nombre de dominio. Puede representar el estado del certificado real o, en el caso de los dominios personalizados nuevos, el intento de Hosting de crear un certificado.

Enums
CERT_STATE_UNSPECIFIED El estado del certificado no está especificado. El mensaje no es válido si no se especifica.
CERT_PREPARING El estado inicial de cada certificado representa la intención de Hosting de crear un certificado antes de que se realicen solicitudes a una autoridad certificadora.
CERT_VALIDATING Hosting valida si los registros DNS de un nombre de dominio se encuentran en un estado que permite la creación de certificados en su nombre.
CERT_PROPAGATING El certificado se creó recientemente y necesita tiempo para propagarse en la CDN de Hosting.
CERT_ACTIVE El certificado está activo y proporciona conexiones seguras para los nombres de dominio que representa.
CERT_EXPIRING_SOON El certificado vencerá. Todos los nombres de dominio que contenga recibirán certificados nuevos.
CERT_EXPIRED El certificado venció. Hosting ya no puede entregar contenido seguro en tu nombre de dominio.

CertVerificación

Un conjunto de desafíos de ACME que puedes usar para permitir que Hosting cree un certificado SSL para tu nombre de dominio antes de dirigir el tráfico a los servidores de Hosting. Usa el desafío de DNS o HTTP. no es necesario proporcionar ambos.

Representación JSON
{
  "dns": {
    object (DnsUpdates)
  },
  "http": {
    object (HttpUpdate)
  }
}
Campos
dns

object (DnsUpdates)

Solo salida. Un registro TXT para agregar a tus registros DNS que confirma tu intención de permitir que Hosting cree un certificado SSL para tu nombre de dominio

http

object (HttpUpdate)

Solo salida. Es un archivo que se agrega a tu servicio de hosting existente que no es de Hosting y que confirma tu intención de permitir que Hosting cree un certificado SSL para tu nombre de dominio.

HttpUpdate

Un archivo que puedes agregar a tu servicio de hosting existente que no es de Hosting en el que se confirma tu intención de permitir que las autoridades certificadoras de Hosting creen un certificado SSL para tu dominio.

Representación JSON
{
  "path": string,
  "desired": string,
  "discovered": string,
  "lastCheckTime": string,
  "checkError": {
    object (Status)
  }
}
Campos
path

string

Solo salida. Es la ruta de acceso al archivo.

desired

string

Solo salida. Una cadena de texto para entregar en la ruta de acceso.

discovered

string

Solo salida. Indica si Hosting pudo encontrar el contenido del archivo requerido en la ruta especificada durante la última verificación.

lastCheckTime

string (Timestamp format)

Solo salida. La última vez que los sistemas de Hosting verificaron el contenido del archivo.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

checkError

object (Status)

Solo salida. Se produjo un error durante la última verificación de contenido. Si es nulo, la verificación se completó correctamente.

Métodos

create

Crea un CustomDomain.

delete

Borra la CustomDomain especificada.

get

Obtiene el CustomDomain especificado.

list

Enumera cada CustomDomain asociado con el sitio de Hosting superior especificado.

patch

Actualiza la CustomDomain especificada.

undelete

Recupera el CustomDomain especificado si se borró de forma no definitiva.