Endpoint de pacotes
As ferramentas de sandbox permitem selecionar diferentes artefatos (também conhecidos como objetos) e exportá-los em um pacote. Um pacote pode consistir em um único artefato ou em vários artefatos (como conjuntos de dados ou esquemas). Todos os artefatos incluídos em um pacote devem ser da mesma sandbox.
O ponto de extremidade /packages
na API de ferramentas da sandbox permite gerenciar de forma programática os pacotes em sua organização, incluindo a publicação de um pacote e a importação de um pacote para uma sandbox.
Criar um pacote create
Você pode criar um pacote de vários artefatos fazendo uma solicitação POST para o ponto de extremidade /packages
e fornecendo valores para o nome e o tipo do pacote.
Formato da API
POST /packages/
Solicitação
curl -X POST \
https://platform.adobe.io/data/foundation/exim/packages \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d'{
"name": "acme",
"description": "Acme Business Group",
"packageType": "PARTIAL",
"sourceSandbox": {
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
},
"expiry": "2023-05-20T20:05:10Z",
"artifacts": [
{
"id": "27115daa-c92b-4f17-a077-d65ffeb0c525",
"type": "PROFILE_SEGMENT",
"title": "Acme Profile Segment"
}
]
}'
name
description
packageType
sourceSandbox
expiry
artifacts
artifacts
deve ser nulo ou vazio, quando packageType
for FULL
.Resposta
Uma resposta bem-sucedida retorna o pacote recém-criado. A resposta inclui a ID do pacote correspondente, bem como informações sobre status, expiração e lista de artefatos.
{
"id": "209f886b00444eac9bb5836fe32e7681",
"version": 0,
"createdDate": 1684475012105,
"modifiedDate": 1684475012105,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"tenantId": "c875b077162b40409c1327b16da99c1b",
"requestId": "devxa54a6b56d04f46119d9e3cc006fcc1cb",
"userId": "platform_exim",
"name": "acme",
"description": "Acme Business Group",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg",
"sourceSandbox": {
"name": "cjm-mr",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
},
"packageType": "PARTIAL",
"expiry": 1684613110000,
"status": "DRAFT",
"artifactsList": [
{
"id": "d8d8ed6d-696a-40bd-b4fe-ca053ec94e29",
"type": "JOURNEY",
"found": false,
"count": 0
}
]
}
Atualizar um pacote update
Você pode atualizar um pacote fazendo uma solicitação PUT para o ponto de extremidade /packages
.
Adicionar artefatos a um pacote add-artifacts
Para adicionar artefatos a um pacote, você deve fornecer um id
e incluir ADD para o action
.
Formato da API
PUT /packages/
Solicitação
curl -X PUT \
https://platform.adobe.io/data/foundation/exim/packages \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d'{
"id": "6fa50baedd344a278129a87e68cc9dc7",
"action": "ADD",
"expiry": "2023-05-20T20:05:10Z",
"artifacts": [
{
"id": "d8d8ed6d-696a-40bd-b4fe-ca053ec94e29@1647559351683",
"type": "JOURNEY"
}
]
}'
id
action
artifacts
expiry
Os seguintes tipos de artefatos são suportados no momento.
JOURNEY
ID_NAMESPACE
REGISTRY_DATATYPE
REGISTRY_CLASS
REGISTRY_MIXIN
REGISTRY_SCHEMA
CATALOG_DATASET
DULE_CONSENT_POLICY
PROFILE_SEGMENT
FLOW
Resposta
Uma resposta bem-sucedida retorna o pacote atualizado. A resposta inclui a ID do pacote correspondente, bem como informações sobre status, expiração e lista de artefatos.
{
"id": "6fa50baedd344a278129a87e68cc9dc7",
"version": 4,
"createdDate": 1684235842000,
"modifiedDate": 1684475861366,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"tenantId": "c875b077162b40409c1327b16da99c1b",
"name": "acme",
"description": "Acme Business Group",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg",
"sourceSandbox": {
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
},
"packageType": "PARTIAL",
"expiry": 1692251861352,
"status": "DRAFT",
"artifactsList": [
{
"id": "d8d8ed6d-696a-40bd-b4fe-ca053ec94e29@1647559351683",
"type": "JOURNEY",
"found": false,
"count": 0
},
{
"id": "d8d8ed6d-696a-40bd-b4fe-ca053ec94e29",
"type": "JOURNEY",
"found": false,
"count": 0
}
]
}
Excluir artefatos de um pacote delete-artifacts
Para excluir artefatos de um pacote, você deve fornecer um id
e incluir DELETE para o action
.
Formato da API
PUT /packages/
Solicitação
curl -X PUT \
https://platform.adobe.io/data/foundation/exim/packages \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d'{
"id": "6fa50baedd344a278129a87e68cc9dc7",
"action": "DELETE",
"artifacts": [
{
"id": "d8d8ed6d-696a-40bd-b4fe-ca053ec94e29@1647559351683",
"type": "JOURNEY"
}
]
}'
id
action
artifacts
Resposta
Uma resposta bem-sucedida retorna o pacote atualizado. A resposta inclui a ID do pacote correspondente, bem como informações sobre status, expiração e lista de artefatos.
{
"id": "6fa50baedd344a278129a87e68cc9dc7",
"version": 5,
"createdDate": 1684235842000,
"modifiedDate": 1684478830416,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"tenantId": "c875b077162b40409c1327b16da99c1b",
"name": "acme",
"description": "Acme Business Group",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg",
"sourceSandbox": {
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
},
"packageType": "PARTIAL",
"expiry": 1692254830403,
"status": "DRAFT",
"artifactsList": [
{
"id": "d8d8ed6d-696a-40bd-b4fe-ca053ec94e29",
"type": "JOURNEY",
"found": false,
"count": 0
}
]
}
Atualizar campos de metadados em um pacote update-metadata
Para atualizar os campos de metadados em um pacote, você deve fornecer um id
e incluir UPDATE para o action
.
Formato da API
PUT /packages/
Solicitação
curl -X PUT \
https://platform.adobe.io/data/foundation/exim/packages \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d'{
"id": "6fa50baedd344a278129a87e68cc9dc7",
"action": "UPDATE",
"name": "acme",
"description": "Acme Business Group",
"sourceSandbox": {
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
}
}'
id
action
name
sourceSandbox
Resposta
Uma resposta bem-sucedida retorna o pacote atualizado. A resposta inclui a ID do pacote correspondente, bem como informações sobre sua descrição, status, expiração e lista de artefatos.
{
"id": "6fa50baedd344a278129a87e68cc9dc7",
"version": 6,
"createdDate": 1684235842000,
"modifiedDate": 1684479094129,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"tenantId": "c875b077162b40409c1327b16da99c1b",
"name": "acme",
"description": "Acme Business Group",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg",
"sourceSandbox": {
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
},
"packageType": "PARTIAL",
"expiry": 1692255094127,
"status": "DRAFT",
"artifactsList": [
{
"id": "d8d8ed6d-696a-40bd-b4fe-ca053ec94e29",
"type": "JOURNEY",
"found": false,
"count": 0
}
]
}
Excluir um pacote delete
Para excluir um pacote, faça uma solicitação DELETE para o ponto de extremidade /packages
e especifique a ID do pacote que deseja excluir.
Formato da API
DELETE /packages/{PACKAGE_ID}
{PACKAGE_ID}
Solicitação
A solicitação a seguir exclui o pacote com a ID {PACKAGE_ID}.
curl -X DELETE \
https://platform.adobe.io/data/foundation/exim/packages/{PACKAGE_ID} \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
Resposta
Uma resposta bem-sucedida retorna um motivo que mostra a ID do pacote excluída.
{
"reason": "Package d30e0424a37b46ada6a5cf37f47a86ff deleted"
}
Publish um pacote publish
Para habilitar a importação de um pacote em uma sandbox, você deve publicá-lo. Faça uma solicitação GET para o ponto de extremidade /packages
ao especificar a ID do pacote que você deseja publicar.
Formato da API
GET /packages/{PACKAGE_ID}/export
{PACKAGE_ID}
Solicitação
A solicitação a seguir publica o pacote com a ID {PACKAGE_ID}.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/packages/{PACKAGE_ID}\export \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
expiryPeriod
Se nenhum valor for especificado, o padrão será calculado como 90 (dias) a partir da data de publicação.
Resposta
Uma resposta bem-sucedida retorna o pacote publicado.
{
"name": "acme",
"description": "Acme Business Group",
"visibility": "TENANT",
"sourceSandbox":
{
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
},
"type": "PARTIAL",
"correlationId": "48effe5e-1bef-4250-9c71-23b93ef5d285"
}
Pesquisar um pacote look-up-package
Você pode pesquisar um pacote individual fazendo uma solicitação GET para o ponto de extremidade /packages
que inclui a ID correspondente do pacote no caminho da solicitação.
Formato da API
GET /packages/{PACKAGE_ID}
{PACKAGE_ID}
Solicitação
A solicitação a seguir recupera informações de {PACKAGE_ID}.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/packages/{PACKAGE_ID} \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
Resposta
Uma resposta bem-sucedida retorna detalhes da ID de pacote consultada. A resposta inclui o nome, a descrição, a data de publicação e a data de expiração, a sandbox de origem do pacote, bem como uma lista de artefatos.
{
"id": "8f585fad94d042cd82dbcba594108a41",
"version": 2,
"createdDate": 1685597784000,
"modifiedDate": 1685597810000,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"tenantId": "c875b077162b40409c1327b16da99c1b",
"name": "acme",
"description": "Acme Business Group",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg",
"packageType": "PARTIAL",
"expiry": 1693373810000,
"publishDate": 1685597810000,
"status": "PUBLISHED",
"artifactsList": [
{
"id": "f4f57771-2bd2-469a-9c13-8d803eeb6515",
"type": "JOURNEY",
"found": false,
"count": 0
},
{
"id": "7f4caca7-a477-400d-a41e-c4735f8e780d",
"type": "JOURNEY",
"found": false,
"count": 0
}
],
"sourceSandbox": {
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
}
}
Listar pacotes list-packages
Você pode listar todos os pacotes em sua organização fazendo uma solicitação GET para o ponto de extremidade /packages
.
Formato da API
GET /packages/?{QUERY_PARAMS}
{QUERY_PARAMS}
Solicitação
A solicitação a seguir recupera informações dos pacotes com base em {QUERY_PARAMS}.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/packages/?property=status==DRAFT,PUBLISHED&property=createdDate>=2023-05-11T18:29:59.999Z&property=createdDate<=2023-05-16T18:29:59.999Z&start=0&orderby=-createdDate&limit=20 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
Resposta
Uma resposta bem-sucedida retorna uma lista de pacotes pertencentes à sua organização, incluindo detalhes como nome, status, expiração e lista de artefatos.
{
"totalElements": 109,
"currentPage": 0,
"totalPages": 6,
"hasPreviousPage": false,
"hasNextPage": true,
"data": [
{
"id": "8f585fad94d042cd82dbcba594108a41",
"version": 2,
"createdDate": 1685597784000,
"modifiedDate": 1685597810000,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"tenantId": "c875b077162b40409c1327b16da99c1b",
"name": "acme",
"description": "Acme Business Group",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg",
"packageType": "PARTIAL",
"expiry": 1693373810000,
"publishDate": 1685597810000,
"status": "PUBLISHED",
"artifactsList": [
{
"id": "f4f57771-2bd2-469a-9c13-8d803eeb6515",
"type": "JOURNEY",
"found": false,
"count": 0
},
{
"id": "7f4caca7-a477-400d-a41e-c4735f8e780d",
"type": "JOURNEY",
"found": false,
"count": 0
}
],
"sourceSandbox": {
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
}
},
{
"id": "0d7e427ce4cb4dc1b78e30ef61b125c1",
"version": 2,
"createdDate": 1685555213000,
"modifiedDate": 1685555275000,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"tenantId": "7d7d8bbe3c7c4a8ea701cc5e42c57aeb",
"name": "acme",
"description": "Acme Business Group",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg",
"packageType": "PARTIAL",
"expiry": 1693331275000,
"publishDate": 1685555275000,
"status": "PUBLISHED",
"artifactsList": [
{
"id": "626a9669a9f5b818db270e95",
"type": "CATALOG_DATASET",
"found": false,
"count": 0
}
],
"sourceSandbox": {
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
}
}
]
}
Importar um pacote import
Esse ponto de extremidade é usado para buscar os objetos conflitantes na sandbox de destino especificada. Objetos conflitantes representam objetos semelhantes que já estão presentes na sandbox de destino.
Formato da API
GET /packages/{PACKAGE_ID}/import?targetSandbox=targetSandboxName
{PACKAGE_ID}
Solicitação
A solicitação a seguir importa o {PACKAGE_ID}.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/packages/{PACKAGE_ID}/import?targetSandbox=targetSandboxName \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
Resposta
Os conflitos são retornados na resposta. A resposta mostra o pacote original mais o fragmento alternatives
como uma matriz ordenada por classificação.
code language-json |
---|
|
Enviar uma importação submit-import
Você pode enviar uma importação para um pacote depois de ter revisado conflitos e fornecido substituições fazendo uma solicitação POST para o ponto de extremidade /packages
. O resultado é fornecido como uma carga, o que inicia o trabalho de importação para a sandbox de destino, conforme especificado na carga.
A carga também aceita o nome e a descrição do trabalho especificado pelo usuário para o trabalho de importação. Se o nome e a descrição especificados pelo usuário não estiverem disponíveis, o nome e a descrição do pacote serão usados para o nome e a descrição do trabalho.
Formato da API
POST /packages/import
Solicitação
A solicitação a seguir recupera pacotes a serem importados. A carga é um mapa de substituições em que, se existir uma entrada, a chave é o artifactId
fornecido pelo pacote, e a alternativa é o valor. Se o mapa ou conteúdo estiver vazio, nenhuma substituição será executada.
curl -X POST \
https://platform.adobe.io/data/foundation/exim/packages/import/ \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d'{
"id": "09484a599f5f4a5faa43986643964615",
"name": "acme",
"description": "Acme Business Group",
"destinationSandbox": {
"name": "cjm-mr",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
},
"alternatives": {
"https://ns.adobe.com/cjmstage/schemas/ac33bbd22eb4ad6656e1c7e12e9f520261fb39fd28a902a9": {
"id": "https://ns.adobe.com/cjmstage/schemas/a3b935344685afad4e52c753161cf673ec23d4fb1b3e9ce",
"type": "REGISTRY_SCHEMA"
}
}
}'
alternatives
alternatives
representa o mapeamento dos artefatos da sandbox de origem para os artefatos da sandbox de destino existentes. Como já estão lá, o trabalho de importação evita a criação desses artefatos na sandbox de destino.Resposta
{
"name": "acme",
"description": "Acme Business Group",
"visibility": "TENANT",
"sourceSandbox":
{
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
},
"destinationSandbox":
{
"name": "acme-sandbox",
"imsOrgId": "5C1328435BF324E90A49402A@AdobeOrg"
},
"type": "PARTIAL",
"correlationId": "48effe5e-1bef-4250-9c71-23b93ef5d285"
}
Listar todos os objetos dependentes dependent-objects
Liste todos os objetos dependentes dos objetos exportados em um pacote fazendo uma solicitação POST para o ponto de extremidade /packages
ao especificar a ID do pacote.
Formato da API
POST /packages/{PACKAGE_ID}/children
{PACKAGE_ID}
Solicitação
A solicitação a seguir lista todos os objetos dependentes de {PACKAGE_ID}.
curl -X POST \
https://platform.adobe.io/data/foundation/exim/packages/{PACKAGE_ID}/import?targetSandbox=targetSandboxName \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-d'[
{
"id": "4d4c874ec3344d64bf8b3160e60ac78b",
"type": "MAPPING_SET"
},
{
"id": "https://ns.adobe.com/cjmstage/schemas/20121c2110bb2c6a585baabe5f82994577da1f7d0628234c",
"type": "REGISTRY_SCHEMA"
},
{
"id": "https://ns.adobe.com/cjmstage/classes/24c1525f4f06fae2d203c6b78e26ae479ec4541c2c0d6b26",
"type": "REGISTRY_CLASS"
}
]'
Resposta
Uma resposta bem-sucedida retorna uma lista de filhos dos objetos.
[
{
"id": "4d4c874ec3344d64bf8b3160e60ac78b",
"title": "4d4c874ec3344d64bf8b3160e60ac78b",
"type": "MAPPING_SET",
"children": [
{
"id": "https://ns.adobe.com/cjmstage/schemas/20121c2110bb2c6a585baabe5f82994577da1f7d0628234c",
"title": "Dean Dataset 1 - adhoc schema - 1618950408870",
"type": "REGISTRY_SCHEMA"
}
]
},
{
"id": "https://ns.adobe.com/cjmstage/schemas/20121c2110bb2c6a585baabe5f82994577da1f7d0628234c",
"title": "Dean Dataset 1 - adhoc schema - 1618950408870",
"type": "REGISTRY_SCHEMA",
"children": [
{
"id": "https://ns.adobe.com/cjmstage/classes/24c1525f4f06fae2d203c6b78e26ae479ec4541c2c0d6b26",
"title": "Dean Dataset 1 - Adhoc class - 1618950408870",
"type": "REGISTRY_CLASS"
}
]
},
{
"id": "https://ns.adobe.com/cjmstage/classes/24c1525f4f06fae2d203c6b78e26ae479ec4541c2c0d6b26",
"title": "Dean Dataset 1 - Adhoc class - 1618950408870",
"type": "REGISTRY_CLASS",
"children": []
}
]
Verificar permissões com base em função para importar todos os artefatos do pacote role-based-permissions
Você pode verificar se tem permissões para importar artefatos de pacote fazendo uma solicitação GET para o ponto de extremidade /packages
ao especificar a ID do pacote e o nome da sandbox de destino.
Formato da API
GET /packages/preflight/{packageId}?targetSandbox=<sandbox_name
{PACKAGE_ID}
Solicitação
A solicitação a seguir verifica suas permissões para o {PACKAGE_ID} e a sandbox.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/packages/preflight/{PACKAGE_ID}?targetSandbox=<sandbox_name> \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
Resposta
Uma resposta bem-sucedida retorna as permissões de recurso para a sandbox de destino, incluindo uma lista de permissões necessárias, permissões ausentes, tipo de artefato e uma decisão sobre se a criação é permitida.
code language-json |
---|
|
Listar trabalhos de exportação/importação list-jobs
Você pode listar trabalhos atuais de exportação/importação fazendo uma solicitação GET para o ponto de extremidade /packages
.
Formato da API
GET /packages/jobs?{QUERY_PARAMS}
{QUERY_PARAMS}
Solicitação
A solicitação a seguir lista todos os trabalhos de importação bem-sucedidos.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/packages/jobs?property=requestType==IMPORT&property=jobStatus==SUCCESS&orderby=createdDate&start=0&limit=5 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
Resposta
Uma resposta bem-sucedida retorna todos os trabalhos de importação bem-sucedidos.
{
"totalElements": 42,
"currentPage": 0,
"totalPages": 9,
"hasPreviousPage": false,
"hasNextPage": true,
"data": [
{
"id": "3c1b92cf47a246d7bfbe6fd507c5d543",
"name": "acme",
"updated": 1685973675401,
"created": 1685973675401,
"jobType": "NEW",
"packageType": "PARTIAL",
"description": "Acme Business Group",
"jobStatus": "SUCCESS",
"visibility": "TENANT",
"sourceSandBox": "acme-sandbox",
"targetSandbox": "poc",
"createdBy": "{CREATED_BY}"
},
{
"id": "ead59d21405f4184a94dd786a1bf040d",
"name": "acme1",
"updated": 1685986367198,
"created": 1685986367198,
"jobType": "NEW",
"packageType": "PARTIAL",
"description": "Acme Business Group",
"jobStatus": "SUCCESS",
"visibility": "TENANT",
"sourceSandBox": "acme-sandbox",
"targetSandbox": "poc",
"createdBy": "{CREATED_BY}"
},
{
"id": "85ddaa3c2f6c475088167cde7a9d4326",
"name": "acme2",
"updated": 1686147692568,
"created": 1686147692568,
"jobType": "NEW",
"packageType": "PARTIAL",
"description": "Acme Business Group",
"jobStatus": "SUCCESS",
"visibility": "TENANT",
"sourceSandBox": "acme-sandbox",
"targetSandbox": "poc",
"createdBy": "{CREATED_BY}"
},
{
"id": "c49a4fcb31954cbd828ece1da096c8f5",
"name": "acme3",
"updated": 1686148007586,
"created": 1686148007586,
"jobType": "NEW",
"packageType": "PARTIAL",
"description": "Acme Business Group",
"jobStatus": "SUCCESS",
"visibility": "TENANT",
"sourceSandBox": "acme-sandbox",
"targetSandbox": "poc",
"createdBy": "{CREATED_BY}"
},
{
"id": "a3669315baed4cf2af49bf9ce90b8158",
"name": "acme4",
"updated": 1686148651910,
"created": 1686148651910,
"jobType": "NEW",
"packageType": "PARTIAL",
"description": "Acme Business Group",
"jobStatus": "SUCCESS",
"visibility": "TENANT",
"sourceSandBox": "acme-sandbox",
"targetSandbox": "poc",
"createdBy": "{CREATED_BY}"
}
]
}
Compartilhar pacotes entre organizações org-linking
O ponto de extremidade /handshake
na API de ferramentas da sandbox permite que você faça parceria com outras organizações para compartilhar pacotes.
Envio de uma solicitação de compartilhamento send-request
Envie uma solicitação a uma organização parceira de destino para compartilhar aprovação fazendo uma solicitação POST para o ponto de extremidade /handshake/bulkCreate
. Isso é necessário antes de compartilhar pacotes privados.
Formato da API
POST /handshake/bulkCreate
Solicitação
A solicitação a seguir inicia o compartilhamento de aprovação entre uma organização parceira de destino e a organização de origem.
curl -X POST \
https://platform.adobe.io/data/foundation/exim/handshake/bulkCreate \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/json' \
-H 'Authorization: {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"targetIMSOrgIds":["acme@AdobeOrg"],
"sourceIMSDetails":{
"id":"acme@AdobeOrg",
"name":"acme_org"
}
}'
targetIMSOrgIds
sourceIMSDetails
Resposta
Uma resposta bem-sucedida retorna detalhes sobre sua solicitação de compartilhamento.
{
"successfulRequests": {
"acme@AdobeOrg": {
"id": "{ID}",
"version": 0,
"createdDate": 1724938816798,
"modifiedDate": 1724938816798,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"sourceIMSOrgId": "{ORG_ID}",
"targetIMSOrgId": "{TARGET_ID}",
"sourceRegion": "va6",
"sourceIMSOrgName": "{SOURCE_NAME}",
"status": "APPROVAL_PENDING",
"createdByName": "{CREATED_BY}",
"modifiedByName": "{MODIFIED_BY}",
"modifiedByIMSOrgId": "{ORG_ID}",
"statusHistory": "[{\"actionTakenBy\":\"acme@98ff67fa661fdf6549420b.e\",\"actionTakenByName\":\"{NAME}\",\"actionTakenByImsOrgID\":\"{ORG_ID}\",\"action\":\"INITIATED\",\"actionTimeStamp\":1724938816885}]",
"linkingId": "{LINKIND_ID}"
}
},
"failedRequests": {}
}
Aprovação de solicitações de compartilhamento recebidas approve-requests
Aprove as solicitações de compartilhamento das organizações parceiras de destino fazendo uma solicitação POST para o ponto de extremidade /handshake/action
. Após a aprovação, as organizações de parceiros de origem podem compartilhar pacotes privados.
Formato da API
POST /handshake/action
Solicitações
A solicitação a seguir aprova uma solicitação de compartilhamento de uma organização parceira de destino.
curl -X POST \
https://platform.adobe.io/data/foundation/exim/handshake/action \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"linkingID":"{LINKING_ID}",
"status":"APPROVED",
"reason":"Done",
"targetIMSOrgDetails":{
"id":"acme@AdobeOrg",
"name":"acme",
"region":"va7"
}
}'
linkingID
status
reason
targetIMSOrgDetails
Resposta
Uma resposta bem-sucedida retorna detalhes sobre a solicitação de compartilhamento aprovada.
{
"id": "{ID}",
"version": 1,
"createdDate": 1726737474000,
"modifiedDate": 1726737541731,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"sourceIMSOrgId": "{ORG_ID}",
"targetIMSOrgId": "{TARGET_ID}",
"sourceRegion": "va7",
"targetRegion": "va7",
"sourceOrgName": "{SOURCE_ORG}",
"targetOrgName": "{TARGET_ORG}",
"status": "APPROVED",
"createdByName": "{CREATED_BY}",
"modifiedByIMSOrgId": "{MODIFIED_BY}",
"statusHistory": "[{\"actionTakenBy\":\"{ACTION_BY}\",\"actionTakenByName\":\"{NAME}\",\"actionTakenByImsOrgID\":\"acme@AdobeOrg\",\"action\":\"INITIATED\",\"actionTimeStamp\":1726737474450,\"reason\":null},{\"actionTakenBy\":null,\"actionTakenByName\":null,\"actionTakenByImsOrgID\":\"745F37C35E4B776E0A49421B@AdobeOrg\",\"action\":\"APPROVED\",\"actionTimeStamp\":1726737541818,\"reason\":\"Done\"}]",
"linkingId": "{LINKING_ID}"
}
Listar solicitações de compartilhamento de saída/entrada outgoing-and-incoming-requests
Liste as solicitações de compartilhamento de entrada e saída fazendo uma solicitação GET para o ponto de extremidade handshake/list?property=status%3D%3DAPPROVED&requestType=INCOMING
.
Formato da API
POST handshake/list?property=status%3D%3DAPPROVED&requestType=INCOMING
property
APPROVED
, REJECTED
e IN_PROGRESS
.start
0
.limit
20
.orderBy
requestType
INCOMING
ou OUTGOING
.Solicitação
A solicitação a seguir retorna uma lista de todas as solicitações de compartilhamento de entrada e saída.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/handshake/list?property=status%3D%3DAPPROVED&requestType=INCOMING \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id:{ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
Resposta
Uma resposta bem-sucedida retorna uma lista de solicitações de compartilhamento de entrada e saída e seus detalhes.
{
"totalElements": 1,
"currentPage": 0,
"totalPages": 1,
"hasPreviousPage": false,
"hasNextPage": false,
"data": [
{
"id": "{ID}",
"version": 1,
"createdDate": 1724929446000,
"modifiedDate": 1724929617000,
"modifiedBy": "{MODIFIED_BY}",
"sourceIMSOrgId": "{ORG_ID}",
"targetIMSOrgId": "{TARGET_ID}",
"sourceRegion": "va7",
"targetRegion": "va6",
"sourceOrgName": "{SOURCE_ORG}",
"targetOrgName": "{TARGET_ORG}",
"status": "APPROVED",
"createdByName": "{CREATED_BY}",
"modifiedByName": "{MODIFIED_BY}",
"modifiedByIMSOrgId": "{MODIFIED_BY}",
"statusHistory": "[{\"actionTakenBy\":\"{ACTION_BY}\",\"actionTakenByName\":\"{NAME}\",\"actionTakenByImsOrgID\":\"{ORG_ID}\",\"action\":\"INITIATED\",\"actionTimeStamp\":1724929442467,\"reason\":null},{\"actionTakenBy\":null,\"actionTakenByName\":\"{NAME}\",\"actionTakenByImsOrgID\":\"{ORG_ID}\",\"action\":\"APPROVED\",\"actionTimeStamp\":1724929617531,\"reason\":\"Done\"}]",
"linkingId": "{LINKING_ID}"
}
],
"nextPage": null,
"pageSize": null
}
Transferir pacotes
Use o ponto de extremidade /transfer
na API de ferramentas da sandbox para buscar e criar novas solicitações de compartilhamento de pacotes.
Nova solicitação de compartilhamento share-request
Busque um pacote de uma organização de origem publicada e compartilhe-o com uma organização de destino fazendo uma solicitação POST para o ponto de extremidade /transfer
e, ao mesmo tempo, fornecendo a ID do pacote e a ID da organização de destino.
Formato da API
POST /transfer
Solicitação
A solicitação a seguir busca um pacote de organizações de origem e o compartilha com uma organização de destino.
curl -X POST \
https://platform.adobe.io/data/foundation/exim/transfer/ \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"packageId": "{PACKAGE_ID}",
"targets": [
{
"imsOrgId": "{TARGET_IMS_ORG}"
}
]
}'
packageId
targets
Resposta
Uma resposta bem-sucedida retorna detalhes do pacote solicitado e seu status de compartilhamento.
[
{
"id": "{ID}",
"version": 0,
"createdDate": 1726480559313,
"modifiedDate": 1726480559313,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"sourceIMSOrgId": "{ORG_ID}",
"targetIMSOrgId": "{TARGET_ID}",
"packageId": "{PACKAGE_ID}",
"status": "PENDING",
"initiatedBy": "acme@3ec9197a65a86f34494221.e",
"transferDetails": {
"messages": [
"Fetched Package",
"Fetched Manifest"
],
"additionalMetadata": null
},
"requestType": "PRIVATE"
}
]
Buscar uma solicitação de compartilhamento por ID fetch-transfer-by-id
Busque os detalhes de uma solicitação de compartilhamento fazendo uma solicitação GET para o ponto de extremidade /transfer/{TRANSFER_ID}
ao fornecer a ID de transferência.
Formato da API
GET /transfer/{TRANSFER_ID}
{TRANSFER_ID}
Solicitação
A solicitação a seguir busca uma transferência com a ID {TRANSFER_ID}.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/transfer/0c843180a64c445ca1beece339abc04b \
-H 'x-api-key: {API__KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Authorization: Bearer {ACCESS_TOKEN}'
Resposta
Uma resposta bem-sucedida retorna detalhes de uma solicitação de compartilhamento.
{
"id": "{ID}",
"sourceIMSOrgId": "{ORG_ID}",
"sourceOrgName": "{SOURCE_ORG}",
"targetIMSOrgId": "{TARGET_ID}",
"targetOrgName": "{TARGET_ORG}",
"packageId": "{PACKAGE_ID}",
"packageName": "{PACKAGE_NAME}",
"status": "COMPLETED",
"initiatedBy": "{INITIATED_BY}",
"createdDate": 1724442856000,
"transferDetails": {
"messages": [
"Fetched Package",
"Fetched Manifest",
"Tenant Identified",
"Fetched Sandbox Id",
"Fetched Blob Files",
"Message Published to Kafka",
"Completed Transfer"
],
"additionalMetadata": null
},
"requestType": "PRIVATE"
}
Obter lista de compartilhamento transfers-list
Busque uma lista de solicitações de transferência fazendo uma solicitação GET para o ponto de extremidade /transfer/list?{QUERY_PARAMETERS}
, alterando os parâmetros de consulta conforme necessário.
Formato da API
GET `/transfer/list?{QUERY_PARAMETERS}`
property
COMPLETED
, PENDING
, IN_PROGRESS
, FAILED
.start
0
.limit
20
.orderBy
createdDate
.Solicitação
A solicitação a seguir busca uma lista de solicitações de transferência dos parâmetros de pesquisa fornecidos.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/transfer/list?property=status==COMPLETED&start=0&limit=2&orderBy=-createdDate \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Authorization: Bearer {ACCESS_TOKEN}'
Resposta
Uma resposta bem-sucedida retorna uma lista de todas as solicitações de transferência dos parâmetros de pesquisa fornecidos.
{
"totalElements": 43,
"currentPage": 0,
"totalPages": 22,
"hasPreviousPage": false,
"hasNextPage": true,
"data": [
{
"id": "{ID}",
"sourceIMSOrgId": "{ORG_ID}",
"sourceOrgName": "{SOURCE_ORG}",
"targetIMSOrgId": "{TARGET_ID}",
"targetOrgName": "{TARGET_ORG}",
"packageId": "{PACKAGE_ID}",
"packageName": "{PACKAGE_NAME}",
"status": "COMPLETED",
"initiatedBy": "{INITIATED_BY}",
"completedTime": 1726129077000,
"createdDate": 1726129062000,
"transferDetails": {
"messages": [
"Fetched Package",
"Fetched Manifest",
"Tenant Identified",
"Fetched Sandbox Id",
"Fetched Blob Files",
"Message Published to Kafka",
"Completed Transfer",
"Finished with status: COMPLETED"
],
"additionalMetadata": null
},
"requestType": "PRIVATE"
},
{
"id": "{ID}",
"sourceIMSOrgId": "{ORG_ID}",
"sourceOrgName": "{SOURCE_ORG}",
"targetIMSOrgId": "{TARGET_ID}",
"targetOrgName": "{TARGET_ORG}",
"packageId": "{PACKAGE_ID}",
"packageName": "{PACKAGE_NAME}",
"status": "COMPLETED",
"initiatedBy": "{INITIATED_BY}",
"completedTime": 1726066046000,
"createdDate": 1726065936000,
"transferDetails": {
"messages": [
"Fetched Package",
"Fetched Manifest",
"Tenant Identified",
"Fetched Sandbox Id",
"Fetched Blob Files",
"Message Published to Kafka",
"Completed Transfer",
"Finished with status: COMPLETED"
],
"additionalMetadata": null
},
"requestType": "PRIVATE"
}
],
"nextPage": null,
"pageSize": null
}
Atualizar disponibilidade do pacote de privado para público update-availability
Altere um pacote de privado para público fazendo uma solicitação GET para o ponto de extremidade /packages/update
. Por padrão, um pacote é criado com disponibilidade privada.
Formato da API
GET `/packages/update`
Solicitação
A solicitação a seguir altera a disponibilidade de pacotes de privada para pública.
curl -X GET \
http://platform.adobe.io/data/foundation/exim/packages/update \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-type: application/json' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-d '{
"id":"{ID}",
"action":"UPDATE",
"packageVisibility":"PUBLIC"
}'
id
action
packageVisbility
Resposta
Uma resposta bem-sucedida retorna detalhes sobre um pacote e sua visibilidade.
{
"id": "{ID}",
"version": 7,
"createdDate": 1729624618000,
"modifiedDate": 1729658596340,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"name": "acme",
"imsOrgId": "{ORG_ID}",
"packageType": "PARTIAL",
"expiry": 1737434596325,
"status": "PUBLISH_FAILED",
"packageVisibility": "PUBLIC",
"artifactsList": [
{
"id": "{ID}",
"type": "PROFILE_SEGMENT",
"found": false,
"count": 0,
"title": "Acme Profile Segment"
}
],
"schemaMapping": {},
"sourceSandbox": {
"name": "acme-sandbox",
"imsOrgId": "{ORG_ID}",
"empty": false
}
}
Solicitação para importar um pacote público pull-public-package
Importe um pacote de uma organização de origem com disponibilidade pública fazendo uma solicitação POST para o ponto de extremidade /transfer/pullRequest
.
Formato da API
POST /transfer/pullRequest
Solicitação
A solicitação a seguir importará um pacote e definirá sua disponibilidade para public.
curl -X POST \
https://platform.adobe.io/data/foundation/exim/transfer/pullRequest \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"imsOrgId": "{ORG_ID}",
"packageId": "{PACKAGE_ID}"
}'
imsOrgId
packageId
Resposta
Uma resposta bem-sucedida retorna detalhes sobre o pacote público importado.
{
"id": "{ID}",
"version": 0,
"createdDate": 1729658890425,
"modifiedDate": 1729658890425,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}",
"sourceIMSOrgId": "{ORG_ID}",
"targetIMSOrgId": "{TARGET_ID}",
"packageId": "{PACKAGE_ID}",
"status": "PENDING",
"initiatedBy": "{INITIATED_BY}",
"pipelineMessageId": "{MESSAGE_ID}",
"requestType": "PUBLIC"
}
Listar pacotes públicos list-public-packages
Busque uma lista de pacotes com visibilidade pública fazendo uma solicitação GET para o ponto de extremidade /transfer/list?{QUERY_PARAMS}
.
Formato da API
GET /transfer/list?{QUERY_PARAMS}
property
COMPLETED
e FAILED
.start
0
.limit
20
.orderBy
createdDate
.requestType
PUBLIC
ou PRIVATE
.Solicitação
A solicitação a seguir busca uma lista de pacotes com disponibilidade pública.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/transfer/list?property=status%3D%3DCOMPLETED%2CFAILED&requestType=PUBLIC&orderby=-createdDate \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/json' \
-H 'Authorization: {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
Resposta
Uma resposta bem-sucedida retorna uma lista de pacotes públicos e seus detalhes.
code language-json |
---|
|
Copiar carga do pacote (#package-payload)
Você pode copiar a carga de um pacote público fazendo uma solicitação GET para o ponto de extremidade /packages/payload
que inclui a ID correspondente do pacote no caminho da solicitação.
Formato da API
GET /packages/payload/{PACKAGE_ID}
{PACKAGE_ID}
Solicitação
A solicitação a seguir busca a carga de um pacote com a ID {PACKAGE_ID}.
curl -X GET \
https://platform.adobe.io/data/foundation/exim/packages/payload/{PACKAGE_ID} \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"imsOrgId": "{ORG_ID}",
"packageId": "{PACKAGE_ID}"
}'
imsOrdId
packageId
Resposta
Uma resposta bem-sucedida retorna a carga do pacote.
{
"imsOrgId": "{ORG_ID}",
"packageId": "{PACKAGE_ID}"
}