Skip to content

Commit aee262b

Browse files
Initial SDK setup with Speakeasy configuration
- Add Speakeasy generation configuration (.speakeasy/) - Add GitHub Actions workflow for SDK generation - Add Python project configuration (pyproject.toml, poetry files) - Add custom authentication hooks for Cloudinary Account Provisioning - Set initial version to 0.1.0 - Include customized README with static sections
1 parent cf212d8 commit aee262b

17 files changed

Lines changed: 5090 additions & 0 deletions

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# This allows generated code to be indexed correctly
2+
*.py linguist-generated=false
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Generate
2+
permissions:
3+
checks: write
4+
contents: write
5+
pull-requests: write
6+
statuses: write
7+
id-token: write
8+
on:
9+
workflow_dispatch:
10+
inputs:
11+
force:
12+
description: Force generation of SDKs
13+
type: boolean
14+
default: false
15+
set_version:
16+
description: optionally set a specific SDK version
17+
type: string
18+
schedule:
19+
- cron: 0 0 * * *
20+
pull_request:
21+
types:
22+
- labeled
23+
- unlabeled
24+
jobs:
25+
generate:
26+
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
27+
with:
28+
force: ${{ github.event.inputs.force }}
29+
mode: pr
30+
set_version: ${{ github.event.inputs.set_version }}
31+
secrets:
32+
github_access_token: ${{ secrets.GITHUB_TOKEN }}
33+
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.venv/
2+
venv/
3+
src/*.egg-info/
4+
**/__pycache__/
5+
.pytest_cache/
6+
.python-version
7+
.DS_Store
8+
pyrightconfig.json
9+
**/.speakeasy/temp/
10+
**/.speakeasy/logs/
11+
.speakeasy/reports
12+
.env
13+
.env.local

.speakeasy/gen.lock

Lines changed: 2699 additions & 0 deletions
Large diffs are not rendered by default.

.speakeasy/gen.yaml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
configVersion: 2.0.0
2+
generation:
3+
devContainers:
4+
enabled: true
5+
schemaPath: https://cloudinary.github.io/api-schemas/provisioning/schema.yml
6+
sdkClassName: CldProvisioning
7+
maintainOpenAPIOrder: true
8+
usageSnippets:
9+
optionalPropertyRendering: withExample
10+
sdkInitStyle: constructor
11+
useClassNamesForArrayFields: true
12+
fixes:
13+
nameResolutionDec2023: true
14+
nameResolutionFeb2025: false
15+
parameterOrderingFeb2024: true
16+
requestResponseComponentNamesFeb2024: true
17+
securityFeb2025: false
18+
sharedErrorComponentsApr2025: false
19+
sharedNestedComponentsJan2026: false
20+
nameOverrideFeb2026: false
21+
auth:
22+
oAuth2ClientCredentialsEnabled: true
23+
oAuth2PasswordEnabled: true
24+
hoistGlobalSecurity: true
25+
inferSSEOverload: true
26+
sdkHooksConfigAccess: true
27+
schemas:
28+
allOfMergeStrategy: shallowMerge
29+
requestBodyFieldName: ""
30+
versioningStrategy: automatic
31+
persistentEdits: {}
32+
tests:
33+
generateTests: true
34+
generateNewTests: false
35+
skipResponseBodyAssertions: false
36+
python:
37+
version: 0.1.0
38+
additionalDependencies:
39+
dev: {}
40+
main: {}
41+
allowedRedefinedBuiltins:
42+
- id
43+
- object
44+
asyncMode: both
45+
authors:
46+
- Cloudinary
47+
- Speakeasy
48+
baseErrorName: CloudinaryError
49+
clientServerStatusCodesAsErrors: true
50+
constFieldCasing: upper
51+
defaultErrorName: APIError
52+
description: Cloudinary Account Provisioning Python SDK.
53+
enableCustomCodeRegions: false
54+
enumFormat: enum
55+
envVarPrefix: CLOUDINARY
56+
fixFlags:
57+
asyncPaginationSep2025: true
58+
conflictResistantModelImportsFeb2026: true
59+
responseRequiredSep2024: true
60+
flattenGlobalSecurity: true
61+
flattenRequests: false
62+
flatteningOrder: parameters-first
63+
forwardCompatibleEnumsByDefault: false
64+
forwardCompatibleUnionsByDefault: "false"
65+
imports:
66+
option: openapi
67+
paths:
68+
callbacks: ""
69+
errors: ""
70+
operations: ""
71+
shared: ""
72+
webhooks: ""
73+
inferUnionDiscriminators: true
74+
inputModelSuffix: input
75+
license: MIT
76+
maxMethodParams: 4
77+
methodArguments: infer-optional-args
78+
moduleName: ""
79+
multipartArrayFormat: legacy
80+
outputModelSuffix: output
81+
packageManager: poetry
82+
packageName: cloudinary-account-provisioning
83+
preApplyUnionDiscriminators: false
84+
pytestFilterWarnings: []
85+
pytestTimeout: 0
86+
responseFormat: flat
87+
sseFlatResponse: false
88+
templateVersion: v2
89+
useAsyncHooks: false

