Platform API

<back to all web services

UpdateRoleWithSharing

Updates a Role record, and updates Sharing.

Requires Authentication
The following routes are available for this service:
PUT/api/roles
"use strict";
export class ListItemFilterModel {
    /** @param {{ListItemFilterId?:string,FilterName?:string,ListId?:string,ListItemId?:string,ListItemIsInFilter?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    ListItemFilterId;
    /** @type {string} */
    FilterName;
    /** @type {string} */
    ListId;
    /** @type {string} */
    ListItemId;
    /** @type {boolean} */
    ListItemIsInFilter;
}
export class RoleDetailsModel {
    /** @param {{RoleId?:string,RoleName?:string,RoleConnectionDefinitionId?:string,ContactTypes?:string[],RequireContactsToAccept?:boolean,ListItemFilters?:ListItemFilterModel[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description Role Id */
    RoleId;
    /**
     * @type {string}
     * @description Role Name */
    RoleName;
    /**
     * @type {string}
     * @description Role Connection Definition Id */
    RoleConnectionDefinitionId;
    /**
     * @type {string[]}
     * @description Contact Types the Role applies to */
    ContactTypes;
    /**
     * @type {boolean}
     * @description Does the role require contacts to accept it? */
    RequireContactsToAccept;
    /**
     * @type {ListItemFilterModel[]}
     * @description Filters linked to the custom role. */
    ListItemFilters;
}
export class ObjectShareModel {
    /** @param {{ObjectShareId?:string,ObjectId?:string,ObjectName?:string,Name?:string,Description?:string,Reference?:string,ContactId?:string,ContactName?:string,ContactType?:string,ContactImageUrlPrimary?:string,ContactImageUrlPrimaryThmbnail?:string,ShareStatusId?:string,ShareStatusName?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    ObjectShareId;
    /** @type {string} */
    ObjectId;
    /** @type {string} */
    ObjectName;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {string} */
    Reference;
    /** @type {string} */
    ContactId;
    /** @type {string} */
    ContactName;
    /** @type {string} */
    ContactType;
    /** @type {string} */
    ContactImageUrlPrimary;
    /** @type {string} */
    ContactImageUrlPrimaryThmbnail;
    /** @type {string} */
    ShareStatusId;
    /** @type {string} */
    ShareStatusName;
}
export class UpdateRoleWithSharing {
    /** @param {{RoleDetails?:RoleDetailsModel,Form?:FormCollection,ShareList?:ObjectShareModel[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {RoleDetailsModel}
     * @description Details of the Contact Role to be Updated. */
    RoleDetails;
    /** @type {FormCollection} */
    Form;
    /**
     * @type {ObjectShareModel[]}
     * @description List of Object Share details. */
    ShareList;
}

JavaScript UpdateRoleWithSharing DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

PUT /api/roles HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	RoleDetails: 
	{
		RoleName: String,
		ContactTypes: 
		[
			00000000-0000-0000-0000-000000000000
		],
		RequireContactsToAccept: False,
		ListItemFilters: 
		[
			{
				FilterName: String,
				ListItemIsInFilter: False
			}
		]
	},
	Form: [],
	ShareList: 
	[
		{
			ObjectName: String,
			Name: String,
			Description: String,
			Reference: String,
			ContactName: String,
			ContactType: String,
			ContactImageUrlPrimary: String,
			ContactImageUrlPrimaryThmbnail: String,
			ShareStatusName: String
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ErrorCode: String,
	Message: String,
	StackTrace: String,
	Errors: 
	[
		{
			ErrorCode: String,
			FieldName: String,
			Message: String,
			Meta: 
			{
				String: String
			}
		}
	],
	Meta: 
	{
		String: String
	}
}