Skip to content

Conversation

@HavenDV
Copy link
Contributor

@HavenDV HavenDV commented Oct 2, 2025

Summary by CodeRabbit

  • New Features

    • Added management APIs: create API keys, deactivate keys, manage organization members (add, remove, promote), list members and profiles.
    • Introduced usage analytics endpoint with filtering and segmentation (time range, model versions, tools, API keys).
    • Expanded responses for API key listings and creation.
    • Updated spend-commit data to time-based fields and added a postpaid flag.
  • Documentation

    • Added examples and enumerations for usage reporting and spend-commit fields to clarify request/response structures.

@coderabbitai
Copy link

coderabbitai bot commented Oct 2, 2025

Walkthrough

Added new management API endpoints for API keys, organization member operations, profiles, and usage reporting to src/libs/Ideogram/openapi.yaml. Introduced/extended corresponding request/response schemas, enums, and examples. Updated spend-commit models to time-based fields and added is_postpaid_commit. No removals; all changes are additive.

Changes

Cohort / File(s) Summary of edits
Organization member management APIs
src/libs/Ideogram/openapi.yaml
Added POST /manage/api/organization/add_members, POST /promote_members, POST /remove_members, GET /members; introduced AddOrganizationMembersRequest, RemoveOrganizationMembersRequest, PromoteOrganizationMembersRequest, LiteOrganizationMember, OrganizationMember, GetOrganizationMembersResponse; defined 2xx/4xx responses and query/body params.
API key lifecycle
src/libs/Ideogram/openapi.yaml
Added POST /manage/api/api_keys_v2 (create) and POST /manage/api/organization/deactivate_api_key; added CreateApiKeyResponse; referenced GetApiKeysResponse, RedactedApiKey, PostApiKeyResponse; defined api_key_id/organization_id parameters and standard auth/permission errors.
Profiles listing
src/libs/Ideogram/openapi.yaml
Added GET /manage/api/profiles; introduced GetApiProfilesResponse, ApiProfile, ApiProfileType, ApiProfileRole, ApiProfileApiKey, ApiKeyStatus; defined 200/401/403 responses.
Usage reporting with segmentation
src/libs/Ideogram/openapi.yaml
Added GET /manage/api/usage with filters (organization_id, segment_by, start_time, end_time, model_versions, tools, api_key_ids); introduced GetUsageInfoResponse, UsageSegment, ToolUsage, ToolType, SegmentBy, ModelVersion; provided examples and enums.
Spend-commit model updates
src/libs/Ideogram/openapi.yaml
Replaced date fields with commit_start_time/commit_end_time; added is_postpaid_commit to SpendCommitInfo; updated related schemas/examples accordingly.
Schema/enums expansion (shared)
src/libs/Ideogram/openapi.yaml
Added/extended enums and fields across new responses to include model_version, api_key_id, tool_type; ensured examples align with new structures.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant C as Client
  participant M as Manage API
  participant A as Auth/Z
  participant O as Org Service

  C->>M: POST /organization/add_members (emails, roles)
  M->>A: Validate token & org permissions
  A-->>M: AuthZ OK/Fail
  alt Authorized
    M->>O: AddMembers(org_id, members)
    O-->>M: 204 No Content
    M-->>C: 204 No Content
  else Unauthorized/Invalid
    M-->>C: 400/401/403/404
  end
Loading
sequenceDiagram
  autonumber
  participant C as Client
  participant M as Manage API
  participant A as Auth/Z
  participant U as Usage Service
  participant B as Billing/Commit

  C->>M: GET /usage?org_id&segment_by&start_time&...
  M->>A: Validate token & scope
  A-->>M: OK/Fail
  alt OK
    M->>U: Query usage (filters, model_versions, tools, api_keys)
    U->>B: Fetch spend commits (time-based)
    B-->>U: Commit data (start_time/end_time, is_postpaid_commit)
    U-->>M: Aggregated UsageSegments
    M-->>C: 200 GetUsageInfoResponse
  else Fail
    M-->>C: 401/403
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