.speakeasy/logs/naming.log

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
DEBUG
2+
3+
CldProvisioning (SDK empty)
4+
ServerRegion (enum: api, api-eu, api-ap)
5+
ProductEnvironments (SDK empty)
6+
GetProductEnvironmentsRequest (enabled: boolean, ids: array, cloud_names: array ...)
7+
ProductEnvironmentsResponse (sub_accounts: array)
8+
ProductEnvironment (cloud_name: string, name: string, enabled: boolean ...)
9+
ApiAccessKey (key: string, secret: string, enabled: boolean)
10+
ErrorResponse (error)
11+
Error (message: string)
12+
Security (provisioning_api_key: string, provisioning_api_secret: string)
13+
ProductEnvironmentRequest (name: string, cloud_name: string, base_sub_account_id: string ...)
14+
CustomAttributes (empty)
15+
GetProductEnvironmentRequest (sub_account_id: string)
16+
UpdateProductEnvironmentRequest (sub_account_id: string, ProductEnvironmentUpdateRequest: ProductEnvironmentUpdateRequest)
17+
ProductEnvironmentUpdateRequest (name: string, cloud_name: string, custom_attributes: class ...)
18+
ProductEnvironmentUpdateRequestCustomAttributes (empty)
19+
DeleteProductEnvironmentRequest (sub_account_id: string)
20+
SuccessResponse (message: string)
21+
DeleteProductEnvironmentGlobals (account_id: string)
22+
AccessKeys (SDK empty)
23+
GetAccessKeysRequest (sub_account_id: string, page_size: integer, page: integer ...)
24+
SortBy (enum: api_key, created_at, name ...)
25+
SortOrder (enum: desc, asc)
26+
AccessKeysResponse (access_keys: array, total: integer)
27+
AccessKey (name: string, api_key: string, api_secret: string ...)
28+
GenerateAccessKeyRequest (sub_account_id: string, AccessKeyRequest: AccessKeyRequest)
29+
AccessKeyRequest (name: string, enabled: boolean)
30+
DeleteAccessKeyByNameRequest (sub_account_id: string, name: string)
31+
UpdateAccessKeyRequest (sub_account_id: string, key: string, AccessKeyUpdateRequest: AccessKeyUpdateRequest)
32+
AccessKeyUpdateRequest (name: string, enabled: boolean, dedicated_for: enum)
33+
DedicatedFor (enum: webhooks)
34+
DeleteAccessKeyRequest (sub_account_id: string, key: string)
35+
Users (SDK empty)
36+
GetUsersRequest (pending: boolean, ids: array, emails: array ...)
37+
UnionType (enum: include, exclude)
38+
QueryParamSortOrder (enum: desc, asc)
39+
QueryParamSortBy (enum: name, role, status ...)
40+
UsersResponse (users: array)
41+
User (id: string, name: string, first_name: string ...)
42+
EmailPreferences (empty)
43+
CreateUserRequestBody (name: string, email: string, role: enum ...)
44+
CreateUserRole (enum: master_admin, admin, billing ...)
45+
GetUserRequest (user_id: string)
46+
UpdateUserRequest (user_id: string, UserRequest: UserRequest)
47+
UserRequest (name: string, email: string, role: enum ...)
48+
UserRequestRole (enum: master_admin, admin, billing ...)
49+
DeleteUserRequest (user_id: string)
50+
GetGroupsForUserRequest (user_id: string)
51+
UserGroupsListResponse (groups: array)
52+
UserGroupSummary (id: string, name: string)
53+
GetSubAccountsForUserRequest (user_id: string)
54+
UserSubAccountsResponse (sub_accounts: array)
55+
SubAccountSummary (id: string, name: string, description: string ...)
56+
UserGroups (SDK empty)
57+
GetUserGroupsRequest (extended_details: boolean)
58+
UserGroupsResponse (user_groups: array)
59+
UserGroup (id: string, name: string, users: array ...)
60+
UserGroupUser (id: string, name: string, email: string)
61+
UserGroupRequest (name: string, extended_details: boolean)
62+
GetUserGroupRequest (group_id: string, extended_details: boolean)
63+
UpdateUserGroupRequest (group_id: string, UserGroupRequest: UserGroupRequest)
64+
DeleteUserGroupRequest (group_id: string)
65+
GetUsersInUserGroupRequest (group_id: string)
66+
UserGroupUsersResponse (users: array)
67+
AddUserToUserGroupRequest (group_id: string, user_id: string)
68+
RemoveUserFromUserGroupRequest (group_id: string, user_id: string)
69+
BillingUsage (SDK empty)
70+
GetBillingUsageRequest (year: int32, include_prodenv_breakdown: boolean)
71+
BillingUsageResponse (plan_name: string, metric_usage: array)
72+
MetricUsage (metric: string, limit: number, cycles: array ...)
73+
Cycles (from_day: date, to_day: date, usage: number ...)
74+
Breakdown (storage_image: number, storage_video: number, storage_raw: number ...)
75+
CloudAssetTypeBreakdown (storage_image: number, storage_video: number, storage_raw: number ...)
76+
MonthlyCycles (from_day: date, to_day: date, usage: number ...)
77+
BillingUsageResponseBreakdown (storage_image: number, storage_video: number, storage_raw: number ...)
78+
Public (SDK empty)
79+
SystemRolesAndPoliciesCatalogResponse (catalog: class)
80+
Catalog (empty)
81+
ValidateCedarPolicyRequest (policy: string)
82+
ValidateCedarPolicyResponse (valid: boolean, errors: array)
83+
CedarError (cedar_message: string, cedar_code: string)
84+
CedarSchemaResponse (schema: class)
85+
Schema (empty)
86+
SystemPolicies (SDK empty)
87+
GetSystemPoliciesRequest (permission_type: PermissionTypeEnum, scope_type: ScopeTypeEnum)
88+
PermissionTypeEnum (enum: global, content)
89+
ScopeTypeEnum (enum: account, prodenv)
90+
SystemPoliciesResponse (data: array, next_cursor: string)
91+
SystemPolicyResponseData (id: string, name: string, description: string ...)
92+
PermissionsErrorResponse (error)
93+
PermissionsError (category: string, code: string, message: string ...)
94+
Details (empty)
95+
CustomPolicies (SDK empty)
96+
GetCustomPoliciesRequest (scope_type: ScopeTypeEnum, scope_id: string, enabled: boolean ...)
97+
CustomPoliciesResponse (data: array, next_cursor: string)
98+
CustomPolicyResponseData (id: string, policy_statement: string, description: string ...)
99+
CustomPolicy (policy_statement: string, description: string, scope_type: ScopeTypeEnum ...)
100+
CustomPolicyResponse (data: CustomPolicyResponseData)
101+
GetCustomPolicyRequest (policy_id: string)
102+
UpdateCustomPolicyRequest (policy_id: string, UpdateCustomPolicy: UpdateCustomPolicy)
103+
UpdateCustomPolicy (policy_statement: string, description: string, scope_type: ScopeTypeEnum ...)
104+
DeleteCustomPolicyRequest (policy_id: string)
105+
EffectivePolicies (SDK empty)
106+
GetEffectivePoliciesRequest (scope_type: ScopeTypeEnum, scope_id: string, principal_type: PrincipalTypeEnum ...)
107+
PrincipalTypeEnum (enum: user, group, apiKey ...)
108+
EffectivePoliciesResponse (data: class)
109+
Data (principals: array, custom_policies: array)
110+
PrincipalRole (principal_type: string, principal_id: string, roles: array)
111+
EffectiveRole (id: string, system_policies: array)
112+
EffectivePolicy (id: string, policy_statement: string)
113+
Roles (SDK empty)
114+
GetRolesRequest (scope_type: ScopeTypeEnum, permission_type: PermissionTypeEnum, management_type: ManagementTypeEnum ...)
115+
ManagementTypeEnum (enum: system, custom)
116+
RolesResponse (data: array)
117+
RoleResponseData (id: string, name: string, description: string ...)
118+
CreateRole (id: string, permission_type: string, scope_type: ScopeTypeEnum ...)
119+
RoleResponse (data: class)
120+
RoleResponseData1 (policies: array, id: string, name: string ...)
121+
GetRoleRequest (role_id: string, folder_id: string, asset_id: string ...)
122+
UpdateRoleRequest (role_id: string, Role: Role)
123+
Role (name: string, description: string, system_policy_ids: array)
124+
DeleteRoleRequest (role_id: string, force: boolean)
125+
GetRolePrincipalsRequest (role_id: string, scope_type: ScopeTypeEnum, scope_id: string ...)
126+
PrincipalsResponse (data: array)
127+
PrincipalResponseData (id: string, type: PrincipalTypeEnum, role_id: string ...)
128+
PrincipalResponseDataPolicyParameters (empty)
129+
UpdateRolePrincipalsRequest1 (role_id: string, UpdateRolePrincipalsRequest: UpdateRolePrincipalsRequest)
130+
UpdateRolePrincipalsRequest (operation: OperationEnum, principals: array)
131+
OperationEnum (enum: add, remove)
132+
UpdateRolePrincipal (principal_type: PrincipalTypeEnum, principal_id: string, scope_id: string ...)
133+
UpdateRolePrincipalPolicyParameters (empty)
134+
Principals (SDK empty)
135+
GetPrincipalRolesRequest (principal_type: PrincipalTypeEnum, principal_id: string, permission_type: PermissionTypeEnum ...)
136+
PrincipalRolesResponse (data: array)
137+
PrincipalRolesData (id: string, name: string, description: string ...)
138+
PolicyParameters (empty)
139+
UpdatePrincipalRolesRequest (operation: OperationEnum, principal: Principal, roles: array)
140+
Principal (type: PrincipalTypeEnum, id: string)
141+
RoleToManage (id: string, scope_id: string, policy_parameters: class)
142+
RoleToManagePolicyParameters (empty)
143+
InspectRequest1 (scope_type: ScopeTypeEnum, scope_id: string, principal_type: PrincipalTypeEnum ...)
144+
PrincipalRolesInspectResponse (data: class, next_cursor: string)
145+
PrincipalRolesInspectResponseData (principals: array)
146+
PrincipalRolesInspectData (type: PrincipalTypeEnum, id: string, roles: array)
147+
InspectRequest (scope_type: ScopeTypeEnum, scope_id: string, principals: array ...)
148+
InspectRequestPolicyParameters (empty)
149+
Globals (account_id: string)
150+

0 commit comments

Comments
 (0)