openapi: 3.0.1
info:
contact:
name: Polarion REST API Support
url: https://support.sw.siemens.com/
description:
About
The Polarion REST API lets you interact with Polarion programmatically. Use this API to integrate Polarion with your applications. This page documents the REST resources, including the HTTP response codes and example requests and responses.
For a detailed description of the REST API and how to use it, see the REST API User Guide (available on Support Center).
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
title: Polarion REST Account API
version: v1
servers:
- url: https://example.com/polarion/rest/v1
security:
- bearerAuth: []
tags:
- name: Account
paths:
/token:
post:
tags:
- Account
summary: Login to get the bearer token for protected endpoints
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
grant_type:
type: string
default: password
description: Defines the method obtaining the access token.
enum:
- password
- applicationSession
- urn:ietf:params:oauth:grant-type:token-exchange
- refresh_token
authenticatorId:
type: string
default: Siemens.TCPCM.AuthenticationMethod.TcPCM
description: TcPCM authentication method to be used with the provided credentials.
enum:
- Siemens.TCPCM.AuthenticationMethod.TcPCM
- Siemens.TCPCM.AuthenticationMethod.Windows
- Siemens.TCPCM.AuthenticationMethod.SamAuth
client_id:
type: string
default: TcPCM
description: Uniquely identifies the application making the request for authentication purposes.
client_secret:
type: string
default: Your_Client_Secret
description: Confidential key used alongside the client_id to securely authenticate the application making the request.
username:
type: string
default: Administrator
description: TcPCM or Windows user name depending on the authenticatorId.
password:
type: string
default: ''
description: Corresponding password of the username.
subject_token_type:
type: string
description: Type of the token to be exchanged for the login. Only "urn:ietf:params:oauth:token-type:access_token" is supported.
enum:
- urn:ietf:params:oauth:token-type:access_token
subject_token:
type: string
description: Value of the exchanged token.
tcpcmSessionKey:
type: string
description: Session identifier that can be obtained via the TcPCM client application plugin.
refresh_token:
type: string
description: Refresh token that you obtained via the initial authentication.
required:
- grant_type
- client_id
- client_secret
responses:
'200':
description: Successful login
content:
application/json:
schema:
type: object
properties:
access_token:
type: string
description: Bearer token for authorization
token_type:
type: string
description: Only "bearer" is supported
expires_in:
type: integer
description: Seconds until the token expires
refresh_token:
type: string
description: Token to be used for resetting the expiration date
as:client_id:
type: string
description: Requested client id
as:TcPCMAuthenticatorId:
type: string
description: Requested authenticator id
.issued:
type: string
description: Login timestamp
.expires:
type: string
description: Expiration date
required:
- access_token
- token_type
- expires_in
- refresh_token
- as:client_id
- as:TcPCMAuthenticatorId
- .issued
- .expires
'400':
description: Bad request. Login failed.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error title
error_description:
type: string
description: Detailed error description
required:
- error
- error_description
'500':
description: Server error. Login failed.
content:
text/html:
schema:
type: string
description: Error description
description: 'TcPCM supports three different login flows:
1. **Resource Owner Password flow**: Use the *username* and *password* with the *grant\_type* "password" and *authenticatorId* "Siemens.TCPCM.AuthenticationMethod.TcPCM" or "Siemens.TCPCM.AuthenticationMethod.Windows".
2. **Token Exchange flow**: Use the *subject\_token\_type* and *subject\_token* with the *grant\_type* "urn:ietf:params:oauth:grant-type:token-exchange" and *authenticatorId* "Siemens.TCPCM.AuthenticationMethod.SamAuth".
3. **Custom flow**: Use the *tcpcmSessionKey* with the *grant\_type* "applicationSession" without *authenticatorId*.
Refresh token flow:
* The refresh token can be used to generate a new bearer token without re-authenticating.
* The *grant\_type* must be set to "refresh\_token" and the *refresh\_token* must be provided that was obtained via the initial authentication.'
/api/v1/Account/Logout:
get:
tags:
- Account
summary: Logout and invalidate tokens
operationId: Account_Logout
security:
- bearerHttpAuthentication: []
parameters:
- name: refreshTokenId
in: query
description: Refresh Token Id
required: true
schema:
type: string
responses:
'200':
description: Successfully logged out.
'401':
description: Indicates that the requested resource requires authentication.
'500':
description: Indicates that a generic error has occurred on the server.
deprecated: false
description: Please note that the *refreshTokenId* needs to be transferred as a query parameter.
/api/v1/Account/DeleteRefreshToken:
get:
tags:
- Account
summary: Delete RefreshToken
operationId: Account_DeleteRefreshToken
parameters:
- name: refreshTokenId
in: query
description: Refresh Token Id
required: true
schema:
type: string
responses:
'200':
description: RefreshToken successfully removed.
'500':
description: Indicates that a generic error has occurred on the server.
deprecated: false
components:
securitySchemes:
bearerAuth:
bearerFormat: JWT
scheme: bearer
type: http