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

import * as z from "zod/v3";

export type CreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest = {
  /**
   * Single Docker repository team slug component.
   */
  teamSlug: string;
  /**
   * Single Docker repository project slug component.
   */
  projectSlug: string;
  /**
   * Single Docker repository name component.
   */
  repositoryName: string;
  /**
   * Digest of the blob to mount from another repository.
   */
  mount?: string | undefined;
  /**
   * Source repository to mount the blob from.
   */
  from?: string | undefined;
};

/** @internal */
export type CreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest$Outbound =
  {
    teamSlug: string;
    projectSlug: string;
    repositoryName: string;
    mount?: string | undefined;
    from?: string | undefined;
  };

/** @internal */
export const CreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest$outboundSchema:
  z.ZodType<
    CreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest$Outbound,
    z.ZodTypeDef,
    CreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest
  > = z.object({
    teamSlug: z.string(),
    projectSlug: z.string(),
    repositoryName: z.string(),
    mount: z.string().optional(),
    from: z.string().optional(),
  });

export function createByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequestToJSON(
  createByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest:
    CreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest,
): string {
  return JSON.stringify(
    CreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest$outboundSchema
      .parse(createByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest),
  );
}
