> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basaltic.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Referencias de recursos

> Elija un UUID, CRN o nombre de ámbito y obtenga el recurso canónico.

Utilice el campo de referencia declarado por la operación, como `image`, `volume`, `vpc` o `iam_role`. Cuando se admite, el mismo campo acepta un UUID, un nombre de recurso de la nube (CRN) o un nombre. La descripción de la API de cada campo define sus tipos y alcance aceptados; un recurso que tiene un nombre no significa que todas las operaciones puedan resolver ese nombre.

<a id="how-a-reference-is-classified" />

## Cómo se clasifica una referencia

La clasificación utiliza la sintaxis de entrada, antes de buscar un recurso:

1. Un prefijo literal, sensible a mayúsculas y minúsculas `crn:` selecciona el análisis CRN. Un CRN mal formado es un error; nunca se vuelve a intentar como nombre.
2. Un UUID de 36 caracteres en forma hexadecimal `8-4-4-4-12` selecciona la búsqueda de UUID. Las letras hexadecimales pueden ser mayúsculas o minúsculas.
3. Todo lo demás selecciona la validación de nombres y la búsqueda para ese tipo de recurso.

Las entradas no se recortan. Un UUID o CRN que falta nunca se vuelve a intentar como nombre. Los nombres de recursos no pueden comenzar con `crn:` o usar una ortografía UUID, incluyendo ortografías compactas, entre corchetes y URN UUID. Cada servicio también aplica su propia sintaxis de nombres. Estas formas reservadas mantienen los nombres separados de los identificadores.

<a id="canonical-identities" />

## Identidades canónicas

Una referencia elige un recurso existente. Las respuestas devuelven su identidad canónica, no la ortografía que envió. Los enlaces de relación conservan el UUID resuelto; reutilizar el nombre de un recurso eliminado no redirige un enlace existente.

Un CRN tiene esta forma:

```text theme={null}
crn:<service>:<region>:<account>:<type>/<identity>
```

La ranura de cuenta es un identificador de cuenta. Los servicios globales tienen una ranura de región vacía. Los recursos de IAM de ámbito de organización tienen ranuras de región y cuenta vacías; el contexto de la organización sigue limitando el acceso. El texto idéntico de CRN de IAM en dos organizaciones no otorga acceso entre organizaciones. Los tipos de instancia regionales, las imágenes de plataforma y los valores predeterminados compartidos usan el espacio de cuenta `platform`.

Para cada recurso con un nombre único elegido por el usuario, ese nombre es su identidad CRN. Los nombres y por lo tanto los CRN son inmutables. Una etiqueta de visualización mutable es una propiedad independiente: los nombres de usuario y organización de IAM, los nombres de visualización de cuentas y las etiquetas de clave de seguridad no se convierten en identidades de referencia basadas en nombres. La identidad de la cuenta utiliza su identificador inmutable.

Los recursos sin un nombre único elegido por el usuario usan identidades UUID donde exponen CRN de recursos. Entre los ejemplos se incluyen IP flotantes, registros DNS, copias de seguridad de bases de datos, escuchas y reglas de equilibrador de carga, usuarios y organizaciones de IAM, credenciales, eventos de auditoría y registros de facturación. El nombre de propietario de un registro DNS es un dato de protocolo y puede aparecer en varios registros. Una etiqueta de copia de seguridad o una dirección IP flotante no es una referencia de nombre de recurso. Las versiones secretas numeradas y los tokens de catálogo/protocolo siguen el contrato explícito de su punto final.

<a id="parent-scoped-crns" />

## CRNs de alcance parental

Un hijo anexa un par tipo/identidad al CRN completo de su padre. El CRN padre es un prefijo literal, preservando cada ancestro:

```text theme={null}
crn:network:sa-saopaulo-1:my-account:vpc/production
crn:network:sa-saopaulo-1:my-account:vpc/production/subnet/private
crn:network:sa-saopaulo-1:my-account:vpc/production/subnet/private/interface/app
crn:storage:sa-saopaulo-1:my-account:volume/data/snapshot/daily
crn:database:sa-saopaulo-1:my-account:cluster/app/backup/550e8400-e29b-41d4-a716-446655440000
```

