Dela via


Skapa en SelfServePolicy

Den här artikeln förklarar hur du skapar en ny självbetjäningsprincip.

Förutsättningar

  • Autentiseringsuppgifter enligt beskrivningen i Partnercenter-autentisering. Det här scenariot stöder autentisering med autentiseringsuppgifter för program+användare.

C#

Skapa en självbetjäningsprincip:

  1. Anropa metoden IAggregatePartner.SelfServePolicies.Create eller IAggregatePartner.SelfServePolicies.CreateAsync med principinformationen för självbetjäning.
// IAggregatePartner partnerOperations;
string customerIdAsEntity;

var selfServePolicy = new SelfServePolicy
{
    SelfServeEntity = new SelfServeEntity
    {
        SelfServeEntityType = "customer",
        TenantID = customerIdAsEntity,
    },
    Grantor = new Grantor
    {
        GrantorType = "billToPartner",
        TenantID = partnerIdAsGrantor,
    },
    Permissions = new Permission[]
    {
        new Permission
        {
        Action = "Purchase",
        Resource = "AzureReservedInstances",
        },
    },
    {
        new Permission
        {
        Action = "Purchase",
        Resource = "AzureSavingsPlan",
        },
    },
};

// All the operations executed on this partner operation instance will share the same correlation Id but will differ in request Id
IPartner scopedPartnerOperations = partnerOperations.With(RequestContextFactory.Instance.Create(Guid.NewGuid()));

// creates the self-serve policy
SelfServePolicy createdSelfServePolicy = scopedPartnerOperations.selfServePolicies.Create(selfServePolicy);

Ett exempel finns i följande:

  • Exempel: Konsoltestapp
  • Projekt: PartnerSDK.FeatureSamples
  • Klass: CreateSelfServePolicies.cs

REST-begäran

Begärandesyntax

Metod URI för förfrågan
INLÄGG {baseURL}/v1/SelfServePolicy HTTP/1.1

Begärandehuvuden

Begärandetext

I den här tabellen beskrivs de obligatoriska egenskaperna i begärandetexten.

Namn Typ Description
SelfServePolicy objekt Principinformation för självbetjäning.

SelfServePolicy

I den här tabellen beskrivs de minsta obligatoriska fälten från den SelfServePolicy-resurs som behövs för att skapa en ny självbetjäningsprincip.

Egenskap Typ Description
SelfServeEntity SelfServeEntity Självbetjäningsentiteten som beviljas åtkomst.
Beviljaren Beviljaren Den beviljare som beviljar åtkomst.
Behörigheter Matris med behörigheter En matris med behörighetsresurser .

Exempel på begäran

POST https://api.partnercenter.microsoft.com/v1/SelfServePolicy HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 94e4e214-6b06-4fb7-96d1-94d559f9b47f
MS-CorrelationId: ab993325-1605-4cf4-bac4-fb584142a31b
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 789
Expect: 100-continue
Connection: Keep-Alive

{
    "selfServeEntity": {
        "selfServeEntityType": "customer",
        "tenantID": "0431a72c-7d8a-4393-b25e-ef63f5efb415"
    },
    "grantor": {
        "grantorType": "billToPartner",
        "tenantID": "634f6379-ad54-449b-9821-564f737158ab"
    },
    "permissions": [
        {
            "resource": "AzureReservedInstances",
            "action": "Purchase"
        },
        {
            "resource": "AzureSavingsPlan",
            "action": "Purchase"
        }
    ]
}

REST-svar

Om det lyckas returnerar detta API en SelfServePolicy-resurs för den nya självbetjäningsprincipen.

Lyckade svar och felkoder

Varje svar levereras med en HTTP-statuskod som anger lyckat eller misslyckat och ytterligare felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och ytterligare parametrar. Den fullständiga listan finns i Partnercenter REST-felkoder.

Den här metoden returnerar följande felkoder:

HTTP-statuskod Felkod Beskrivning
409 600041 Självbetjäningsprincipen finns redan.

Exempel på svar

HTTP/1.1 201 Created
Content-Length: 834
Content-Type: application/json; charset=utf-8
MS-CorrelationId: ab993325-1605-4cf4-bac4-fb584142a31b
MS-RequestId: 94e4e214-6b06-4fb7-96d1-94d559f9b47f
Date: Tue, 14 Feb 2017 20:06:02 GMT

{
    "id": "634f6379-ad54-449b-9821-564f737158ab_0431a72c-7d8a-4393-b25e-ef63f5efb415",
    "selfServeEntity": {
        "selfServeEntityType": "customer",
        "tenantID": "0431a72c-7d8a-4393-b25e-ef63f5efb415"
    },
    "grantor": {
        "grantorType": "billToPartner",
        "tenantID": "634f6379-ad54-449b-9821-564f737158ab"
    },
    "permissions": [
        {
            "resource": "AzureReservedInstances",
            "action": "Purchase"
        },
        {
            "resource": "AzureSavingsPlan",
            "action": "Purchase"
        }
    ],
    "attributes": {
        "etag": "\"933523d1-3f63-4fc3-8789-5e21c02cdaed\"",
        "objectType": "SelfServePolicy"
    }
}