Phasio Internal Operator Controller API
Endpoints for managing operator configuration and settings
Endpoints for managing operator configuration and settings
openapi: 3.1.0
info:
title: Phasio Activity Internal Internal Operator Controller API
description: This is the API documentation for the Phasio application.
version: '1.0'
servers:
- url: https://m-api.eu.phas.io
description: Generated server url
security:
- Phasio API Bearer Token: []
tags:
- name: Internal Operator Controller
description: Endpoints for managing operator configuration and settings
paths:
/api/internal/v1/operator:
get:
tags:
- Internal Operator Controller
summary: Get operator details
description: Retrieves the complete details of the current operator
operationId: getOperator
responses:
'200':
description: Successfully retrieved operator details
content:
application/json:
schema:
$ref: '#/components/schemas/OperatorDto'
'401':
description: Unauthorized - missing or invalid authentication
'404':
description: Operator not found
'500':
description: Operator context not found
patch:
tags:
- Internal Operator Controller
summary: Initialize operator
description: Sets up the initial configuration for an operator account
operationId: initializeOperator
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InitializeOperatorRequestDto'
required: true
responses:
'200':
description: Operator successfully initialized
content:
application/json:
schema:
type: integer
format: int64
'400':
description: Invalid initialization data
'401':
description: Unauthorized - missing or invalid authentication
'500':
description: Operator not found
/api/internal/v1/operator/subscription-status:
patch:
tags:
- Internal Operator Controller
summary: Update subscription status
description: Updates the subscription status for an operator
operationId: updateSubscriptionStatus
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSubscriptionStatusDto'
required: true
responses:
'200':
description: Subscription status updated
'400':
description: Invalid status
'401':
description: Unauthorized
/api/internal/v1/operator/id/modules:
patch:
tags:
- Internal Operator Controller
summary: Sync operator modules
description: Updates the subscribed feature modules for an operator
operationId: syncOperatorModules
responses:
'200':
description: Modules successfully updated
'400':
description: Invalid module configuration
'401':
description: Unauthorized - missing or invalid authentication
'500':
description: Operator not found
/api/internal/v1/operator/processes:
get:
tags:
- Internal Operator Controller
summary: Get available manufacturing processes
description: Retrieves all manufacturing processes available to the customer
operationId: getProcesses
responses:
'200':
description: Successfully retrieved manufacturing processes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ProcessPricesDto'
'401':
description: Unauthorized - missing customer or operator context
/api/internal/v1/operator/email-credentials:
get:
tags:
- Internal Operator Controller
summary: Get operator email credentials
description: Retrieves the SMTP email server credentials for the current operator
operationId: getOperatorEmailCredentials
responses:
'200':
description: Successfully retrieved email credentials
content:
application/json:
schema:
$ref: '#/components/schemas/OperatorEmailCredentialsDto'
'404':
description: Email credentials not found for the operator
'401':
description: Unauthorized - missing or invalid authentication
/api/internal/v1/operator/domain-from-address:
get:
tags:
- Internal Operator Controller
summary: Get operator domain from address
description: Retrieves the verified SendGrid domain authentication from address for the current operator
operationId: getOperatorDomainFromAddress
responses:
'200':
description: Successfully retrieved verified from address
content:
application/json:
schema:
$ref: '#/components/schemas/OperatorDomainFromAddressDto'
'404':
description: No verified domain authentication found for the operator
'401':
description: Unauthorized - missing or invalid authentication
components:
schemas:
InfillDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
value:
type: number
default:
type: boolean
required:
- default
- id
- name
- value
MaterialDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
datasheetSummary:
type: string
quoteOnly:
type: boolean
colorDtos:
type: array
items:
$ref: '#/components/schemas/ColorDto'
isDefault:
type: boolean
wallThicknessWarning:
type: number
wallThicknessLimit:
type: number
required:
- colorDtos
- id
- isDefault
- name
- quoteOnly
CreateUserDto:
type: object
properties:
firstName:
type: string
lastName:
type: string
phoneNumber:
type: string
email:
type: string
password:
type: string
required:
- email
- firstName
- lastName
- password
- phoneNumber
OperatorEmailCredentialsDto:
type: object
properties:
id:
type: string
format: uuid
smtpHost:
type: string
smtpPort:
type: integer
format: int32
fromAddress:
type: string
smtpUsername:
type: string
smtpPassword:
type: string
required:
- fromAddress
- id
- smtpHost
- smtpPassword
- smtpPort
- smtpUsername
UpdateSubscriptionStatusDto:
type: object
properties:
status:
type: string
required:
- status
ColorDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
code:
type: string
required:
- code
- id
- name
ProcessPricesDto:
type: object
properties:
id:
type: string
format: uuid
technology:
type: string
description:
type: string
materials:
type: array
items:
$ref: '#/components/schemas/MaterialDto'
infills:
type: array
items:
$ref: '#/components/schemas/InfillDto'
precisions:
type: array
items:
$ref: '#/components/schemas/PrecisionPricesDto'
postProcessings:
type: array
items:
$ref: '#/components/schemas/PostProcessingDto'
isInternal:
type: boolean
isDefault:
type: boolean
bulkPricingQuantities:
type: array
items:
type: integer
required:
- bulkPricingQuantities
- id
- infills
- isDefault
- isInternal
- materials
- postProcessings
- precisions
- technology
PrecisionPricesDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
price:
type: number
isActive:
type: boolean
required:
- id
- isActive
- name
- price
PostProcessingDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
purchasable:
type: boolean
isDefault:
type: boolean
colors:
type: array
items:
$ref: '#/components/schemas/ColorDto'
incompatibleMaterialIds:
type: array
items:
type: integer
format: int64
mutuallyExclusiveGroup:
type: string
required:
- colors
- incompatibleMaterialIds
- isDefault
- name
- purchasable
OperatorDto:
type: object
properties:
name:
type: string
subscribedModules:
type: array
items:
type: string
uniqueItems: true
currency:
type: string
acceptedCurrencies:
type: array
items:
type: string
enum:
- USD
- SGD
- EUR
- INR
- JPY
- AUD
- GBP
- NZD
- MYR
- CAD
- CHF
- DKK
- SEK
- MXN
- ZAR
- UAH
- NOK
- PHP
- TRY
uniqueItems: true
permittedDomains:
type: array
items:
type: string
uniqueItems: true
loginMethod:
type: string
enum:
- EMAIL
- PHONE
- ANY
loginStage:
type: string
enum:
- BEFORE_PRICE
- AFTER_PRICE
landingPageMessage:
type: string
paymentProvider:
type: string
videoLink:
type: string
termsOfServiceLink:
type: string
maximumFileSize:
type: integer
format: int64
isAIEnabled:
type: boolean
isTaxIDEnabled:
type: boolean
isPayByInvoiceEnabled:
type: boolean
isPayByPurchaseOrderEnabled:
type: boolean
isAccountingEnabled:
type: boolean
isOrientationConstraintEnabled:
type: boolean
isInvoiceDownloadEnabled:
type: boolean
storefrontTheme:
type: string
enum:
- SYSTEM
- LIGHT
- DARK
country:
type: string
required:
- acceptedCurrencies
- country
- currency
- isAIEnabled
- isAccountingEnabled
- isInvoiceDownloadEnabled
- isOrientationConstraintEnabled
- isPayByInvoiceEnabled
- isPayByPurchaseOrderEnabled
- isTaxIDEnabled
- loginMethod
- loginStage
- name
- paymentProvider
- permittedDomains
- storefrontTheme
- subscribedModules
OperatorDomainFromAddressDto:
type: object
properties:
fromAddress:
type: string
required:
- fromAddress
InitializeOperatorRequestDto:
type: object
description: Operator initialization details
properties:
organizationName:
type: string
currency:
type: string
country:
type: string
userRequest:
$ref: '#/components/schemas/CreateUserDto'
required:
- country
- currency
- organizationName
- userRequest
securitySchemes:
Phasio API Bearer Token:
type: http
name: Authorization
in: header
scheme: bearer
bearerFormat: JWT