La cadena distingue a los niños con el mismo nombre bajo diferentes padres. Proporcione el origen completo; un nombre de subred o instantánea plano en un CRN no es una identidad secundaria completa. Los hijos con nombre usan nombres; los hijos sin nombre usan sus UUID en la misma cadena. Las políticas en línea de IAM añaden `inline-policy/<name>` a su CRN principal.

Las cargas útiles de protocolo tienen excepciones explícitas a los pares estructurales: las claves de objeto de bucket siguen siendo claves opacas que contienen barras oblicuas después del nombre del bucket, y los nombres de log-group pueden contener barras oblicuas. Las expresiones de comodín de directiva son patrones de directiva, no referencias de solicitud concretas.

<a id="resource-paths" />

## Rutas de recursos

Usa el UUID devuelto en una ruta de recurso declarada como un UUID, como `GET /v1/instances/{instance_id}`. No ponga un nombre o CRN con barras en esa ruta. Las rutas de protocolo, incluidos los nombres de depósito y los nombres de usuario/base de datos de la base de datos, conservan los tipos de parámetros mostrados por sus operaciones.

<a id="resolution-scopes" />

## Ámbitos de resolución

| Referencia de producto | Alcance y límites de la búsqueda |
| - | - |
| Instancias, grupos, volúmenes, VPC, grupos de seguridad, puertas de enlace, claves, secretos y grupos de registro | La cuenta autenticada; los servicios regionales también utilizan la región de servicio. |
| Zonas DNS | Su cuenta, incluso cuando otra cuenta tiene una zona con el mismo nombre DNS. La verificación de propiedad controla los derechos de entrega por separado. |
| Asociaciones de VPC DNS | Un UUID o CRN de VPC de propiedad de la cuenta en la región configurada del servicio DNS. No se aceptan nombres de VPC sin contenido para solicitudes de asociación. La lista de asociaciones puede filtrar los nombres de las VPC ya asociadas. |
| Roles de IAM, cuentas de servicio y directivas de cuenta | La cuenta seleccionada. Un nombre de directiva sin contenido prefiere una directiva de cuenta, y luego una directiva de sistema compartido. Un `crn:iam:::policy/<Name>` explícito selecciona solo el espacio de nombres del sistema. |
| Usuarios de espacio de trabajo, grupos y políticas de organización | La organización autenticada. Los CRN incluyen su UUID. Un nombre de directiva de organización sin contenido prefiere una directiva de organización personalizada, y luego una directiva de sistema de espacio de trabajo. |
| Cuentas de usuario | El identificador inmutable de una cuenta autorizada, UUID o CRN de la cuenta donde se declaró. Un nombre para mostrar no identifica una cuenta. |
| Tipos de instancia | El catálogo regional, con la ranura de cuenta CRN de `platform`. |
| Grupos de parámetros | Su cuenta, luego los valores predeterminados de la plataforma para un nombre simple; un CRN de plataforma selecciona solo el grupo de plataforma. |
| Subredes y tablas de rutas | Su VPC. Una solicitud debe suministrar o derivar ese padre para usar un nombre desnudo. |
| Interfaz de usuario | Su ascendencia de subred y VPC. Un adjunto de interfaz existente sin un padre de subred requiere UUID o CRN anidado completo. |
| Instantáneas de la semana | Su volumen de origen. La creación de volúmenes desde `source_snapshot` no proporciona un ámbito de volumen de origen, así que use UUID o CRN de volumen/snapshot completo. |
| Usuarios de bases de datos y bases de datos | El clúster en la ruta de la operación. |

Las solicitudes de red de cómputo y base de datos no proporcionan la VPC necesaria para una búsqueda de subred desnuda. Utilice un UUID de subred o un CRN anidado completo. La creación de un balanceador de carga proporciona una VPC y puede resolver un nombre de subred en ella. Una actualización de subred puede derivar su VPC de la subred de propiedad. Una referencia nunca evita las comprobaciones de propiedad, pertenencia a la familia principal, disponibilidad, confianza o permisos.

