resources:
    App\Entity\PxeTemplate:
        processor: App\State\Processor\PxeTemplateProcessor
        input: App\Dto\Input\PxeTemplateInput
        output: App\Dto\Output\PxeTemplateOutput
        normalizationContext:
            groups: ['default', 'pxe-template:read']
        denormalizationContext:
            groups: ['pxe-template:write']
        operations:
            ApiPlatform\Metadata\GetCollection:
                provider: App\State\Provider\PxeTemplateProvider
                filters:
                    - 'api_platform.filter.pxe_template.order'
                    - 'api_platform.filter.pxe_template.search'
                    - 'api_platform.filter.pxe_template.boolean'

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

            pxe_template_sync:
                class: ApiPlatform\Metadata\Post
                method: POST
                input: false
                uriTemplate: /pxe-templates/sync
                controller: App\Controller\OgBoot\PxeTemplate\SyncAction

            get_collection_templates:
                shortName: PxeTemplate Server
                description: Get collection of PxeTemplate
                class: ApiPlatform\Metadata\GetCollection
                method: GET
                input: false
                uriTemplate: /pxe-templates/server/get-collection
                controller: App\Controller\OgBoot\PxeTemplate\GetCollectionAction

            get_template:
                shortName: PxeTemplate Server
                description: Get PxeTemplate
                class: ApiPlatform\Metadata\Get
                method: GET
                input: false
                uriTemplate: /pxe-templates/server/{uuid}/get
                controller: App\Controller\OgBoot\PxeTemplate\GetAction

            post_template:
                shortName: PxeTemplate Server
                description: Create PxeTemplate
                class: ApiPlatform\Metadata\Post
                method: POST
                input: false
                uriTemplate: /pxe-templates/server/{uuid}/post
                controller: App\Controller\OgBoot\PxeTemplate\PostAction

            delete_template:
                shortName: PxeTemplate Server
                description: Delete PxeTemplate
                class: ApiPlatform\Metadata\Post
                method: POST
                input: false
                uriTemplate: /pxe-templates/server/{uuid}/delete
                controller: App\Controller\OgBoot\PxeTemplate\DeleteAction

            template_add_clients:
                shortName: PxeTemplate Server
                description: Add Client to PxeTemplate
                class: ApiPlatform\Metadata\Post
                method: POST
                input: App\Dto\Input\PxeTemplateAddClientsInput
                uriTemplate: /pxe-templates/{uuid}/add-clients
                controller: App\Controller\OgBoot\PxeTemplate\AddClientAction

            template_sync_client:
                shortName: PxeTemplate Server
                description: Sync Client to PxeTemplate
                class: ApiPlatform\Metadata\Post
                method: POST
                input: App\Dto\Input\PxeTemplateSyncClientInput
                uriTemplate: /pxe-templates/{uuid}/sync-client
                controller: App\Controller\OgBoot\PxeBootFile\PostAction

            template_delete_client:
                shortName: PxeTemplate Server
                description: Add Client to PxeTemplate
                class: ApiPlatform\Metadata\Post
                method: POST
                input: App\Dto\Input\PxeTemplateDeleteClientInput
                uriTemplate: /pxe-templates/{uuid}/delete-client
                controller: App\Controller\OgBoot\PxeTemplate\DeleteClientAction


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