-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbilling.yml
More file actions
163 lines (152 loc) · 3.88 KB
/
billing.yml
File metadata and controls
163 lines (152 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
openapi: 3.0.0
info:
title: Billing API
version: 1.0.0
description: API for managing billing and credits
paths:
/v1/billing/credits-add:
get:
summary: Redirect to Stripe for adding credits
tags:
- Billing
parameters:
- in: query
name: amount_dollars
schema:
type: integer
required: true
responses:
'302':
description: Redirect to Stripe payment page
headers:
Location:
schema:
type: string
description: URL of the Stripe payment page
security:
- ApiKeyAuth: [ ]
/v1/billing/credit-history:
get:
summary: Get credit history for the current user
tags:
- Billing
parameters:
- in: query
name: start_date
schema:
type: string
format: date
required: true
- in: query
name: end_date
schema:
type: string
format: date
required: true
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/ItemsPerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/CreditHistoryResponse'
pagination:
$ref: '#/components/schemas/Pagination'
'401':
$ref: '#/components/responses/Unauthorized'
security:
- ApiKeyAuth: [ ]
components:
schemas:
CreditHistoryResponse:
type: object
properties:
id:
type: string
format: uuid
description: The unique identifier of the credit record
created_at:
type: string
format: date-time
description: The timestamp when the credit record was created
credits:
type: number
format: float
description: The amount of credits added or deducted
transaction_id:
type: string
description: The unique identifier of the transaction
transaction_type:
type: string
enum: [ NEW_USER_CREDIT, FINE_TUNING_JOB, STRIPE_CHECKOUT ]
description: The type of transaction
Pagination:
type: object
properties:
total_pages:
type: integer
current_page:
type: integer
items_per_page:
type: integer
ErrorResponse:
type: object
properties:
status:
type: integer
message:
type: string
responses:
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
parameters:
PageParam:
in: query
name: page
schema:
type: integer
default: 1
minimum: 1
description: Page number to retrieve
ItemsPerPageParam:
in: query
name: items_per_page
schema:
type: integer
default: 20
minimum: 1
description: Number of items to return per page
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key