resources:
    App\Entity\OgLive:
        processor: App\State\Processor\OgLiveProcessor
        input: App\Dto\Input\OgLiveInput
        output: App\Dto\Output\OgLiveOutput
        normalizationContext:
            groups: ['default', 'og-live:read']
        denormalizationContext:
            groups: ['og-live:write']
        operations:
            ApiPlatform\Metadata\GetCollection:
                provider: App\State\Provider\OgLiveProvider
                filters:
                    - 'api_platform.filter.og_live.order'
                    - 'api_platform.filter.og_live.search'
                    - 'api_platform.filter.og_live.boolean'

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

            oglives_sync:
                class: ApiPlatform\Metadata\Post
                method: POST
                input: false
                uriTemplate: /og-lives/sync
                controller: App\Controller\OgBoot\OgLive\SyncAction

            get_collection_oglives:
                shortName: OgLive Server
                description: Get collection of OgLive
                class: ApiPlatform\Metadata\GetCollection
                method: GET
                input: false
                uriTemplate: /og-lives/server/get-collection
                controller: App\Controller\OgBoot\OgLive\GetCollectionAction

            get_oglive:
                shortName: OgLive Server
                description: Get OgLive
                class: ApiPlatform\Metadata\Get
                method: GET
                input: false
                uriTemplate: /og-lives/server/{uuid}/get
                controller: App\Controller\OgBoot\OgLive\GetAction

            get_isos:
                shortName: OgLive Server
                description: Get Isos of OgLive
                class: ApiPlatform\Metadata\GetCollection
                method: GET
                input: false
                uriTemplate: /og-lives/server/get-isos
                controller: App\Controller\OgBoot\OgLive\GetIsosAction

            get_default:
                shortName: OgLive Server
                description: Get default OgLive
                class: ApiPlatform\Metadata\GetCollection
                method: GET
                input: false
                uriTemplate: /og-lives/server/get-default
                controller: App\Controller\OgBoot\OgLive\GetDefaultAction

            set_default:
                shortName: OgLive Server
                description: Set default OgLive
                class: ApiPlatform\Metadata\Post
                method: POST
                input: false
                uriTemplate: /og-lives/server/{uuid}/set-default
                controller: App\Controller\OgBoot\OgLive\SetDefaultAction

            install:
                shortName: OgLive Server
                description: Install OgLive
                class: ApiPlatform\Metadata\Post
                method: POST
                input: false
                uriTemplate: /og-lives/server/{uuid}/install
                controller: App\Controller\OgBoot\OgLive\InstallAction

            uninstall:
                shortName: OgLive Server
                description: Uninstall OgLive
                class: ApiPlatform\Metadata\Post
                method: POST
                input: false
                uriTemplate: /og-lives/server/{uuid}/uninstall
                controller: App\Controller\OgBoot\OgLive\UninstallAction

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