Los CRN de certificados usan una ranura de región vacía aunque las solicitudes de certificados usan un extremo regional. Copia los CRN de respuesta canónica en lugar de inferir su ámbito a partir de un nombre de host.

<a id="image-names-and-versions" />

## Nombres y versiones de imágenes

Los campos de referencia de imagen admiten estos formularios:

| Formulario de contacto | Selección de artículos |
| - | - |
| UUID | Que la imagen visible se construye. |
| `debian-13` | La compilación activa actual para la arquitectura solicitada. |
| `debian-13:20260712-2537` | Esa versión para la arquitectura solicitada. La versión es ilustrativa; seleccione una de las que le devuelve el catálogo de imágenes. |
| `crn:compute:sa-saopaulo-1:platform:image/debian-13/architecture/amd64/version/20260712-2537` | El propietario exacto, nombre de la imagen, arquitectura y versión en el CRN. |

Las búsquedas de nombre y `name:version` usan la arquitectura de la solicitud, por defecto `amd64` cuando se omite. Un CRN proporciona su propia arquitectura y versión; un UUID ya identifica una compilación. Los nombres consideran las imágenes de tu cuenta y plataforma pública. Entre las coincidencias utilizables, su cuenta gana sobre la plataforma. Un CRN explícito selecciona solo al propietario declarado. Las imágenes de otro cliente e imágenes de plataforma privada no están disponibles para usted, incluso si conoce sus UUID.

Un nombre actual puede seleccionar una versión más reciente en una solicitud posterior. Un UUID, etiqueta de versión o CRN completo fija una compilación; las plantillas de grupo de instancias almacenan el UUID de imagen resuelto. La retirada no redirige una referencia fija a un reemplazo. Una imagen retirada devuelve `IMAGE_NOT_FOUND`; cuando la información de fin de vida está disponible, su mensaje explica la retirada. Las coincidencias visibles utilizables tienen prioridad sobre los diagnósticos de retirada. Tratar el código de error como estable y el mensaje como texto para una persona.

<a id="errors-and-protocol-boundaries" />

## Errores y límites de protocolo

Para la resolución de relaciones, la sintaxis malformada, un tipo de referencia no compatible, un servicio/tipo incorrecto o un ancestro incompleto produce un error de validación. El resolutor compartido también rechaza una región incorrecta como entrada no válida. Un objetivo o cuenta extranjera que falta se informa como no encontrado. Los servicios conservan sus códigos documentados específicos de recursos y errores de permisos; inspeccione las respuestas de error de la operación. No intente otra referencia después de un error.

Un filtro de colección exacta es un selector, no una búsqueda de relación. Un CRN extranjero válido o no coincidente no selecciona filas. Los CRN malformados o vacíos devuelven 400; los detalles de validación específicos del punto final se enumeran a continuación. Un resultado vacío no es un intento fallido de resolver un nombre.

Los parámetros de región usan códigos de región como `sa-saopaulo-1`, no UUIDs, CRNs o nombres de visualización. Los selectores de `resource` y `actor` de auditoría buscan instantáneas históricas de UUID/CRN sin requerir que el objetivo siga existiendo; los nombres nudos no son referencias históricas. El `crn` de la colección de auditoría selecciona el evento en sí.

Las claves de objeto, los tokens de carga/versión, el contenido de registro DNS, los identificadores de cliente OAuth, los identificadores de traza/rango, los nombres de métrica, las etiquetas de flujo de registro y los destinos IP literales conservan su significado de protocolo. Los campos de referencia de KMS y de grupo de registro siguen siguiendo sus contratos de recursos declarados. En particular, el marcador de posición AES256 del cifrado de depósito de S3 no implica compatibilidad con un destino KMS.

<a id="exact-lists" />

## Listas exactas

