resources:
    App\Entity\ImageRepository:
        processor: App\State\Processor\ImageRepositoryProcessor
        input: App\Dto\Input\ImageRepositoryInput
        output: App\Dto\Output\ImageRepositoryOutput
        normalizationContext:
            groups: ['default', 'repository:read']
        denormalizationContext:
            groups: ['repository:write']
        operations:
            ApiPlatform\Metadata\GetCollection:
                provider: App\State\Provider\ImageRepositoryProvider
                filters:
                    - 'api_platform.filter.repository.order'
                    - 'api_platform.filter.repository.search'
                    - 'repository.not_equal_filter'

            ApiPlatform\Metadata\Get:
                provider: App\State\Provider\ImageRepositoryProvider
            ApiPlatform\Metadata\Put:
                provider: App\State\Provider\ImageRepositoryProvider
            ApiPlatform\Metadata\Patch:
                provider: App\State\Provider\ImageRepositoryProvider
            ApiPlatform\Metadata\Post: ~
            ApiPlatform\Metadata\Delete: ~

            image_ogrepository_sync:
                shortName: OgRepository Server
                class: ApiPlatform\Metadata\Post
                method: POST
                input: false
                uriTemplate: /image-repositories/server/{uuid}/sync
                controller: App\Controller\OgRepository\SyncAction

            wol_client:
                class: ApiPlatform\Metadata\Post
                method: POST
                input: App\Dto\Input\WoLInput
                uriTemplate: /image-repositories/wol
                controller: App\Controller\OgRepository\WoLAction

            get_collection_images_ogrepository:
                shortName: OgRepository Server
                description: Get collection of image in OgRepository
                class: ApiPlatform\Metadata\Post
                method: POST
                input: false
                uriTemplate: /image-repositories/server/{uuid}/get-collection
                controller: App\Controller\OgRepository\GetCollectionAction

            images_ogrepository_status:
                shortName: OgRepository Server
                description: Get status of OgRepository
                class: ApiPlatform\Metadata\Get
                method: GET
                input: false
                uriTemplate: /image-repositories/server/{uuid}/status
                controller: App\Controller\OgRepository\StatusAction

            import_image_ogrepository:
                shortName: OgRepository Server
                description: Export Image in OgRepository
                class: ApiPlatform\Metadata\Post
                method: POST
                input:  App\Dto\Input\ImportImageRepositoryInput
                uriTemplate: /image-repositories/{uuid}/import-image
                controller: App\Controller\OgRepository\Image\ImportAction

            convert_image_ogrepository:
                shortName: OgRepository Server
                description: Convert Image in OgRepository
                class: ApiPlatform\Metadata\Post
                method: POST
                input: App\Dto\Input\ConvertImageRepositoryInput
                uriTemplate: /image-repositories/{uuid}/convert-image
                controller: App\Controller\OgRepository\Image\ConvertAction

properties:
    App\Entity\ImageRepository:
        id:
            identifier: false
        uuid:
            identifier: true