Obter uma coleção de elegibilidade
Como obter uma cobrança de direitos.
Pré-requisitos
Credenciais conforme descrito na autenticação do Partner Center. Este cenário oferece suporte à autenticação com credenciais App+User.
Um ID de cliente (
customer-tenant-id
). Se não souber o ID do cliente, pode procurá-lo no Partner Center selecionando a área de trabalho Clientes e, em seguida, o cliente na lista de clientes e, em seguida, Conta. Na página Conta do cliente, procure a ID da Microsoft na seção Informações da Conta do Cliente. A ID da Microsoft é a mesma que a ID do cliente (customer-tenant-id
).
C#
Para obter uma coleção de direitos para um cliente, obtenha uma interface para operações de Direitos chamando o método IAggregatePartner.Customers.ById() com a ID do cliente para identificar o cliente. Em seguida, recupere a interface da propriedade Entitlements e chame o método Get() ou GetAsync() para recuperar a coleção de direitos.
IAggregatePartner partnerOperations;
string customerId;
// Get the collection of entitlements.
var entitlements = partnerOperations.Customers.ById(customerId).Entitlements.Get();
Para preencher as datas de expiração dos direitos a serem recuperados, chame os mesmos métodos acima e defina o parâmetro booleano opcional showExpiry como true Get(true) ou GetAsync(true). Isto indica que são necessárias datas de expiração do direito (quando aplicável).
Importante
Os tipos de direitos no local não têm datas de validade.
Pedido REST
Sintaxe da solicitação
Método | URI do pedido |
---|---|
GET | {baseURL}/v1/customers/{customerId}/direitos HTTP/1.1 |
Parâmetros de URI
Use o caminho e os parâmetros de consulta a seguir ao criar a solicitação.
Nome | Type | Obrigatório | Description |
---|---|---|---|
customerId | string | Sim | Um customerId formatado em GUID que identifica o cliente. |
Tipo de direito | string | Não | Pode ser usado para especificar o tipo de direitos a serem recuperados (software ou reservedInstance ). Se não estiver definido, todos os tipos serão recuperados |
showExpiração | boolean | Não | Sinalizador opcional que indica se as datas de expiração dos direitos são necessárias. |
Cabeçalhos do pedido
Para obter mais informações, consulte Cabeçalhos REST do Partner Center.
Corpo do pedido
Nenhum.
Exemplo de solicitação
GET https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/entitlements HTTP/1.1
Authorization: Bearer <Token>
Accept: application/json
MS-RequestId: cdc428d2-035b-41c4-9a32-e643c4471cbd
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Resposta do REST
Se bem-sucedida, o corpo da resposta contém uma coleção de recursos de Direito .
Códigos de sucesso e erro de resposta
Cada resposta vem com um código de status HTTP que indica sucesso ou falha e outras informações de depuração. Use uma ferramenta de rastreamento de rede para ler esse código, tipo de erro e outros parâmetros. Para obter a lista completa, consulte Códigos de erro.
Exemplo de resposta
HTTP/1.1 200 OK
Content-Length: 103778
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: cdc428d2-035b-41c4-9a32-e643c4471cbd
X-Locale: en-US
MS-CV: EjFdw8fCpkKyMyza.0
MS-ServerId: 000002
Date: Mon, 19 Mar 2018 07:42:51 GMT
{
"totalCount": 2,
"items": [
{
"includedEntitlements": [],
"referenceOrder": {
"id": "KaJ8XvkKc_GoNZOUyjVaRJalTBN5MWdV1",
"lineItemId": "0"
},
"productId": "DZH318Z0BQ3W",
"quantity": 1,
"entitledArtifacts": [
{
"link": {
"uri": "/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/artifacts/reservedinstance/groups/2caf524395724e638ef64e109f1f79ca/lineitems/03500b1b-f2d6-4e23-ab4b-9fd67b917012/resource/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"method": "GET",
"headers": []
},
"resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"artifactType": "reservedinstance"
}
],
"skuId": "007J",
"entitlementType": "reservedinstance"
"dynamicAttributes": {
"reservationType": "virtualmachines"
}
},
{
"includedEntitlements": [
{
"includedEntitlements": [],
"referenceOrder": {
"id": "NUXMSvmS20EQ4kFsZmzkSqb747fqKmNk1",
"lineItemId": "0"
},
"productId": "DG7GMGF0DWTJ",
"quantity": 1,
"entitledArtifacts": [],
"skuId": "0001",
"entitlementType": "software"
},
{
"includedEntitlements": [],
"referenceOrder": {
"id": "NUXMSvmS20EQ4kFsZmzkSqb747fqKmNk1",
"lineItemId": "0"
},
"productId": "DG7GMGF0DWLG",
"quantity": 1,
"entitledArtifacts": [],
"skuId": "0002",
"entitlementType": "software"
}
],
"referenceOrder": {
"id": "NUXMSvmS20EQ4kFsZmzkSqb747fqKmNk1",
"lineItemId": "0"
},
"productId": "DG7GMGF0DWTK",
"quantity": 1,
"entitledArtifacts": [],
"skuId": "0002",
"entitlementType": "software"
}
],
"attributes": {
"objectType": "Collection"
}
}
Mais exemplos
O exemplo a seguir mostra como recuperar um tipo específico de direitos juntamente com datas de expiração (quando aplicável)
Exemplo de C#
Para recuperar um tipo específico de direitos, obtenha a interface ByEntitlementType da interface Entitlements e use os métodos Get() ou GetAsync().
ResourceCollection<Entitlement> entitlements = partnerOperations.Customers.ById(selectedCustomerId).Entitlements.ByEntitlementType("software").Get(true);
Exemplo de solicitação
GET https://api.partnercenter.microsoft.com/v1/customers/de3dcef9-9991-459c-ac71-2903d1127414/entitlements?entitlementtype=software&showExpiry=true
Authorization: Bearer <Token>
Accept: application/json
MS-RequestId: 6517a410-67ce-4995-9bb7-116a52179f92
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Exemplo de resposta
HTTP/1.1 200 OK
Content-Length: 1791
Content-Type: application/json; charset=utf-8
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
MS-RequestId: 6517a410-67ce-4995-9bb7-116a52179f92
X-Locale: en-US
MS-CV: yD+4LBKePUSp/vqJ.0
MS-ServerId: 000002
Date: Mon, 28 Jan 2019 18:31:43 GMT
{
"totalCount": 2,
"items": [
{
"includedEntitlements": [
{
"includedEntitlements": [],
"referenceOrder": {
"id": "4teYMtWYEeKM77JftGLIQYMOZPTwyOEV1",
"lineItemId": "0",
"alternateId": "8f3af3dea1ea"
},
"productId": "DG7GMGF0DWM2",
"quantity": 1,
"entitledArtifacts": [],
"skuId": "0001",
"entitlementType": "software"
},
{
"includedEntitlements": [],
"referenceOrder": {
"id": "4teYMtWYEeKM77JftGLIQYMOZPTwyOEV1",
"lineItemId": "0",
"alternateId": "8f3af3dea1ea"
},
"productId": "DG7GMGF0DWMK",
"quantity": 1,
"entitledArtifacts": [],
"skuId": "0001",
"entitlementType": "software"
}
],
"referenceOrder": {
"id": "4teYMtWYEeKM77JftGLIQYMOZPTwyOEV1",
"lineItemId": "0",
"alternateId": "8f3af3dea1ea"
},
"productId": "DG7GMGF0DWM3",
"quantity": 1,
"entitledArtifacts": [],
"skuId": "0002",
"entitlementType": "software"
},
{
"includedEntitlements": [
{
"includedEntitlements": [],
"referenceOrder": {
"id": "4teYMtWYEeKM77JftGLIQYMOZPTwyOEV1",
"lineItemId": "1",
"alternateId": "8f3af3dea1ea"
},
"productId": "DG7GMGF0DWV1",
"quantity": 1,
"entitledArtifacts": [],
"skuId": "0002",
"entitlementType": "software"
},
{
"includedEntitlements": [],
"referenceOrder": {
"id": "4teYMtWYEeKM77JftGLIQYMOZPTwyOEV1",
"lineItemId": "1",
"alternateId": "8f3af3dea1ea"
},
"productId": "DG7GMGF0DWV2",
"quantity": 1,
"entitledArtifacts": [],
"skuId": "0002",
"entitlementType": "software"
}
],
"referenceOrder": {
"id": "4teYMtWYEeKM77JftGLIQYMOZPTwyOEV1",
"lineItemId": "1",
"alternateId": "8f3af3dea1ea"
},
"productId": "DG7GMGF0DWBQ",
"quantity": 1,
"entitledArtifacts": [],
"skuId": "0003",
"entitlementType": "software",
"expiryDate": "2022-01-28T00:00:00Z"
}
],
"attributes": {
"objectType": "Collection"
}
}
Os exemplos a seguir mostram como recuperar informações sobre produtos e reservas de um direito.
Recuperar detalhes de reserva de máquina virtual de um direito usando o SDK V1.8
Exemplo de C#
Para recuperar mais detalhes relacionados às reservas de máquina virtual de um direito, invoque o URI exposto em entitledArtifacts.link com artifactType = virtual_machine_reserved_instance.
ResourceCollection<Entitlement> entitlements = partnerOperations.Customers.ById(selectedCustomerId).Entitlements.ByEntitlementType("VirtualMachineReservedInstance").Get();
((VirtualMachineReservedInstanceArtifact)entitlements.First().EntitledArtifacts.First(x => x.Type == ArtifactType.VirtualMachineReservedInstance)).Link.InvokeAsync<VirtualMachineReservedInstanceArtifactDetails>(partnerOperations)
Exemplo de solicitação
GET https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/artifacts/virtualmachinereservedinstance/groups/2caf524395724e638ef64e109f1f79ca/lineitems/03500b1b-f2d6-4e23-ab4b-9fd67b917012/resource/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 HTTP/1.1
Authorization: Bearer <Token>
Accept: application/json
MS-RequestId: cdc428d2-035b-41c4-9a32-e643c4471cbd
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Exemplo de resposta
HTTP/1.1 200 OK
Content-Length: 368
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: cdc428d2-035b-41c4-9a32-e643c4471cbd
X-Locale: en-US
MS-CV: yrdTGsZ7IU2v9okv.0
MS-ServerId: 000002
Date: Mon, 19 Mar 2018 07:45:14 GMT
{
"type": "virtual_machine_reserved_instance",
"virtualMachineReservations": [
{
"reservationId": "99f320db-c029-4c1b-a157-dad76e4481b6",
"scopeType": "Shared",
"quantity": 1,
"expiryDateTime": "2019-02-23T00:00:00",
"effectiveDateTime": "2018-02-23T18:15:24.6724884Z",
"provisioningState": "Created"
}
]
}
Recuperar detalhes de reserva de um direito usando o SDK V1.9
Exemplo de C#
Para recuperar mais detalhes relacionados às reservas de um direito de instância reservada, invoque o URI exposto em entitledArtifacts.link
com artifactType = reservedinstance
.
ResourceCollection<Entitlement> entitlements = partnerOperations.Customers.ById(selectedCustomerId).Entitlements.ByEntitlementType("ReservedInstance").Get();
((ReservedInstanceArtifact)entitlements.First().EntitledArtifacts.First(x => x.Type == ArtifactType.ReservedInstance)).Link.InvokeAsync<ReservedInstanceArtifactDetails>(partnerOperations);
Exemplo de solicitação
GET https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/artifacts/reservedinstance/groups/2caf524395724e638ef64e109f1f79ca/lineitems/03500b1b-f2d6-4e23-ab4b-9fd67b917012/resource/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 HTTP/1.1
Authorization: Bearer <Token>
Accept: application/json
MS-RequestId: cdc428d2-035b-41c4-9a32-e643c4471cbd
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Exemplo de resposta
HTTP/1.1 200 OK
Content-Length: 368
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: cdc428d2-035b-41c4-9a32-e643c4471cbd
X-Locale: en-US
MS-CV: yrdTGsZ7IU2v9okv.0
MS-ServerId: 000002
Date: Mon, 19 Mar 2018 07:45:14 GMT
{
"type": "reservedinstance",
"virtualMachineReservations": [
{
"reservationId": "99f320db-c029-4c1b-a157-dad76e4481b6",
"scopeType": "Shared",
"quantity": 1,
"expiryDateTime": "2019-02-23T00:00:00",
"effectiveDateTime": "2018-02-23T18:15:24.6724884Z",
"provisioningState": "Created"
}
]
}
Consumidores de API
Parceiros que estão usando a API para consultar direitos de instância reservada de máquina virtual - Atualize o URI de solicitação de /customers/{customerId}/entitlements para /customers/{customerId}/entitlements?entitlementType=virtualmachinereservedinstance para manter a compatibilidade com versões anteriores. Para consumir máquina virtual ou SQL do Azure com contrato avançado, atualize o URI da solicitação para /customers/{customerId}/entitlements?entitlementType=reservedinstance.