/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */

import * as z from "zod/v3";

/**
 * Gets the configuration of an existing rate limit override. Use this to retrieve details about custom rate limit rules that have been created for specific identifiers within a namespace.
 *
 * @remarks
 *
 * This endpoint is useful for:
 * - Verifying override configurations
 * - Checking current limits for specific entities
 * - Auditing rate limit policies
 * - Debugging rate limiting behavior
 * - Retrieving override settings for modification
 */
export type V2RatelimitGetOverrideRequestBody = {
  /**
   * The id or name of the namespace containing the override.
   */
  namespace: string;
  /**
   * The exact identifier pattern for the override you want to retrieve. This must match exactly as it was specified when creating the override.
   *
   * @remarks
   *
   * Important notes:
   * - This is case-sensitive and must match exactly
   * - Include any wildcards (*) that were part of the original pattern
   * - For example, if the override was created for 'premium_*', you must use 'premium_*' here, not a specific ID like 'premium_user1'
   *
   * This field is used to look up the specific override configuration for this pattern.
   */
  identifier: string;
};

/** @internal */
export type V2RatelimitGetOverrideRequestBody$Outbound = {
  namespace: string;
  identifier: string;
};

/** @internal */
export const V2RatelimitGetOverrideRequestBody$outboundSchema: z.ZodType<
  V2RatelimitGetOverrideRequestBody$Outbound,
  z.ZodTypeDef,
  V2RatelimitGetOverrideRequestBody
> = z.object({
  namespace: z.string(),
  identifier: z.string(),
});

export function v2RatelimitGetOverrideRequestBodyToJSON(
  v2RatelimitGetOverrideRequestBody: V2RatelimitGetOverrideRequestBody,
): string {
  return JSON.stringify(
    V2RatelimitGetOverrideRequestBody$outboundSchema.parse(
      v2RatelimitGetOverrideRequestBody,
    ),
  );
}
