Genesys Cloud - Developer Announcements!

 View Only

Sign Up

Expand all | Collapse all

Rate Limiting on Assignment Service Public APIs

  • 1.  Rate Limiting on Assignment Service Public APIs

    Posted 06-12-2026 09:17

    Summary

    We are introducing organization-scoped HTTP rate limits (requests per minute, RPM) on selected Public API routes that are implemented in assignment-service and exposed through the Public APIsurface (as documented on the Developer Center / in the SDKs).

    Behavior change :Under normal load, requests behave as today. When a caller exceeds the configured limit for an organization, the service may respond with HTTP 429 (Too Many Requests) with standard retry guidance (backoff, respect Retry-After when present). Integrations that assume unlimited throughput or that do not handle 429 may need to be updated to retry with backoff.

    What is not changing: We are not removing or renaming resources, changing URL paths, or changing successful response schemas for these operations. Limits are enforced behind feature toggles and rolled out incrementally by environment(for example, Dev/Test first, then production regions in phases) so we can observe traffic and tune limits.

    Affected areas (high level):Queue, agent, queue member, conversation, and related admin/operational endpoints that already appear in our public contract; a full list of paths, HTTP methods is listed below.

    Effective Date

    Monday, August 10, 2026

    Details

    Rate limits are being introduced to protect platform stability and ensure fair usage across customers.

    Several Assignment Service endpoints support high-volume automation and operational workloads. Without throttling controls, excessive traffic from a single organization can impact latency and availability for other tenants sharing the same infrastructure.

    Applying organization-level rate limits:

    • Reduces noisy-neighbor effects
    • Improves platform stability and predictability
    • Supports capacity planning
    • Aligns these endpoints with standard Genesys Cloud throttling behavior using HTTP 429 responses

    The phased rollout approach allows traffic patterns to be evaluated and thresholds adjusted where necessary before full production deployment.

    Customer Impact

    Who may be affected:Customers and partners who call the affected Public API routes at high sustained volume or with tight retry loops may begin to see HTTP 429 (Too Many Requests) when their traffic for an organization exceeds the configured requests-per-minute limit.

    What changes in practice:Successful responses (2xx) and error responses for invalid input (4xx other than 429) are unchanged when under the limit. When throttled, the client should back off and retry; if your integration does not handle 429 today, you may see intermittent failures until the client is updated.

    Who is unlikely to be affected: Typical interactive or moderate-volume usage that stays below the published limits should behave as before.

    Mitigation / rollout:Limits are applied per organization, behind feature toggles, and enabled incrementally so we can monitor traffic and adjust limits where needed. We will align Developer Center documentation with 429 behavior and recommended client patterns where applicable.

    Impacted Resources

    Queue

    • PUT /v2/organizations/{orgId}/queues/bulk
    • POST /v2/organizations/{orgId}/queues
    • PUT /v2/organizations/{orgId}/queues/{queueId}

    Agent

    • PUT /v2/organizations/{orgId}/agents/{agentId}/queues
    • PUT /v2/organizations/{orgId}/agents/{agentId}/queues/{queueId}
    • PUT /v2/organizations/{orgId}/agents/{agentId}/status

    Wrap-up Codes

    • GET /organizations/{orgId}/wrapupCodes

    Queue Members

    • GET /v2/organizations/{orgId}/queues/{queueId}/users
    • POST /v2/organizations/{orgId}/queues/{queueId}/users
    • PUT /v2/organizations/{orgId}/queues/{queueId}/users
    • PUT /v2/organizations/{orgId}/queues/{queueId}/users/{memberId}
    • DELETE /v2/organizations/{orgId}/queues/{queueId}/users/{memberId}

    Conversation

    • PATCH /v2/organizations/{orgId}/conversations/{conversationId}
    • POST /v2/organizations/{orgId}/conversations/{conversationId}/assign

    Issue References

    • AS-4497 — Queue Controller
    • AS-4498 — Agent Endpoints
    • AS-4394 — Wrap-up Code Query
    • AS-4500 — Queue Member Operations
    • AS-4502 — Conversation Controller
    • AS-2886 — Queue Create / Update

    Contacts

    @Raghavendra Kopalle  

    Please reply to this announcement with any questions. This helps the wider developer community benefit from the discussion. We encourage you to use this thread before contacting the designated person directly. Thank you for your understanding.



  • 2.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 06-23-2026 10:21

    Hey

    I am trying to assess if my customers are affected by this upcoming change, but I can't find a way to check that

    the Summary says:
    We are introducing organization-scoped HTTP rate limits (requests per minute, RPM) on selected Public API routes that are implemented in assignment-service and exposed through the Public APIsurface (as documented on the Developer Center / in the SDKs).

    It's saying that the change is on resource called "Public API routes", I don't see this kind of resource in Genesys Cloud Developer Center

    And the "Impacted Resources" doesn't list any API Endpoint from the public Swagger, so I can't determine if my customers are affected or not

    so, how can I check if my customers affected by this upcoming change or not?

    Thanks in advance



    ------------------------------
    Shahar Leonard
    Genesys Cloud Professional Certified
    ------------------------------



  • 3.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 07-07-2026 10:56

    Thank you for your question.

    The Impacted Resources section lists internal assignment-service paths (how the service is implemented). Those paths do not appear in the Developer Center. Customer and partner integrations use the public Platform API paths below.

    Please use the Public API column when assessing whether this change affects your customers.

    Queue

    assignment-service (internal)

    Public API (Developer Center)

    PUT /v2/organizations/{orgId}/queues/bulk

    No direct public Platform API path (internal platform use only)

    POST /v2/organizations/{orgId}/queues

    POST /api/v2/routing/queues

    PUT /v2/organizations/{orgId}/queues/{queueId}

    PUT /api/v2/routing/queues/{queueId}

    Agent

    assignment-service (internal)

    Public API (Developer Center)

    PUT /v2/organizations/{orgId}/agents/{agentId}/queues

    PATCH /api/v2/users/{userId}/queues

    PUT /v2/organizations/{orgId}/agents/{agentId}/queues/{queueId}

    PATCH /api/v2/users/{userId}/queues/{queueId}

    PUT /v2/organizations/{orgId}/agents/{agentId}/status

    PUT /api/v2/users/{userId}/routingstatus

    Wrap-up codes

    assignment-service (internal)

    Public API (Developer Center)

    GET /organizations/{orgId}/wrapupCodes

    GET /api/v2/routing/wrapupcodes

    Queue members

    assignment-service (internal)

    Public API (Developer Center)

    GET /v2/organizations/{orgId}/queues/{queueId}/users

    GET /api/v2/routing/queues/{queueId}/members

    POST /v2/organizations/{orgId}/queues/{queueId}/users

    POST /api/v2/routing/queues/{queueId}/members

    PUT /v2/organizations/{orgId}/queues/{queueId}/users

    PATCH /api/v2/routing/queues/{queueId}/members

    PUT /v2/organizations/{orgId}/queues/{queueId}/users/{memberId}

    PATCH /api/v2/routing/queues/{queueId}/members/{memberId}

    DELETE /v2/organizations/{orgId}/queues/{queueId}/users/{memberId}

    DELETE /api/v2/routing/queues/{queueId}/members/{memberId}

    Conversation

    assignment-service (internal)

    Public API (Developer Center)

    PATCH /v2/organizations/{orgId}/conversations/{conversationId}

    PATCH /api/v2/routing/conversations/{conversationId}

    POST /v2/organizations/{orgId}/conversations/{conversationId}/assign

    POST /api/v2/conversations/{conversationId}/assign

    Please let me know if you need any additional information.

    Note:  I may not receive notifications for replies in this thread. For follow-up, please email me at kumar.kopalle@genesys.com

    Regards,
    Kumar



    ------------------------------
    Raghavendra Kopalle
    Director, Architecture
    ------------------------------



  • 4.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 06-26-2026 03:53

    Hi, 

    As shown in the attachment, none of the APIs listed under "Impacted Resources" are included.



    ------------------------------
    Kobayashi, Kenichi
    ------------------------------



  • 5.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 07-07-2026 10:57

    Thank you for your question.

    The Impacted Resources section lists internal assignment-service paths (how the service is implemented). Those paths do not appear in the Developer Center. Customer and partner integrations use the public Platform API paths below.

    Please use the Public API column when assessing whether this change affects your customers.

    Queue

    assignment-service (internal)

    Public API (Developer Center)

    PUT /v2/organizations/{orgId}/queues/bulk

    No direct public Platform API path (internal platform use only)

    POST /v2/organizations/{orgId}/queues

    POST /api/v2/routing/queues

    PUT /v2/organizations/{orgId}/queues/{queueId}

    PUT /api/v2/routing/queues/{queueId}

    Agent

    assignment-service (internal)

    Public API (Developer Center)

    PUT /v2/organizations/{orgId}/agents/{agentId}/queues

    PATCH /api/v2/users/{userId}/queues

    PUT /v2/organizations/{orgId}/agents/{agentId}/queues/{queueId}

    PATCH /api/v2/users/{userId}/queues/{queueId}

    PUT /v2/organizations/{orgId}/agents/{agentId}/status

    PUT /api/v2/users/{userId}/routingstatus

    Wrap-up codes

    assignment-service (internal)

    Public API (Developer Center)

    GET /organizations/{orgId}/wrapupCodes

    GET /api/v2/routing/wrapupcodes

    Queue members

    assignment-service (internal)

    Public API (Developer Center)

    GET /v2/organizations/{orgId}/queues/{queueId}/users

    GET /api/v2/routing/queues/{queueId}/members

    POST /v2/organizations/{orgId}/queues/{queueId}/users

    POST /api/v2/routing/queues/{queueId}/members

    PUT /v2/organizations/{orgId}/queues/{queueId}/users

    PATCH /api/v2/routing/queues/{queueId}/members

    PUT /v2/organizations/{orgId}/queues/{queueId}/users/{memberId}

    PATCH /api/v2/routing/queues/{queueId}/members/{memberId}

    DELETE /v2/organizations/{orgId}/queues/{queueId}/users/{memberId}

    DELETE /api/v2/routing/queues/{queueId}/members/{memberId}

    Conversation

    assignment-service (internal)

    Public API (Developer Center)

    PATCH /v2/organizations/{orgId}/conversations/{conversationId}

    PATCH /api/v2/routing/conversations/{conversationId}

    POST /v2/organizations/{orgId}/conversations/{conversationId}/assign

    POST /api/v2/conversations/{conversationId}/assign

    Please let me know if you need any additional information.

    Note:  I may not receive notifications for replies in this thread. For follow-up, please email me at kumar.kopalle@genesys.com

    Regards,
    Kumar



    ------------------------------
    Raghavendra Kopalle
    Director, Architecture
    ------------------------------



  • 6.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 07-07-2026 11:29

    GET /api/v2/routing/queues/{queueId}/estimatedwaittime and GET /api/v2/routing/queues/{queueId}/mediatypes/{mediaType}/estimatedwaittime used to affect Assignment service...is that still the case?



    ------------------------------
    George Ganahl, Orchestrator Maestro
    Technical Adoption Champion
    Genesys
    ------------------------------



  • 7.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 07-09-2026 07:22

    Good morning, 

    Could you please specify which are those limits for each one of the internal endpoints?  What will be the rate  limit (requests per minute) per organization for each of the affected endpoints? Additionally, for rollout and validation conditions, what is the deployment schedule by environment (Dev/Test/Production), and will we be able to validate behavior before activation in production?  

    Related to exceptions or limit increases: If necessary, is it possible to request an increase in limits or a temporary exception for critical integrations?

    Thank you very much. 

    Regards!

    Laura. 



    ------------------------------
    Laura Cepeda
    ------------------------------



  • 8.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 07-10-2026 07:30

    Good morning,

    Thank you for your questions on the Rate Limiting on Assignment Service Public APIs announcement.

    Below are the initial per-organization limits (requests per minute, RPM) for the endpoints listed in the announcement. The table includes both internal assignment-service paths and the corresponding public Platform API paths.

    These limits were set using observed traffic plus headroom for a first release. We will monitor usage after enablement and revisit limits if needed.

    Initial RPM limits

    Queue

    Method

    assignment-service (internal)

    Public API (Developer Center)

    Initial limit (RPM per org)

    PUT

    /v2/organizations/{orgId}/queues/bulk

    No direct public Platform API path (internal platform use only)

    50

    POST

    /v2/organizations/{orgId}/queues

    POST /api/v2/routing/queues

    180

    PUT

    /v2/organizations/{orgId}/queues/{queueId}

    PUT /api/v2/routing/queues/{queueId}

    360

    Agent

    Method

    assignment-service (internal)

    Public API (Developer Center)

    Initial limit (RPM per org)

    PUT

    /v2/organizations/{orgId}/agents/{agentId}/queues

    PATCH /api/v2/users/{userId}/queues

    150

    PUT

    /v2/organizations/{orgId}/agents/{agentId}/queues/{queueId}

    PATCH /api/v2/users/{userId}/queues/{queueId}

    150

    PUT

    /v2/organizations/{orgId}/agents/{agentId}/status

    PUT /api/v2/users/{userId}/routingstatus

    300

    Wrap-up codes

    Method

    assignment-service (internal)

    Public API (Developer Center)

    Initial limit (RPM per org)

    GET

    /organizations/{orgId}/wrapupCodes

    GET /api/v2/routing/wrapupcodes

    Outer-limits (platform default 100 RPM; tier 200 RPM where applicable)

    Queue members

    Method

    assignment-service (internal)

    Public API (Developer Center)

    Initial limit (RPM per org)

    GET

    /v2/organizations/{orgId}/queues/{queueId}/users

    GET /api/v2/routing/queues/{queueId}/members

    20,000

    POST

    /v2/organizations/{orgId}/queues/{queueId}/users

    POST /api/v2/routing/queues/{queueId}/members

    3,000

    PUT

    /v2/organizations/{orgId}/queues/{queueId}/users

    PATCH /api/v2/routing/queues/{queueId}/members

    150

    PUT

    /v2/organizations/{orgId}/queues/{queueId}/users/{memberId}

    PATCH /api/v2/routing/queues/{queueId}/members/{memberId}

    150

    DELETE

    /v2/organizations/{orgId}/queues/{queueId}/users/{memberId}

    DELETE /api/v2/routing/queues/{queueId}/members/{memberId}

    150

    Conversation

    Method

    assignment-service (internal)

    Public API (Developer Center)

    Initial limit (RPM per org)

    PATCH

    /v2/organizations/{orgId}/conversations/{conversationId}

    PATCH /api/v2/routing/conversations/{conversationId}

    10,500

    POST

    /v2/organizations/{orgId}/conversations/{conversationId}/assign

    POST /api/v2/conversations/{conversationId}/assign

    750

    Rollout

    We are currently in the 60-day notice period for this change on public Platform API routes. Limits will be rolled out incrementally by environmentproduction enablement for customer-facing use will align with that notice period.

    These are initial limits. We will monitor traffic and throttling (HTTP 429) after enablement and adjust limits based on observed usage where appropriate.

    Limit increases / integration concerns

    If you believe a critical integration may exceed these limits, please contact us with the organization ID(s)endpoint(s), and expected traffic (RPM). We will review during the rollout period and discuss options if needed.

    Please let us know if you need any additional information.

    Regards,



    ------------------------------
    Raghavendra Kopalle
    Director, Architecture
    ------------------------------



  • 9.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 4 days ago
    Edited by Yusuke Managi 4 days ago

    Hello Raghavendra,

    Thank you for the information.

    Could you please confirm the planned production implementation date for these API rate limits? As we are already well into the 60-day notice period, we would like to understand when the limits are expected to be enabled in production.

    Also, could you please confirm whether the initial rate limits listed in your post are still current, or if there have been any changes since they were published?

    Based on our current assessment, we expect that the following endpoints may exceed the proposed limits:

    • PATCH /api/v2/users/{userId}/queues
    • GET /api/v2/routing/wrapupcodes

    Would it be possible to increase the limits for these endpoints as follows?

    • PATCH /api/v2/users/{userId}/queues: 200 RPM
    • GET /api/v2/routing/wrapupcodes: 150 RPM

    We would appreciate your review and feedback.

    Thank you.



    ------------------------------
    Yusuke Managi
    ------------------------------



  • 10.  RE: Rate Limiting on Assignment Service Public APIs

    Posted yesterday

    Hi Yusuke,

    Thank you for the detailed assessment and for flagging the endpoints of concern.

    Production enablement will follow a phased rollout: we will enable limits first in Dev and Test, then proceed to production, aligned with the 60-day notice period.

    Initial rate limits shared earlier in this thread are still current; there have been no changes to those values. These initial limits were set based on observed traffic (with headroom for a first rollout).

    Regarding your request to increase:

    • PATCH /api/v2/users/{userId}/queues to 200 RPM
    • GET /api/v2/routing/wrapupcodes to 150 RPM

    For most endpoints in this announcement, the initial RPM values are fixed in the service for this first rollout, so we are not able to raise them per organization without a broader platform change. The published 150 RPM for PATCH /api/v2/users/{userId}/queues therefore remains the current limit for now. We will continue to monitor usage and revisit as we move toward outer-limits, where per-organization adjustments are more flexible.

    Wrapup code query (GET /api/v2/routing/wrapupcodes) is the exception - it already uses outer-limits, so we can review a per-organization adjustment through that process. If you can share the organization ID(s) and expected traffic for that endpoint, we will take a look and follow up.

    Regards,



    ------------------------------
    Raghavendra Kopalle
    Director, Architecture
    ------------------------------



  • 11.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 07-10-2026 09:23

    Hi all,

    Following up with additional clarifications on questions raised in this thread.

    Scope of the rate limit

    Limits are enforced per organization, per endpoint (each affected operation has its own RPM bucket for that organization).

    They are not applied per OAuth client or per integration. All traffic to the same assignment-service endpoint for the same organization shares that endpoint's quota, regardless of caller (for example external OAuth/API clients or in-platform flows that route through the public API).

    Data Actions

    There is no separate rate limit for Data Actions. If a Data Action invokes one of the public Platform API routes covered by this announcement, it is subject to the same per-organization, per-endpoint limits as any other caller to that route for that org.

    HTTP 429

    When limits are exceeded, callers may receive HTTP 429. This is standard platform behavior for rate limiting and is already described in the main announcement.

    Rollout

    We are currently in the 60-day notice period for this change on public Platform API routes. Limits will be rolled out incrementally by environment; production enablement for customer-facing use will align with that notice period.



    ------------------------------
    Raghavendra Kopalle
    Director, Architecture
    ------------------------------



  • 12.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 30 days ago

    Hi,

    I understand that this announcement involves a review of Rate Limits with a focus on the Assignment Service Public APIs. Currently, all Rate Limits that can be publicly disclosed are consolidated on this page. (https://developer.genesys.cloud/organization/organization/limits)

    Some of these were already listed prior to this update, while others have not yet been documented.

    Can we assume that the new restrictions will also be added to this Rate Limits page around August 10, 2026? It would be helpful to know whether developers and users should continue to refer to this page going forward when they want to understand the details of Rate Limits.

    Thanks,

    OKano

    Manager Solutions Consulting, Japan, Genesys



    ------------------------------
    Yasushi Okano
    Principal Solution Consultant
    ------------------------------



  • 13.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 28 days ago

    Hi OKano - Yes. Once these limits are published as public platform limits via outer-limits, they will be reflected on the Rate Limits page. That page remains the reference for publicly documented outer-limits values. Until then, this announcement covers the routes and initial limits in scope.



    ------------------------------
    Raghavendra Kopalle
    Director, Architecture
    ------------------------------



  • 14.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 3 hours ago
    Thank you for providing this detailed announcement about the upcoming organization scoped rate limits. This is an important change that requires careful consideration for any integrations that interact with the affected Public API endpoints.
     
    The primary change involves the introduction of HTTP rate limits, measured in requests per minute, on selected Public API routes that are implemented in the assignment service and exposed through the Public API surface as documented on the Developer Center and within the SDKs. Under normal load conditions, requests will continue to behave exactly as they do today without any disruption. However, when a caller exceeds the configured limit for an organization, the service may respond with an HTTP 429 Too Many Requests status code. This response will include standard retry guidance, and developers should respect the Retry After header when it is present to implement appropriate backoff strategies. Integrations that assume unlimited throughput or that do not currently handle 429 responses will need to be updated to include retry logic with backoff to avoid intermittent failures.
     
    It is important to note what is not changing with this update. We are not removing or renaming any resources, altering URL paths, or modifying the successful response schemas for these operations. The limits are enforced behind feature toggles and will be rolled out incrementally by environment, starting with development and test environments first, followed by production regions in phases. This phased approach allows us to observe traffic patterns and tune the limits as needed before full production deployment.
     
    The affected areas include a range of admin and operational endpoints that are already part of our public contract. For queues, the affected endpoints are PUT `/v2/organizations/{orgId}/queues/bulk`, POST `/v2/organizations/{orgId}/queues`, and PUT `/v2/organizations/{orgId}/queues/{queueId}`. For agents, the impacted endpoints are PUT `/v2/organizations/{orgId}/agents/{agentId}/queues`, PUT `/v2/organizations/{orgId}/agents/{agentId}/queues/{queueId}`, and PUT `/v2/organizations/{orgId}/agents/{agentId}/status`. The wrap up codes endpoint GET `/organizations/{orgId}/wrapupCodes` is also included. For queue members, the affected operations are GET `/v2/organizations/{orgId}/queues/{queueId}/users`, POST `/v2/organizations/{orgId}/queues/{queueId}/users`, PUT `/v2/organizations/{orgId}/queues/{queueId}/users`, PUT `/v2/organizations/{orgId}/queues/{queueId}/users/{memberId}`, and DELETE `/v2/organizations/{orgId}/queues/{queueId}/users/{memberId}`. Finally, for conversations, the impacted endpoints are PATCH `/v2/organizations/{orgId}/conversations/{conversationId}` and POST `/v2/organizations/{orgId}/conversations/{conversationId}/assign`.
     
    The rationale behind introducing these rate limits is to protect platform stability and ensure fair usage across all customers. Several assignment service endpoints support high volume automation and operational workloads, and without throttling controls, excessive traffic from a single organization can impact latency and availability for other tenants sharing the same infrastructure. Applying organization level rate limits reduces noisy neighbor effects, improves platform stability and predictability, supports capacity planning, and aligns these endpoints with standard Genesys Cloud throttling behavior using HTTP 429 responses.
     
    Customers and partners who call the affected Public API routes at high sustained volume or with tight retry loops may begin to see HTTP 429 responses when their traffic for an organization exceeds the configured requests per minute limit. Successful 2xx responses and error responses for invalid input, which are 4xx responses other than 429, remain unchanged when traffic is under the limit. When throttled, the client should back off and retry, and if your integration does not handle 429 responses today, you may see intermittent failures until the client is updated. Typical interactive or moderate volume usage that stays below the published limits should behave as before without any impact.
     
    The effective date for this change is Monday, August 10, 2026. The limits are applied per organization behind feature toggles and enabled incrementally so that traffic can be monitored and adjusted where needed. Developer Center documentation will be aligned to reflect the 429 behavior and recommend client patterns where applicable. The issue references associated with this change are AS-4497 for Queue Controller, AS-4498 for Agent Endpoints, AS-4394 for Wrap up Code Query, AS-4500 for Queue Member Operations, AS-4502 for Conversation Controller, and AS-2886 for Queue Create and Update. We recommend reviewing your integrations that use these endpoints and updating them to handle 429 responses with appropriate retry logic to ensure continued smooth operation.


    ------------------------------
    Camila Meneghini
    ------------------------------



  • 15.  RE: Rate Limiting on Assignment Service Public APIs

    Posted 34 minutes ago

    Thanks, Camila. I agree that this is an important consideration, especially for integrations using Data Actions.

    One question that comes to mind is how teams will be able to monitor their consumption against the per-organization, per-endpoint limits before they start receiving HTTP 429 responses.

    It would be particularly useful to have some visibility into the remaining quota or throttling metrics, especially when multiple integrations share the same organization and endpoint.

    Has anyone seen whether Genesys plans to expose this information through the platform or API response headers?



    ------------------------------
    [Camilo]
    [Claro Colombia]
    [Colombia]
    ------------------------------