I thump my paws—new routes appear,
Keys and members, crystal clear.
Profiles peek, usage sings,
Time-bound commits spread their wings.
In YAML warrens I delight—
Hop, merge, deploy—by moonlit night. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The title “feat:@coderabbitai” does not describe any of the substantive changes in the pull request and fails to summarize the addition of new API endpoints and schema updates, making it unhelpful for reviewers or repository history. Please rename the pull request to a concise, descriptive title such as “Add organization management and usage endpoints to OpenAPI specification” that clearly reflects the primary changes.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch bot/update-openapi_202510020138

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot enabled auto-merge October 2, 2025 01:39
@github-actions github-actions bot merged commit ab494a1 into main Oct 2, 2025
3 of 4 checks passed
@github-actions github-actions bot deleted the bot/update-openapi_202510020138 branch October 2, 2025 01:40
@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Expand OpenAPI: management endpoints and spend-commit time fields Oct 2, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/libs/Ideogram/openapi.yaml (1)

671-678: Fix spend-commit example timestamp formatting.

Line [676] declares commit_start_time as '2025-01-01', but the schema advertises an RFC3339 date-time. Please align the example with the declared format (e.g., include the time zone).

-                    commit_start_time: '2025-01-01'
+                    commit_start_time: '2025-01-01T00:00:00Z'
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ba11328 and 84c1891.