Cuando se declaran, `name` y `crn` son predicados exactos combinados con **AND**, con propiedad, padre y otros filtros aplicados antes de la paginación. `name=web-*` no significa una búsqueda por prefijo. Un filtro omitido difiere de uno explícitamente vacío: `name=` retiene un predicado vacío, y `crn=` sigue la validación específica del punto final a continuación. Nunca elimine un filtro vacío y vuelva a intentarlo, porque eso ampliaría la solicitud.

Las listas de nombres de subred de nivel superior y de tabla de rutas requieren `vpc`; las listas de nombres de interfaz requieren `subnet` (y `vpc` cuando esa subred es un nombre desnudo). Las listas de nombres de instantáneas requieren `volume`. Un CRN hijo completo proporciona su propio origen, pero cualquier filtro padre adicional debe estar de acuerdo. Las listas de NIC de instancia en su lugar coinciden con los nombres de interfaz dentro de los enlaces de esa instancia, por lo que los nombres duplicados de diferentes subredes pueden producir múltiples coincidencias.

Un selector de nombre declarado no necesita identificar un recurso único. Las listas de nombres para mostrar de IAM, los nombres de propietarios de registros DNS y los nombres de imágenes en diferentes arquitecturas/versiones pueden coincidir con varias filas. Los nombres de zona DNS se escriben en minúsculas para la coincidencia. Las listas de recursos sin nombre que declaran `name` no devuelven coincidencias para él: esto incluye IP flotantes, rutas, reglas de grupo de seguridad, copias de seguridad de bases de datos y recursos secundarios de balanceador de carga. Los catálogos de motores de base de datos/parámetros no tienen CRN de recursos y no coinciden con ningún selector de CRN; los nombres de los tipos de volumen de almacenamiento son etiquetas de visualización exactas (`SSD`, `NVMe`), con CRN de catálogo basados en tokens. Las versiones secretas exponen CRNs secundarios numerados y no hay filtro de nombres. `include_deleted` puede hacer que un nombre secreto coincida con múltiples identidades.

<a id="list-validation-details" />

### Detalles de validación de lista

La sintaxis malformada y los selectores CRN vacíos devuelven 400 en las colecciones de recursos siguientes, incluidos los grupos de registro, IAM, KMS y secretos. Las identidades extranjeras válidas y los predicados de nombre/CRN no coincidentes devuelven una colección vacía, no un error de relación no encontrada. La estricta validación de ascendencia en computación, red, almacenamiento, base de datos, IAM, KMS y secretos también rechaza las cadenas secundarias incompletas. Las listas de registros y certificados DNS analizan primero la sintaxis y tratan un tipo o ascendencia estructuralmente analizable pero incompatible como una coincidencia vacía. Las listas de certificados rechazan un segmento de nombre de certificado no válido. Las listas de versiones secretas rechazan números de versión no válidos, incluyendo números cero y no canónicos como `01`.

La autorización de ruta principal sigue aplicándose a las listas anidadas. Los selectores exactos no convierten un padre inaccesible en una colección vacía exitosa.

<a id="collection-operations" />

### Operaciones de cobro

Cada enlace a continuación da los parámetros exactos de la operación, la forma de respuesta y el contrato de paginación. “Protocolo” significa usar los selectores documentados de esa operación; no tiene un par genérico de recursos `name`/`crn`.

