Version 1.0
We use YAML type abbreviations to describe the supported types of fields.
The YAML snippets demonstrating the Pricing2Yaml specification are intentionally incomplete. Certain fields have been omitted for clarity and explanation purposes.
saasName
- required
- Field type:
str
Name of the pricing.
saasName: "Petclinic"
Pricing4Java | Pricing4TS | |
saasName | ✓ | ✓ |
version
- mandatory
- Supported value:
1.0
version: "1.0"
Pricing4Java | Pricing4TS | |
version | ✓ | ✓ |
day
- mandatory
- Field type:
int
Day of the month in which the pricing is model.
day: 29
Pricing4Java | Pricing4TS | |
day | ✓ | ✓ |
month
- mandatory
- Field type:
int
from 1 to 12
Month of the year the pricing is model.
Number 1 stands for January and 12 for December.
month: 10 # October
Pricing4Java | Pricing4TS | |
month | ✓ | ✓ |
year
- mandatory
- Field type:
int
Year in which the pricing is model.
year: 2024
Pricing4Java | Pricing4TS | |
year | ✓ | ✓ |
currency
- required
- Field type:
str
Currency in which the pricing plans and addOns are selled. Use preferably currency codes for better pricing standarization.
For example USD
stands for USA dollars and EUR
stands for Euros.
currency: "USD"
Libraries support
Pricing4Java | Pricing4TS | |
currency | ✓ | ✓ |
hasAnnualPayment
- mandatory
- Field type:
bool
Setting hasAnnualPayment
to true
means that your pricing supports yearly billing.
hasAnnualPayment: true
Pricing4Java | Pricing4TS | |
hasAnnualPayment | ✓ | ✓ |
features
- required
- Field type:
map
A map containing your pricing features. Each key of the map is the feature name and its value is a map containing feature attributes.
features:
awesome_feature:
cool_feature:
nice_feature:
# ...
Libraries support
Pricing4Java | Pricing4TS | |
features | ✓ | ✓ |
features.<name>.description
- optional
- Field type:
str
Brief summary of what features does and offers to your users. Feature descriptions are usually in a collapsable element or in an icon hiding it, see Github pricing descriptions for example.
features:
publicRepositories:
description: Host open source projects in public GitHub repositories, accessible via web or command line.
Public repositories are accessible to anyone at GitHub.com."
Libraries support
Pricing4Java | Pricing4TS | |
features.<name>.description | ✓ | ✓ |
features.<name>.type
- required
- Field type:
str
- Supported values: one of
AUTOMATION
,DOMAIN
,GUARANTEE
,INFORMATION
,INTEGRATION
,MANAGEMENT
,PAYMENT
orSUPPORT
Automation: they permit to configure the system in order to perform some actions autonomously or track thresholds and notify the user if anyone is exceeded. It also includes any task performed by a bot or AI, such as predictions, generative AI, etc...
features:
codeOwners:
description:
Automatically request reviews or require approval by selected contributors
when changes are made to sections of code that they own.
type: AUTOMATION
automationType: TRACKING
Domain: provide functionality related to the domain of the system, allowing to perform new operations or using exclusive services.
features:
publicRepositories:
description:
Host open source projects in public GitHub repositories, accessible via
web or command line. Public repositories are accessible to anyone at
GitHub.com.
type: DOMAIN
Guarantee: technical commitments of the company that operates the system towards the users.
features:
dataCypher:
description: Data encryption at rest and in transit.
type: GUARANTEE
Information: allow to see, use, visualize or extract additional data from your features.
features:
auditLogs:
description:
Audit logs: Audit logs provide a record of changes and usage in the
Enterprise Grid plan. You can view audit logs directly in Slack, export
them in CSV format, and use the audit logs API to create custom monitoring
tools.
type: INFORMATION
Integration: permit users to interact with the system through its API, or to use functionalities from external third-party software within the system.
features:
adminAnalyticsAPI:
description: Retrieve analytics data for a specific date in a
compressed JSON file format.
type: INTEGRATION
integrationType: API
Management: are focused on team leaders and system administrators. They ease the supervision, organization and guidance of projects, and allow the configuration of accounts and organization-based restrictions and rules.
features:
customUserGroups:
description:
Custom user groups: Facilitate receiving notifications and communicating
with entire teams, departments, and groups.
type: MANAGEMENT
Support: expose the granularity of customer support offered within the plans.
features:
enterpriseSupport:
description: Custom support for our business partners
type: SUPPORT
Payment: specify payment conditions and possibilities.
features:
paymentMethod:
type: PAYMENT
defaultValue:
- INVOICE
- OTHER
Libraries support
Pricing4Java | Pricing4TS | |
features.<name>.type | ✓ | ✓ |
features.<name>.valueType
- required
- Field type:
str
- Supported values: one of
BOOLEAN
,NUMERIC
orTEXT
Field valueType
sets the defaultValue
type signature of the feature you are
modeling. For example, if your feature valueType
is BOOLEAN
you must put
true
or false
in the defaultValue
field, if valueType
is NUMERIC
you must put
a number and in the case of TEXT
then defaultValue
has to be a string or a list of string.
features:
boolean-feature:
valueType: BOOLEAN
defaultValue: false
numeric-feature:
valueType: NUMERIC
defaultValue: 0
text-feature:
valueType: TEXT
defaultValue: Pricing2Yaml is awesome!
Libraries support
Pricing4Java | Pricing4TS | |
features.<name>.valueType | ✓ | ✓ |
features.<name>.defaultValue
- required
- Field type is
bool
ifvalueType
is set toBOOLEAN
- Field type is
int
ifvalueType
set toNUMERIC
- Field type is
str
orseq
of payment methods ifvalueType
is set toTEXT
This field holds the default value of your feature. All default values are shared in your plan and addons. You can
override your features values in plans.<plan_name>.features
or in addOns.<addOn_name>.features
section of your pricing.
Supported payment methods are: CARD
, GATEWAY
, INVOICE
, ACH
, WIRE_TRANSFER
or OTHER
.
To help you understand how overriding features works, imagine you have the following pricing matrix:
SILVER | GOLD | PLATINUM | |
---|---|---|---|
supportPriority | LOW | MEDIUM | HIGH |
If you want your supportPriority
to be different in your GOLD
and PLATINUM
plans you
will do the following using Pricing2Yaml syntax:
features:
supportPriority:
valueType: TEXT
defaultValue: LOW
plans:
SILVER:
features: null
GOLD:
features:
supportPriority:
value: MEDIUM
PLATINUM:
features:
supportPriority:
value: HIGH
Notice that SILVER
features are null
, meaning that, supportPriority
will have the value LOW
as you have previously define it in the features
block.
Libraries support
Pricing4Java | Pricing4TS | |
features.<name>.defaultValue | ✓ | ✓ |
features.<name>.expression
See Feature Evaluation for details.
Libraries support
Pricing4Java | Pricing4TS | |
features.<name>.expression | ✓ |