Platform API

<back to all web services

LinkTagForObject

Link existing tag to an object. Returns the list of tags assigned to the object.

Requires Authentication
The following routes are available for this service:
POST/api/tags/link/{ObjectId}
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class TagModel implements JsonSerializable
{
    public function __construct(
        /** @description Id of the tag */
        // @ApiMember(Description="Id of the tag", ParameterType="query")
        /** @var string */
        public string $Id='',

        /** @description Tag name */
        // @ApiMember(Description="Tag name", ParameterType="query")
        /** @var string|null */
        public ?string $Name=null,

        /** @description RmsTableCtx Id that represents the type of object the tag an be linked to */
        // @ApiMember(Description="RmsTableCtx Id that represents the type of object the tag an be linked to", ParameterType="query")
        /** @var string */
        public string $RmsTableCtxId='',

        /** @description Owner Id to use to retrieve tags for a particular licensee */
        // @ApiMember(Description="Owner Id to use to retrieve tags for a particular licensee", ParameterType="query")
        /** @var string */
        public string $ContactOwnerId='',

        /** @description Associated tag colour */
        // @ApiMember(Description="Associated tag colour", ParameterType="query")
        /** @var string|null */
        public ?string $Colour=null,

        /** @description Object Connection Id linking an object to the tag */
        // @ApiMember(Description="Object Connection Id linking an object to the tag", ParameterType="query")
        /** @var string */
        public string $ObjectConnectionId=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['RmsTableCtxId'])) $this->RmsTableCtxId = $o['RmsTableCtxId'];
        if (isset($o['ContactOwnerId'])) $this->ContactOwnerId = $o['ContactOwnerId'];
        if (isset($o['Colour'])) $this->Colour = $o['Colour'];
        if (isset($o['ObjectConnectionId'])) $this->ObjectConnectionId = $o['ObjectConnectionId'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->RmsTableCtxId)) $o['RmsTableCtxId'] = $this->RmsTableCtxId;
        if (isset($this->ContactOwnerId)) $o['ContactOwnerId'] = $this->ContactOwnerId;
        if (isset($this->Colour)) $o['Colour'] = $this->Colour;
        if (isset($this->ObjectConnectionId)) $o['ObjectConnectionId'] = $this->ObjectConnectionId;
        return empty($o) ? new class(){} : $o;
    }
}

// @ApiResponse(Description="A list of tags")
class GetTagsListResponse implements JsonSerializable
{
    public function __construct(
        /** @description List of tags. */
        // @ApiMember(Description="List of tags.", ParameterType="query")
        /** @var array<TagModel>|null */
        public ?array $Tags=null,

        /** @var ResponseStatus|null */
        public ?ResponseStatus $ResponseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Tags'])) $this->Tags = JsonConverters::fromArray('TagModel', $o['Tags']);
        if (isset($o['ResponseStatus'])) $this->ResponseStatus = JsonConverters::from('ResponseStatus', $o['ResponseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Tags)) $o['Tags'] = JsonConverters::toArray('TagModel', $this->Tags);
        if (isset($this->ResponseStatus)) $o['ResponseStatus'] = JsonConverters::to('ResponseStatus', $this->ResponseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Link existing tag to an object. Returns the list of tags assigned to the object. */
// @Api(Description="Link existing tag to an object. Returns the list of tags assigned to the object.")
class LinkTagForObject implements JsonSerializable
{
    public function __construct(
        /** @description Object Id to link the tag to. */
        // @ApiMember(Description="Object Id to link the tag to.", ParameterType="query")
        /** @var string */
        public string $ObjectId='',

        /** @description Licensee Id owner of the object. */
        // @ApiMember(Description="Licensee Id owner of the object.", ParameterType="query")
        /** @var string */
        public string $LicenseeId='',

        /** @description Id of the tag */
        // @ApiMember(Description="Id of the tag", ParameterType="query")
        /** @var string */
        public string $Id='',

        /** @description Associated tag colour, if this is passed we will update the existing tags colour. */
        // @ApiMember(Description="Associated tag colour, if this is passed we will update the existing tags colour.", ParameterType="query")
        /** @var string|null */
        public ?string $Colour=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ObjectId'])) $this->ObjectId = $o['ObjectId'];
        if (isset($o['LicenseeId'])) $this->LicenseeId = $o['LicenseeId'];
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['Colour'])) $this->Colour = $o['Colour'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ObjectId)) $o['ObjectId'] = $this->ObjectId;
        if (isset($this->LicenseeId)) $o['LicenseeId'] = $this->LicenseeId;
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->Colour)) $o['Colour'] = $this->Colour;
        return empty($o) ? new class(){} : $o;
    }
}

PHP LinkTagForObject DTOs

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

HTTP + XML

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

POST /api/tags/link/{ObjectId} HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<LinkTagForObject xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Eros.Subtle.Canvara.WebAPIModel.ServiceModel">
  <Colour>String</Colour>
  <Id>00000000-0000-0000-0000-000000000000</Id>
  <LicenseeId>00000000-0000-0000-0000-000000000000</LicenseeId>
  <ObjectId>00000000-0000-0000-0000-000000000000</ObjectId>
</LinkTagForObject>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<GetTagsListResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Eros.Subtle.Canvara.WebAPIModel.ServiceModel">
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <Tags xmlns:d2p1="http://schemas.datacontract.org/2004/07/Eros.Saguna.Common.WebAPIModel.Models">
    <d2p1:TagModel>
      <d2p1:Colour>String</d2p1:Colour>
      <d2p1:ContactOwnerId>00000000-0000-0000-0000-000000000000</d2p1:ContactOwnerId>
      <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id>
      <d2p1:Name>String</d2p1:Name>
      <d2p1:ObjectConnectionId>00000000-0000-0000-0000-000000000000</d2p1:ObjectConnectionId>
      <d2p1:RmsTableCtxId>00000000-0000-0000-0000-000000000000</d2p1:RmsTableCtxId>
    </d2p1:TagModel>
  </Tags>
</GetTagsListResponse>