| Servicio de mantenimiento | Operación de cobro | Selectores de identidad |
| - | - | - |
| auditoría | [GET `/v1/audit-logs`](/es/api-reference/audit-logs/list-audit-logs) | `crn` |
| facturación | [GET `/v1/prices`](/es/api-reference/billing/list-catalog-prices) | Protocolo |
| facturación | [GET `/v1/invoices`](/es/api-reference/billing/list-invoices) | `crn` |
| facturación | [GET `/v1/credits`](/es/api-reference/billing/list-credit-grants) | `crn` |
| facturación | [GET `/v1/transactions`](/es/api-reference/billing/list-ledger-transactions) | `crn` |
| facturación | [GET `/v1/payments`](/es/api-reference/billing/list-invoice-payments) | `crn` |
| certificado de calidad | [GET `/v1/certificates`](/es/api-reference/certificates/list-certificates) | `name`, `crn` |
| compute | [GET `/v1/instances`](/es/api-reference/compute/list-instances) | `name`, `crn` |
| compute | [GET `/v1/instances/{instance_id}/nics`](/es/api-reference/compute/list-the-instances-network-interfaces) | `name`, `crn` |
| compute | [GET `/v1/instances/{instance_id}/volumes`](/es/api-reference/compute/list-the-instances-attached-volumes) | `name`, `crn` |
| compute | [GET `/v1/instance-pools`](/es/api-reference/compute/list-instance-pools) | `name`, `crn` |
| compute | [GET `/v1/instance-pools/{pool_id}/instances`](/es/api-reference/compute/list-a-pools-instances) | `name`, `crn` |
| compute | [GET `/v1/instance-pools/{pool_id}/floating-ips`](/es/api-reference/compute/list-the-pools-shared-public-addresses) | `name`, `crn` |
| compute | [GET `/v1/flavors`](/es/api-reference/compute/list-flavors) | `name`, `crn` |
| compute | [GET `/v1/images`](/es/api-reference/images/list-images) | `name`, `crn` |
| dns | [GET `/v1/zones`](/es/api-reference/dns/list-zones) | `name`, `crn` |
| dns | [GET `/v1/zones/{zone_id}/vpc-associations`](/es/api-reference/dns/list-vpc-associations) | `name`, `crn` |
| dns | [GET `/v1/zones/{zone_id}/records`](/es/api-reference/dns/list-records) | `name`, `crn` |
| iam | [GET `/v1/regions`](/es/api-reference/regions/list-regions) | `name`, `crn` |
| iam | [GET `/v1/service-accounts`](/es/api-reference/iam/list-service-accounts) | `name`, `crn` |
| iam | [GET `/v1/service-accounts/{service_account_id}/credentials`](/es/api-reference/iam/list-credentials) | `name`, `crn` |
| iam | [GET `/v1/service-accounts/{service_account_id}/policies`](/es/api-reference/iam/list-service-account-policies) | `name`, `crn` |
| iam | [GET `/v1/roles`](/es/api-reference/iam/list-roles) | `name`, `crn` |
| iam | [GET `/v1/roles/{role_id}/policies`](/es/api-reference/iam/list-role-policies) | `name`, `crn` |
| iam | [GET `/v1/policies`](/es/api-reference/iam/list-policies) | `name`, `crn` |
| iam | [GET `/v1/policies/{policy_id}/service-accounts`](/es/api-reference/iam/list-service-accounts-with-policy) | `name`, `crn` |
| iam | [GET `/v1/policies/{policy_id}/roles`](/es/api-reference/iam/list-roles-with-policy) | `name`, `crn` |
| iam | [GET `/v1/sts-sessions`](/es/api-reference/iam/list-sts-sessions) | `name`, `crn` |
| iam | [GET `/v1/service-accounts/{service_account_id}/inline-policies`](/es/api-reference/iam/list-a-service-accounts-inline-policies) | `name`, `crn` |
| iam | [GET `/v1/roles/{role_id}/inline-policies`](/es/api-reference/iam/list-a-roles-inline-policies) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/organizations`](/es/api-reference/organizations/list-organizations) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/accounts`](/es/api-reference/accounts/list-accounts) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/invitations`](/es/api-reference/workspace/list-invitations) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/users`](/es/api-reference/workspace/list-users) - ¿Quién escribió? | `name`, `crn` |
| espacio de trabajo | [GET `/v1/users/{user_id}/policies`](/es/api-reference/workspace/list-user-policies) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/users/{user_id}/groups`](/es/api-reference/workspace/list-user-groups) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/service-accounts/{service_account_id}/policies`](/es/api-reference/workspace/list-service-account-policies) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/groups`](/es/api-reference/workspace/list-groups) - ¿Quién escribió? | `name`, `crn` |
| espacio de trabajo | [GET `/v1/groups/{group_id}/users`](/es/api-reference/workspace/list-group-users) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/groups/{group_id}/policies`](/es/api-reference/workspace/list-group-policies) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/roles/{role_id}/policies`](/es/api-reference/workspace/list-role-policies) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/policies`](/es/api-reference/workspace/list-policies) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/policies/{policy_id}/users`](/es/api-reference/workspace/list-users-with-policy) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/policies/{policy_id}/service-accounts`](/es/api-reference/workspace/list-service-accounts-with-policy) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/policies/{policy_id}/groups`](/es/api-reference/workspace/list-groups-with-policy) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/policies/{policy_id}/roles`](/es/api-reference/workspace/list-roles-with-policy) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/users/{user_id}/inline-policies`](/es/api-reference/workspace/list-a-users-inline-policies) | `name`, `crn` |
| espacio de trabajo | [GET `/v1/groups/{group_id}/inline-policies`](/es/api-reference/workspace/list-a-groups-inline-policies) | `name`, `crn` |
| kms | [GET `/v1/keys`](/es/api-reference/kms/list-kms-keys) | `name`, `crn` |
| balanceador de carga | [GET `/v1/load-balancers`](/es/api-reference/load-balancers/list-load-balancers) | `name`, `crn` |
| balanceador de carga | [GET `/v1/load-balancers/{id}/replicas`](/es/api-reference/load-balancers/list-the-lbs-instance-replicas-with-live-health) | `name`, `crn` |
| balanceador de carga | [GET `/v1/load-balancers/{id}/listeners`](/es/api-reference/load-balancers/list-this-load-balancers-listeners) | `name`, `crn` |
| balanceador de carga | [GET `/v1/load-balancers/{id}/listeners/{listener_id}/rules`](/es/api-reference/load-balancers/list-this-listeners-rules) | `name`, `crn` |
| balanceador de carga | [GET `/v1/target-groups`](/es/api-reference/load-balancers/list-target-groups) | `name`, `crn` |
| balanceador de carga | [GET `/v1/target-groups/{id}/targets`](/es/api-reference/load-balancers/list-targets-in-this-group) | `name`, `crn` |
| red de trabajo | [GET `/v1/vpcs`](/es/api-reference/networking/list-vpcs) | `name`, `crn` |
| red de trabajo | [GET `/v1/subnets`](/es/api-reference/networking/list-subnets) | `name`, `crn` |
| red de trabajo | [GET `/v1/interfaces`](/es/api-reference/networking/list-interfaces) | `name`, `crn` |
| red de trabajo | [GET `/v1/route-tables`](/es/api-reference/networking/list-route-tables) | `name`, `crn` |
| red de trabajo | [GET `/v1/route-tables/{route_table_id}/routes`](/es/api-reference/networking/list-routes) | `name`, `crn` |
| red de trabajo | [GET `/v1/floating-ips`](/es/api-reference/networking/list-floating-ips) | `name`, `crn` |
| red de trabajo | [GET `/v1/security-groups`](/es/api-reference/networking/list-security-groups) | `name`, `crn` |
| red de trabajo | [GET `/v1/security-groups/{security_group_id}/rules`](/es/api-reference/networking/list-security-group-rules) | `name`, `crn` |
| red de trabajo | [GET `/v1/interfaces/{interface_id}/security-groups`](/es/api-reference/networking/list-interface-security-group-membership) | `name`, `crn` |
| red de trabajo | [GET `/v1/internet-gateways`](/es/api-reference/networking/list-internet-gateways) | `name`, `crn` |
| red de trabajo | [GET `/v1/nat-gateways`](/es/api-reference/networking/list-nat-gateways) | `name`, `crn` |
| red de trabajo | [GET `/v1/egress-only-gateways`](/es/api-reference/networking/list-egress-only-gateways) | `name`, `crn` |
| cuota | [GET `/v1/quotas`](/es/api-reference/quota/list-quotas) | Protocolo |
| secretos de la vida | [GET `/v1/secrets`](/es/api-reference/secrets/list-secrets) | `name`, `crn` |
| secretos de la vida | [GET `/v1/secrets/{secret_id}/versions`](/es/api-reference/secrets/list-versions) | `crn` |
| almacenamiento | [GET `/v1/volumes`](/es/api-reference/storage/list-volumes) | `name`, `crn` |
| almacenamiento | [GET `/v1/volume-types`](/es/api-reference/storage/list-volume-types) | `name`, `crn` |
| almacenamiento | [GET `/v1/snapshots`](/es/api-reference/storage/list-snapshots) | `name`, `crn` |
| almacenamiento | [GET `/v1/snapshot-policies`](/es/api-reference/storage/list-snapshot-policies) | `name`, `crn` |
| almacenamiento | [GET `/v1/buckets`](/es/api-reference/buckets/list-buckets) | `name`, `crn` |
| almacenamiento | [GET `/v1/buckets/{bucket}/object-versions`](/es/api-reference/buckets/list-object-versions) | Protocolo |
| almacenamiento | [GET `/v1/buckets/{bucket}/objects`](/es/api-reference/buckets/list-objects) | Protocolo |
| almacenamiento | [GET `/v1/buckets/{bucket}/multipart-uploads`](/es/api-reference/buckets/list-in-flight-multipart-uploads) | Protocolo |
| almacenamiento | [GET `/v1/buckets/{bucket}/multipart-uploads/{upload_id}/parts`](/es/api-reference/buckets/list-uploaded-parts) | Protocolo |
| telemetría | [GET `/v1/log-groups`](/es/api-reference/telemetry/list-log-groups-or-look-up-one-by-name) | `name`, `crn` |
| telemetría | [GET `/v1/logs`](/es/api-reference/telemetry/search-log-records) | Protocolo |
| telemetría | [GET `/v1/metrics/series`](/es/api-reference/telemetry/list-distinct-label-sets-for-a-metric) | Protocolo |
| telemetría | [GET `/v1/metrics/names`](/es/api-reference/telemetry/list-the-distinct-metric-names-emitted-in-a-time-window) | Protocolo |
| telemetría | [GET `/v1/traces`](/es/api-reference/telemetry/list-traces) | Protocolo |

<a id="fetch-one-resource-by-any-reference" />

## Obtener un recurso por cualquier referencia

Clasifica la entrada usando las reglas anteriores. Para un UUID, llama directamente a la operación GET del UUID del recurso. Para un nombre o CRN, consulte su colección con el filtro exacto correspondiente y el ámbito principal requerido. Siga la paginación hasta que pueda establecer si coincide exactamente un recurso. Cero coincidencias significa que no hay coincidencia visible; las coincidencias múltiples requieren un ámbito más específico o un CRN canónico. Nunca elija la primera fila arbitrariamente. Usa el `id` devuelto para llamadas subsiguientes a la ruta UUID. Si ese GET no devuelve nada, el recurso puede haber sido eliminado entre llamadas.

Estos son los destinos de solicitud HTTP; [firmar cada solicitud](/es/authentication) usando tu autenticación normal y contexto de cuenta. Los valores de consulta deben estar codificados en URL.

```http theme={null}
GET /v1/instances/550e8400-e29b-41d4-a716-446655440000
Host: compute.sa-saopaulo-1.basaltic.sh
```

Para el nombre exacto de la instancia `web-01`:

```http theme={null}
GET /v1/instances?name=web-01
Host: compute.sa-saopaulo-1.basaltic.sh
```

Para su CRN, codifica dos puntos y barras en el valor de la consulta:

```http theme={null}
GET /v1/instances?crn=crn%3Acompute%3Asa-saopaulo-1%3Amy-account%3Ainstance%2Fweb-01
Host: compute.sa-saopaulo-1.basaltic.sh
```

Después de exactamente una coincidencia, use el UUID de esa respuesta en
[Obtener una instancia](/es/api-reference/compute/get-instance). Para un nombre de subred, incluya el ámbito de VPC, por ejemplo `/v1/subnets?vpc=production&name=private`; para un nombre de instantánea, utilice `/v1/snapshots?volume=data&name=daily`.

Las etiquetas de relación de imagen no son nombres literales de lista de imágenes: consulte `name` y `architecture` con `all_versions=true`, luego haga coincidir la versión devuelta y aplique la precedencia de llamada/plataforma documentada. No hay parámetro de consulta `version` público. Un CRN de imagen completa selecciona la identidad fijada; use `all_versions=true` cuando busque a través de las compilaciones reemplazadas. Las colecciones de protocolo y los recursos sin un UUID GET usan el propio contrato de recuperación de su operación.

<a id="released-cli" />

### CLI liberada

CLI v0.13.0 acepta una referencia para `get` en recursos con una lista y una operación de obtención. Configure su perfil y la cuenta seleccionada como se describe en [CLI](/es/cli); reemplace las identidades de ejemplo con sus recursos.

```bash theme={null}
basaltic compute instance get 550e8400-e29b-41d4-a716-446655440000
basaltic compute instance get web-01
basaltic compute instance get 'crn:compute:sa-saopaulo-1:my-account:instance/web-01'
basaltic network subnet get private --vpc production
basaltic network subnet get 'crn:network:sa-saopaulo-1:my-account:vpc/production/subnet/private'
basaltic storage snapshot get daily --volume data
```

Un nombre de subred desnudo sin `--vpc` se rechaza con 400, `name requires the resource's parent filter`. Un CRN hijo completo proporciona su ascendencia. Los IDs padres que son argumentos posicionales siguen siendo IDs; use la opción `--help` del comando para sus indicadores de ámbito.

