Criar uma entrada da lista de acesso para uma chave de API da organização
Cria as entradas da lista de acesso para a chave de API da organização especificada. Os recursos exigem que todas as solicitações de API sejam originadas de endereços IP na lista de acesso à API. Para usar esse recurso, a conta de serviço ou a chave de API solicitante deve ter a role "Leitura e escrita".
parâmetros de caminho
-
24String exclusiva de dígitos hexadecimais que identifica a organização que contém seus projetos. Use o endpoint /orgs para recuperar todas as organizações às quais o usuário autenticado tem acesso.
O formato deve corresponder ao seguinte padrão:
^([a-f0-9]{24})$
. -
String exclusiva de 24 dígitos hexadecimais que identifica essa chave API da organização para a qual você deseja criar uma nova entrada da lista de acesso.
O formato deve corresponder ao seguinte padrão:
^([a-f0-9]{24})$
.
parâmetros de query
-
Sinalizador que indica se o aplicativo empacota a resposta em um objeto JSON
envelope
. Alguns clientes de API não podem acessar os cabeçalhos de resposta HTTP ou o código de status. Para corrigir isso, defina envelope=true na consulta. Os endpoints que retornam uma lista de resultados usam o objeto de resultados como um envelope. O aplicativo adiciona o parâmetro de status ao corpo da resposta.O valor padrão é
false
. -
Sinalizador que indica se a resposta retorna o número total de itens (totalCount) na resposta.
O valor padrão é
true
. -
Número de itens que a resposta retorna por página.
O valor mínimo é
1
, o valor máximo é500
. O valor padrão é100
. -
Número da página que exibe o conjunto atual dos objetos totais que a resposta retorna.
O valor mínimo é
1
. O valor padrão é1
. -
Sinalizador que indica se o corpo da resposta deve estar no formato prettyprint.
O valor padrão é
false
.Prettyprint
corpo, corpo
Obrigatório
As entradas da lista de acesso a serem criadas para a chave API da organização especificada.
-
Faixa de endereços de rede que você deseja adicionar à lista de acesso da chave de API. Esse parâmetro requer que o intervalo seja expresso em notação CIDR (roteamento entre domínios) sem classe de endereços do IPv4 ou IPv6. Você pode definir um valor para esse parâmetro ou ipAddress, mas não ambos na mesma solicitação.
O formato deve corresponder ao seguinte padrão:
^((([0-9]{1,3}\.){3}[0-9]{1,3})|(:{0,2}([0-9a-f]{1,4}:){0,7}[0-9a-f]{1,4}[:]{0,2}))((%2[fF]|/)[0-9]{1,3})+$
. -
Endereço de rede que você deseja adicionar à lista de acesso para a chave API. Esse parâmetro requer que o endereço seja expresso como um endereço do protocolo Internet versão 4 ou versão 6. Você pode definir um valor para esse parâmetro ou cidrBlock, mas não ambos na mesma solicitação.
O formato deve corresponder ao seguinte padrão:
^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}|([0-9a-f]{1,4}:){7}[0-9a-f]{1,4}$
.
atlas api programmaticApiKeys createOrgApiKeyAccessListEntry --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20250312001/admin"
)
func main() {
ctx := context.Background()
clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")
// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))
if err != nil {
log.Fatalf("Error: %v", err)
}
params = &sdk.CreateOrgApiKeyAccessListEntryApiParams{}
sdkResp, httpResp, err := client.ProgrammaticAPIKeysApi.
CreateOrgApiKeyAccessListEntryWithParams(ctx, params).
Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/apiKeys/{apiUserId}/accessList" \
-d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
--digest --include \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/apiKeys/{apiUserId}/accessList" \
-d '{ <Payload> }'
[
{
"cidrBlock": "203.0.113.0/24",
"ipAddress": "203.0.113.10"
}
]
{
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"results": [
{
"cidrBlock": "203.0.113.0/24",
"count": 42,
"created": "2025-05-04T09:42:00Z",
"ipAddress": "203.0.113.10",
"lastUsed": "2025-05-04T09:42:00Z",
"lastUsedAddress": "203.0.113.10",
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
]
}
],
"totalCount": 42
}
{
"error": 400,
"detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
"reason": "Bad Request",
"errorCode": "VALIDATION_ERROR"
}
{
"error": 401,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Unauthorized",
"errorCode": "NOT_ORG_GROUP_CREATOR"
}
{
"error": 403,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Forbidden",
"errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
{
"error": 404,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
"reason": "Not Found",
"errorCode": "RESOURCE_NOT_FOUND"
}
{
"error": 409,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot delete organization link while there is active migration in following project ids: 60c4fd418ebe251047c50554",
"reason": "Conflict",
"errorCode": "CANNOT_DELETE_ORG_ACTIVE_LIVE_MIGRATION_ATLAS_ORG_LINK"
}
{
"error": 500,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Internal Server Error",
"errorCode": "UNEXPECTED_ERROR"
}