src/Api/OpenAPI/Server/Api/StudioApiInterface.php
<?php

/**
 * StudioApiInterface.
 *
 * PHP version 8.1.1
 *
 * @category Class
 *
 * @author   OpenAPI Generator team
 *
 * @see     https://github.com/openapitools/openapi-generator
 */

/**
 * Catroweb API.
 *
 * API for the Catrobat Share Platform
 *
 * The version of the OpenAPI document: v1.6.0
 * Contact: webmaster@catrobat.org
 * Generated by: https://github.com/openapitools/openapi-generator.git
 */

/**
 * NOTE: This class is auto generated by the openapi generator program.
 * https://github.com/openapitools/openapi-generator
 * Do not edit the class manually.
 */

namespace OpenAPI\Server\Api;

use Symfony\Component\HttpFoundation\File\UploadedFile;

/**
 * StudioApiInterface Interface Doc Comment.
 *
 * @category Interface
 *
 * @author   OpenAPI Generator team
 *
 * @see     https://github.com/openapitools/openapi-generator
 */
interface StudioApiInterface
{
  /**
   * Sets authentication method BearerAuth.
   *
   * @param string|null $value value of the BearerAuth authentication method
   */
  public function setBearerAuth(?string $value): void;

  /**
   * Operation studioIdDelete.
   *
   * Delete a studio (only available to studio admins)
   *
   * @param string $id              (required)
   * @param string $accept_language (optional, default to 'en')
   * @param int    &$responseCode   The HTTP Response Code
   * @param array  $responseHeaders Additional HTTP headers to return with the response ()
   */
  public function studioIdDelete(
    string $id,
    string $accept_language,
    int &$responseCode,
    array &$responseHeaders,
  ): void;

  /**
   * Operation studioIdGet.
   *
   * Get studio details (private studios are only available to members)
   *
   * @param string $id              (required)
   * @param string $accept_language (optional, default to 'en')
   * @param int    &$responseCode   The HTTP Response Code
   * @param array  $responseHeaders Additional HTTP headers to return with the response ()
   */
  public function studioIdGet(
    string $id,
    string $accept_language,
    int &$responseCode,
    array &$responseHeaders,
  ): array|object|null;

  /**
   * Operation studioIdPost.
   *
   * Update a Studio (only available to studio admins)
   *
   * @param string            $id              (required)
   * @param string            $accept_language (optional, default to 'en')
   * @param string|null       $name            The name of the studio (character: min 3, max 180) (optional)
   * @param string|null       $description     A small description about the Studio (character: min 1, max 3000) (optional)
   * @param bool|null         $is_public       This flag sets the studios&#39; visibility to public or private (optional)
   * @param bool|null         $enable_comments This flag enables or disabled the possibility to add comments to the studio (optional)
   * @param UploadedFile|null $image_file      Cover image; Size limit 1MB; Supported extensions are jpeg, png, webp; (optional)
   * @param int               &$responseCode   The HTTP Response Code
   * @param array             $responseHeaders Additional HTTP headers to return with the response ()
   */
  public function studioIdPost(
    string $id,
    string $accept_language,
    ?string $name,
    ?string $description,
    ?bool $is_public,
    ?bool $enable_comments,
    ?UploadedFile $image_file,
    int &$responseCode,
    array &$responseHeaders,
  ): array|object|null;

  /**
   * Operation studioPost.
   *
   * Create a new Studio
   *
   * @param string            $accept_language (optional, default to 'en')
   * @param string|null       $name            The name of the studio (character: min 3, max 180) (optional)
   * @param string|null       $description     A small description about the Studio (character: min 1, max 3000) (optional)
   * @param bool              $is_public       This flag sets the studios&#39; visibility to public or private (optional, default to true)
   * @param bool              $enable_comments This flag enables or disabled the possibility to add comments to the studio (optional, default to true)
   * @param UploadedFile|null $image_file      Cover image; Size limit 1MB; Supported extensions are jpeg, png, webp; (optional)
   * @param int               &$responseCode   The HTTP Response Code
   * @param array             $responseHeaders Additional HTTP headers to return with the response ()
   */
  public function studioPost(
    string $accept_language,
    ?string $name,
    ?string $description,
    bool $is_public,
    bool $enable_comments,
    ?UploadedFile $image_file,
    int &$responseCode,
    array &$responseHeaders,
  ): array|object|null;
}
