Share via


Update (PUT) a ServiceTemplate [SPFSDK][VMMREF]

 

Applies To: Windows Azure Pack

Updates a ServiceTemplate [SPFSDK][VMMREF] entity by using the HTTP PUT operation.

Important

This operation is only available through the admin Service Management API endpoint.

Here is a list of examples related to this collection operation.

  • Example: Assign a service template to a tenant

Request

For more information about the placeholders used in the URI, see URL placeholders.

Method

Request URI

HTTP Version

PUT

https://{server-name}:{auth-port}/{subscription-id}/services/systemcenter/vmm/ServiceTemplates(ID=Guid'[value]',StampId=Guid'[value]')

HTTP/1.1

Request URI Parameters

URI Parameter

Description

ID

Required. [Edm.Guid] The identifier of the entity.

StampId

Required. [Edm.Guid] The identifier of the stamp that restricts the query.

Request Headers

This operation does not use any non-standard request headers.

For more information about the common request headers used by this operation, see Common HTTP request information.

Request Body

The request body should contain a single (depending on the request headers) XML or JSON encoded ServiceTemplate [SPFSDK][VMMREF] entity that is to be updated. Here is the request body of a single entity

{
  "odata.type": "VMM.ServiceTemplate",
  "Accessibility": "Public",
  "AddedTime": "2014-08-12T10:35:11.38-07:00",
  "CustomProperty@odata.type": "Collection(VMM.CustomProperty)",
  "CustomProperty": [],
  "Description": "Two Tier Application Pattern",
  "Enabled": true,
  "GrantedToList@odata.type": "Collection(VMM.UserAndRole)",
  "GrantedToList": [
    {
      "RoleID": "ae122d5f-3aab-4d75-ad48-d6593246a49e",
      "RoleName": null,
      "UserName": null
    }
  ],
  "ID": "211148d3-b9a0-4bec-bb17-373ba0cd7934",
  "IsPublished": false,
  "ModifiedTime": "2014-08-12T10:37:47.057-07:00",
  "Name": "Two Tier App Sample",
  "Namespace": "Global",
  "NotificationsAvailable": false,
  "Owner": {
    "odata.type": "VMM.UserAndRole",
    "RoleID": "75700cd5-893e-4f68-ada7-50ef4668acc6",
    "RoleName": "Administrator",
    "UserName": "DOMAIN\\User"
  },
  "PublishedTime": null,
  "Release": "new",
  "ServicePriority": "Normal",
  "ServiceSettings@odata.type": "Collection(VMM.ServiceSetting)",
  "ServiceSettings": [],
  "ServiceTemplateState": "Normal",
  "StampId": "d70c1a9b-c241-48f5-880a-b6c36071e653",
  "UseAsDefaultRelease": false,
  "UseAsPattern": false
}

Response

Response Codes

This operation does not return any non-standard OData response codes. If successful, it will return code 204 No Content.

Response Headers

This operation does not use any non-standard response headers.

For more information about the common response headers used by this operation, see Common HTTP response information.

Response Body

None

Example: Assign a service template to a tenant

This example assigns a service template to a tenant. Tenants may only use service templates that have been assigned to them.

For more information about how to get started with using the code examples provided in this programming guide, see Program in Visual Studio with the Windows Azure Pack IaaS Resource Provider [SPFSDK].

public static void ServiceTemplate_GrantToUserRole()
{
    // Requires a connection to the tenant service as the hoster.
    Guid stampID = new Guid("d70c1a9b-c241-48f5-880a-b6c36071e653");
    Guid subscriptionID = new Guid("ae122d5f-3aab-4d75-ad48-d6593246a49e");
    Guid tenantUserRoleID = new Guid("ae122d5f-3aab-4d75-ad48-d6593246a49e");
    Guid templateID = new Guid("211148d3-b9a0-4bec-bb17-373ba0cd7934");

    var template = vmmService.ServiceTemplates.Where(st => st.StampId == stampID && st.ID == templateID).FirstOrDefault();

    if (template != null)
    {
        template.GrantedToList.Add(new Tenant.UserAndRole()
        {
            RoleID = tenantUserRoleID
        });

        vmmService.UpdateObject(template);
    }

    vmmService.SaveChanges();
}

HTTP Request

MERGE https://contoso.com:30004/services/systemcenter/SC2012R2/VMM/Microsoft.Management.Odata.svc/ServiceTemplates(ID=guid'211148d3-b9a0-4bec-bb17-373ba0cd7934',StampId=guid'd70c1a9b-c241-48f5-880a-b6c36071e653') HTTP/1.1
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Content-Type: application/json;odata=minimalmetadata
Accept: application/json;odata=minimalmetadata
Accept-Charset: UTF-8
DataServiceUrlConventions: KeyAsSegment
User-Agent: Microsoft ADO.NET Data Services
Authorization: Bearer {ENCODED AUTHENTICATION TOKEN}
x-ms-principal-id: tenant@fabrikam.com
Host: contoso.com:30004
Content-Length: 1019
Expect: 100-continue

{"odata.type":"VMM.ServiceTemplate","Accessibility":"Public","AddedTime":"2014-08-12T10:35:11.38-07:00","CustomProperty@odata.type":"Collection(VMM.CustomProperty)","CustomProperty":[],"Description":"Two Tier Application Pattern","Enabled":true,"GrantedToList@odata.type":"Collection(VMM.UserAndRole)","GrantedToList":[{"RoleID":"ae122d5f-3aab-4d75-ad48-d6593246a49e","RoleName":null,"UserName":null}],"ID":"211148d3-b9a0-4bec-bb17-373ba0cd7934","IsPublished":false,"ModifiedTime":"2014-08-12T10:37:47.057-07:00","Name":"Two Tier App Sample","Namespace":"Global","NotificationsAvailable":false,"Owner":{"odata.type":"VMM.UserAndRole","RoleID":"75700cd5-893e-4f68-ada7-50ef4668acc6","RoleName":"Administrator","UserName":"DOMAIN\\User"},"PublishedTime":null,"Release":"new","ServicePriority":"Normal","ServiceSettings@odata.type":"Collection(VMM.ServiceSetting)","ServiceSettings":[],"ServiceTemplateState":"Normal","StampId":"d70c1a9b-c241-48f5-880a-b6c36071e653","UseAsDefaultRelease":false,"UseAsPattern":false}

HTTP Response

HTTP/1.1 204 No Content
Cache-Control: no-cache
Content-Length: 0
Server: Microsoft-IIS/8.5
X-Content-Type-Options: nosniff
request-id: d3df681c-b278-0000-3dbe-e0d378b2cf01
DataServiceVersion: 1.0;
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
X-Powered-By: ASP.NET
Date: Fri, 15 Aug 2014 18:40:12 GMT

See Also

ServiceTemplates Collection [SPFSDK][VMMREF]
ServiceTemplate [SPFSDK][VMMREF]
Read (GET) a ServiceTemplate [SPFSDK][VMMREF]