El getter de referencia no cambia otros verbos: `delete`, `start` y otros comandos de toma de ID aún necesitan el ID devuelto. Los indicadores de relación como `instance create --image` tienen sus propios contratos de referencia documentados.

<a id="released-go-sdk" />

### Lanzamiento de Go SDK

Utilice `github.com/basaltic-sh/sdk-go` v0.15.0. Configure las credenciales, la cuenta y la región a través de `BASALTIC_ACCESS_KEY_ID`, `BASALTIC_SECRET_ACCESS_KEY`, `BASALTIC_ACCOUNT_ID` y `BASALTIC_REGION`. Este ejemplo lee la misma instancia por sus tres formas de referencia y lee una subred con su ámbito de VPC:

```go theme={null}
package main

import (
    "context"
    "fmt"
    "log"

    basaltic "github.com/basaltic-sh/sdk-go"
    "github.com/basaltic-sh/sdk-go/compute"
    "github.com/basaltic-sh/sdk-go/network"
)

func main() {
    ctx := context.Background()
    cfg, err := basaltic.NewConfig(ctx)
    if err != nil {
        log.Fatal(err)
    }
    instances := compute.New(cfg)
    for _, ref := range []string{
        "550e8400-e29b-41d4-a716-446655440000",
        "web-01",
        "crn:compute:sa-saopaulo-1:my-account:instance/web-01",
    } {
        instance, err := instances.GetInstanceByReference(ctx, ref, nil)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(instance.ID)
    }
    subnet, err := network.New(cfg).GetSubnetByReference(ctx, "private",
        &network.ListSubnetsParams{VPC: "production"})
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(subnet.ID)
}
```

`GetInstanceByReference` y `GetSubnetByReference` llaman al getter UUID para un UUID y al filtro de colección exacto para un nombre o CRN. No coincidencia es un error no encontrado; múltiples coincidencias producen `AmbiguousReferenceError`. Ninguno de los dos reintenta un tipo de referencia diferente. El argumento final de ámbito puede ser `nil` cuando no se necesita ningún filtro padre o adicional. Utilice el ID devuelto con métodos SDK ordinarios como `GetInstance` y `StartInstance`.

Los clientes lanzados no tienen comandos de base de datos ni paquete de SDK de base de datos. Utilice los ejemplos HTTP de la página de la base de datos para esas operaciones. Las etiquetas de relación de imagen `name:version` no son nombres genéricos de getter; use el procedimiento de lista de imágenes anterior para seleccionar una compilación.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.