⛔ Files ignored due to path filters (67)
  • src/libs/Ideogram/Generated/Ideogram..JsonSerializerContext.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.AddOrganizationMembers.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.CreateApiKeyV2.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.DeactivateOrganizationApiKey.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.GetApiProfiles.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.GetOrganizationMembers.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.GetUsageInfo.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.GetUserCredits.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.GetUserSpendCommitInfo.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.PromoteOrganizationMembers.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.IManageClient.RemoveOrganizationMembers.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ApiKeyStatus.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ApiKeyStatusNullable.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ApiProfileRole.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ApiProfileRoleNullable.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ApiProfileType.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ApiProfileTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ModelVersion.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ModelVersionNullable.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.SegmentBy.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.SegmentByNullable.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ToolType.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonConverters.ToolTypeNullable.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.JsonSerializerContextTypes.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.AddOrganizationMembers.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.CreateApiKeyV2.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.DeactivateOrganizationApiKey.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.GetApiProfiles.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.GetOrganizationMembers.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.GetUsageInfo.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.GetUserCredits.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.GetUserSpendCommitInfo.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.PromoteOrganizationMembers.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.ManageClient.RemoveOrganizationMembers.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.AddOrganizationMembersRequest.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.AddOrganizationMembersRequest.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ApiKeyStatus.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ApiProfile.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ApiProfile.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ApiProfileApiKey.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ApiProfileApiKey.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ApiProfileRole.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ApiProfileType.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.CreateApiKeyResponse.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.CreateApiKeyResponse.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.GetApiProfilesResponse.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.GetApiProfilesResponse.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.GetOrganizationMembersResponse.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.GetOrganizationMembersResponse.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.GetUsageInfoResponse.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.GetUsageInfoResponse.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.LiteOrganizationMember.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.LiteOrganizationMember.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ModelVersion.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.OrganizationMember.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.OrganizationMember.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.PromoteOrganizationMembersRequest.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.PromoteOrganizationMembersRequest.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.RemoveOrganizationMembersRequest.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.RemoveOrganizationMembersRequest.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.SegmentBy.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.SpendCommitInfo.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ToolType.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ToolUsage.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.ToolUsage.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.UsageSegment.Json.g.cs is excluded by !**/generated/**
  • src/libs/Ideogram/Generated/Ideogram.Models.UsageSegment.g.cs is excluded by !**/generated/**
📒 Files selected for processing (1)
  • src/libs/Ideogram/openapi.yaml (7 hunks)
🧰 Additional context used
🪛 Checkov (3.2.334)
src/libs/Ideogram/openapi.yaml

[medium] 846-850: Ensure that arrays have a maximum number of items

(CKV_OPENAPI_21)

🪛 Gitleaks (8.28.0)
src/libs/Ideogram/openapi.yaml

[high] 3133-3133: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

Comment on lines +873 to +897
example:
usage_segments:
- segment_start: '2023-08-09'
segment_end: '2023-08-09T23:59:59.0000000+00:00'
tool_usage:
- full_tool_name: Turbo Image Generation V3
amount:
currency_code: USD
amount: 1250
- full_tool_name: Upscale Image V1
amount:
currency_code: USD
amount: 750
- full_tool_name: Balanced Edit Image V2
amount:
currency_code: USD
amount: 500
- segment_start: '2023-08-10'
segment_end: '2023-08-10T23:59:59.0000000+00:00'
tool_usage:
- full_tool_name: generate
amount:
currency_code: USD
amount: 2000
'401':
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Align usage segment examples with date-time schema.

Lines [875] and [891] list segment_start using date-only strings even though the schema requires format: date-time. Update the examples so downstream tooling sees valid RFC3339 timestamps.

-                  - segment_start: '2023-08-09'
+                  - segment_start: '2023-08-09T00:00:00Z'
...
-                  - segment_start: '2023-08-10'
+                  - segment_start: '2023-08-10T00:00:00Z'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
example:
usage_segments:
- segment_start: '2023-08-09'
segment_end: '2023-08-09T23:59:59.0000000+00:00'
tool_usage:
- full_tool_name: Turbo Image Generation V3
amount:
currency_code: USD
amount: 1250
- full_tool_name: Upscale Image V1
amount:
currency_code: USD
amount: 750
- full_tool_name: Balanced Edit Image V2
amount:
currency_code: USD
amount: 500
- segment_start: '2023-08-10'
segment_end: '2023-08-10T23:59:59.0000000+00:00'
tool_usage:
- full_tool_name: generate
amount:
currency_code: USD
amount: 2000
'401':
example:
usage_segments:
- segment_start: '2023-08-09T00:00:00Z'
segment_end: '2023-08-09T23:59:59.0000000+00:00'
tool_usage:
- full_tool_name: Turbo Image Generation V3
amount:
currency_code: USD
amount: 1250
- full_tool_name: Upscale Image V1
amount:
currency_code: USD
amount: 750
- full_tool_name: Balanced Edit Image V2
amount:
currency_code: USD
amount: 500
- segment_start: '2023-08-10T00:00:00Z'
segment_end: '2023-08-10T23:59:59.0000000+00:00'
tool_usage:
- full_tool_name: generate
amount:
currency_code: USD
amount: 2000
'401':
🤖 Prompt for AI Agents
In src/libs/Ideogram/openapi.yaml around lines 873 to 897, the example shows
segment_start as date-only strings on lines 875 and 891 but the schema requires
RFC3339 date-time format; update those example values to full date-time strings
(e.g., "2023-08-09T00:00:00Z" and "2023-08-10T00:00:00Z" or equivalent with
offset) so they conform to format: date-time and downstream tooling validates
correctly.

Comment on lines +2901 to +2990
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
max_num_inflight_requests_permitted: 10
- is_metronome_2_user: true
role: OWNER
avatar_url: https://example.com/avatar.jpg
organization_id: b3JnYW5pemF0aW9uXzEyMw
name: Gamma
type: INDIVIDUAL
api_keys:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
max_num_inflight_requests_permitted: 10
ApiProfile:
title: ApiProfile
required:
- api_keys
- avatar_url
- is_metronome_2_user
- max_num_inflight_requests_permitted
- name
- organization_id
- role
- type
type: object
properties:
type:
$ref: '#/components/schemas/ApiProfileType'
name:
title: name
type: string
description: The display name of the profile
example: Gamma
avatar_url:
title: avatar_url
type: string
description: URL to the profile avatar
example: https://example.com/avatar.jpg
organization_id:
title: organization_id
type: string
description: Base64 encoded organization ID (only for ENTERPRISE profiles)
example: b3JnYW5pemF0aW9uXzEyMw
role:
$ref: '#/components/schemas/ApiProfileRole'
api_keys:
title: api_keys
type: array
items:
$ref: '#/components/schemas/ApiProfileApiKey'
description: List of API keys associated with this profile
is_metronome_2_user:
title: is_metronome_2_user
type: boolean
description: Whether the user is on Metronome 2.0
max_num_inflight_requests_permitted:
title: max_num_inflight_requests_permitted
type: integer
description: The maximum number of inflight requests permitted for the profile
example: 10
example:
is_metronome_2_user: true
role: OWNER
avatar_url: https://example.com/avatar.jpg
organization_id: b3JnYW5pemF0aW9uXzEyMw
name: Gamma
type: INDIVIDUAL
api_keys:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
max_num_inflight_requests_permitted: 10
ApiProfileType:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Populate status with a valid enum value in the profile example.

Line [2904] leaves status blank, but ApiProfileApiKey.status is required and constrained to ACTIVE or DISABLED. Please set the example to one of those values so clients don’t infer that empty strings are acceptable.

-              - creation_time: '2000-01-23T04:56:07.0000000+00:00'
-                redacted_api_key: ATG56•••••••••••••
-                api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
-                status: 
+              - creation_time: '2000-01-23T04:56:07.0000000+00:00'
+                redacted_api_key: ATG56•••••••••••••
+                api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
+                status: ACTIVE
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
max_num_inflight_requests_permitted: 10
- is_metronome_2_user: true
role: OWNER
avatar_url: https://example.com/avatar.jpg
organization_id: b3JnYW5pemF0aW9uXzEyMw
name: Gamma
type: INDIVIDUAL
api_keys:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
max_num_inflight_requests_permitted: 10
ApiProfile:
title: ApiProfile
required:
- api_keys
- avatar_url
- is_metronome_2_user
- max_num_inflight_requests_permitted
- name
- organization_id
- role
- type
type: object
properties:
type:
$ref: '#/components/schemas/ApiProfileType'
name:
title: name
type: string
description: The display name of the profile
example: Gamma
avatar_url:
title: avatar_url
type: string
description: URL to the profile avatar
example: https://example.com/avatar.jpg
organization_id:
title: organization_id
type: string
description: Base64 encoded organization ID (only for ENTERPRISE profiles)
example: b3JnYW5pemF0aW9uXzEyMw
role:
$ref: '#/components/schemas/ApiProfileRole'
api_keys:
title: api_keys
type: array
items:
$ref: '#/components/schemas/ApiProfileApiKey'
description: List of API keys associated with this profile
is_metronome_2_user:
title: is_metronome_2_user
type: boolean
description: Whether the user is on Metronome 2.0
max_num_inflight_requests_permitted:
title: max_num_inflight_requests_permitted
type: integer
description: The maximum number of inflight requests permitted for the profile
example: 10
example:
is_metronome_2_user: true
role: OWNER
avatar_url: https://example.com/avatar.jpg
organization_id: b3JnYW5pemF0aW9uXzEyMw
name: Gamma
type: INDIVIDUAL
api_keys:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status:
max_num_inflight_requests_permitted: 10
ApiProfileType:
- creation_time: '2000-01-23T04:56:07.0000000+00:00'
redacted_api_key: ATG56•••••••••••••
api_key_id: JRPVD7jWR1aTBYiJ0UFVOg
status: ACTIVE
🤖 Prompt for AI Agents
In src/libs/Ideogram/openapi.yaml around lines 2901-2990, the example ApiProfile
entries leave ApiProfileApiKey.status blank at line ~2904 (and the two other
example api_key entries later in the ApiProfile example); update those example
fields to a valid enum value (either ACTIVE or DISABLED) — e.g., replace the
empty status values with ACTIVE for each api_keys item so the OpenAPI example
conforms to the ApiProfileApiKey.required and enum constraints.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants