##########################
#        Core
##########################

apiv2_core_data_groups:
  description: 'API-v2 Core - Data Groups'
  api: OrangeHRM\Core\Api\Rest\DataGroupAPI
  module: core
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false } }

apiv2_core_about_organization:
  description: 'API-v2 Core - About'
  api: OrangeHRM\Core\Api\Rest\AboutOrganizationAPI
  module: core
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false } }

##########################
#        Admin
##########################

apiv2_admin_education:
  description: 'API-v2 Admin - Education'
  api: OrangeHRM\Admin\Api\EducationAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false } }

apiv2_admin_employment_status:
  description: 'API-v2 Admin - Employment Status'
  api: OrangeHRM\Admin\Api\EmploymentStatusAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }

apiv2_admin_job_category:
  description: 'API-v2 Admin - Job Categories'
  api: OrangeHRM\Admin\Api\JobCategoryAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_job_specification:
  description: 'API-v2 Admin - Job Specification'
  api: OrangeHRM\Admin\Api\JobSpecificationAPI
  module: admin
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false } }

apiv2_admin_job_title:
  description: 'API-v2 Admin - Job Titles'
  api: OrangeHRM\Admin\Api\JobTitleAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }

apiv2_admin_language:
  description: 'API-v2 Admin - Languages'
  api: OrangeHRM\Admin\Api\LanguageAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_license:
  description: 'API-v2 Admin - Licenses'
  api: OrangeHRM\Admin\Api\LicenseAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_membership:
  description: 'API-v2 Admin - Memberships'
  api: OrangeHRM\Admin\Api\MembershipAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_nationality:
  description: 'API-v2 Admin - Nationalities'
  api: OrangeHRM\Admin\Api\NationalityAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_organization:
  description: 'API-v2 Admin - General Information'
  api: OrangeHRM\Admin\Api\OrganizationAPI
  module: admin
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }

apiv2_admin_paygrade_currency:
  description: 'API-v2 Admin - Pay Grade Currencies'
  api: OrangeHRM\Admin\Api\PayGradeCurrencyAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_paygrade_allowed_currency:
  description: 'API-v2 Admin - Pay Grade Allowed Currencies'
  api: OrangeHRM\Admin\Api\PayGradeAllowedCurrencyAPI
  module: admin
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }

apiv2_admin_skill:
  description: 'API-v2 Admin - Skills'
  api: OrangeHRM\Admin\Api\SkillAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_subunit:
  description: 'API-v2 Admin - Organization Structure'
  api: OrangeHRM\Admin\Api\SubunitAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }

apiv2_admin_user:
  description: 'API-v2 Admin - Users'
  api: OrangeHRM\Admin\Api\UserAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_email_configuration:
  description: 'API-v2 Admin - Email Configuration'
  api: OrangeHRM\Admin\Api\EmailConfigurationAPI
  module: admin
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }

apiv2_admin_oauth_client:
  description: 'API-v2 Admin - OAuth Clients'
  api: OrangeHRM\OAuth\Api\OAuthClientAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_location:
  description: 'API-v2 Admin - Locations'
  api: OrangeHRM\Admin\Api\LocationAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_pay_grade:
  description: 'API-v2 Admin - Pay Grade'
  api: OrangeHRM\Admin\Api\PayGradeAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_modules:
  description: 'API-v2 Admin - Modules'
  api: OrangeHRM\Admin\Api\ModulesAPI
  module: admin
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }

apiv2_admin_work_shift:
  description: 'API-v2 Admin - Work Shift'
  api: OrangeHRM\Admin\Api\WorkShiftAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_work_shift_employee:
  description: 'API-v2 Admin - Work Shift Employee'
  api: OrangeHRM\Admin\Api\WorkShiftEmployeeAPI
  module: admin
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }

apiv2_admin_email_subscriptions:
  description: 'API-v2 Admin - Email Subscription'
  api: OrangeHRM\Admin\Api\EmailSubscriptionAPI
  module: admin
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }

apiv2_admin_email_subscribers:
  description: 'API-v2 Admin - Email Subscriber'
  api: OrangeHRM\Admin\Api\EmailSubscriberAPI
  module: admin
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_admin_validation_user_name:
  description: 'Admin-v2 Admin - User Name Validation'
  api: OrangeHRM\Admin\Api\ValidationUserNameAPI
  module: admin
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }

##########################
#        PIM
##########################

apiv2_pim_custom_field:
  description: 'API-v2 PIM - Custom Fields'
  api: OrangeHRM\Pim\Api\CustomFieldAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_pim_optional_field:
  description: 'API-v2 PIM - Optional Fields'
  api: OrangeHRM\Pim\Api\OptionalFieldAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_pim_reporting_method:
  description: 'API-v2 PIM - Reporting Methods'
  api: OrangeHRM\Pim\Api\ReportingMethodConfigurationAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_pim_termination_reason:
  description: 'API-v2 PIM - Termination Reasons'
  api: OrangeHRM\Pim\Api\TerminationReasonConfigurationAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_pim_employee:
  description: 'API-v2 PIM - Employees'
  api: OrangeHRM\Pim\Api\EmployeeAPI
  module: pim
  allowed:
    read: true
    create: true
    update: false
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: false, delete: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_employee_emergency_contact:
  description: 'API-v2 PIM - Employee Emergency Contacts'
  api: OrangeHRM\Pim\Api\EmpEmergencyContactAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }

apiv2_pim_employee_contact_detail:
  description: 'API-v2 PIM - Employee Contact Details'
  api: OrangeHRM\Pim\Api\EmployeeContactDetailsAPI
  module: pim
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: true, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false, self: true } }

apiv2_pim_employee_dependent:
  description: 'API-v2 PIM - Employee Dependents'
  api: OrangeHRM\Pim\Api\EmployeeDependentAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }

apiv2_pim_employee_education:
  description: 'API-v2 PIM - Employee Education'
  api: OrangeHRM\Pim\Api\EmployeeEducationAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }

apiv2_pim_employee_immigration:
  description: 'API-v2 PIM - Employee Immigration Records'
  api: OrangeHRM\Pim\Api\EmployeeImmigrationRecordAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }

apiv2_pim_employee_job_detail:
  description: 'API-v2 PIM - Employee Job Details'
  api: OrangeHRM\Pim\Api\EmployeeJobDetailAPI
  module: pim
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_employee_language:
  description: 'API-v2 PIM - Employee Languages'
  api: OrangeHRM\Pim\Api\EmployeeLanguageAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }

apiv2_pim_employee_license:
  description: 'API-v2 PIM - Employee License'
  api: OrangeHRM\Pim\Api\EmployeeLicenseAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }

apiv2_pim_employee_personal_detail:
  description: 'API-v2 PIM - Employee Personal Details'
  api: OrangeHRM\Pim\Api\EmployeePersonalDetailAPI
  module: pim
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: true, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false, self: true } }

apiv2_pim_employee_picture:
  description: 'API-v2 PIM - Employee Photograph'
  api: OrangeHRM\Pim\Api\EmployeePictureAPI
  module: pim
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: true, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false, self: true } }

apiv2_pim_employee_salary_component:
  description: 'API-v2 PIM - Employee Salary Components'
  api: OrangeHRM\Pim\Api\EmployeeSalaryComponentAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_employee_skill:
  description: 'API-v2 PIM - Employee Skills'
  api: OrangeHRM\Pim\Api\EmployeeSkillAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }

apiv2_pim_employee_termination:
  description: 'API-v2 PIM - Employee Termination'
  api: OrangeHRM\Pim\Api\EmployeeTerminationAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_employee_work_experience:
  description: 'API-v2 PIM - Employee Work Experience'
  api: OrangeHRM\Pim\Api\EmployeeWorkExperienceAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }

apiv2_pim_employee_employment_contract:
  description: 'API-v2 PIM - Employee Employment Contract'
  api: OrangeHRM\Pim\Api\EmploymentContractAPI
  module: pim
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_employee_attachment:
  description: 'API-v2 PIM - Employee Attachments'
  api: OrangeHRM\Pim\Api\EmployeeAttachmentAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }

apiv2_pim_employee_custom_field:
  description: 'API-v2 PIM - Employee Custom Field'
  api: OrangeHRM\Pim\Api\EmployeeCustomFieldAPI
  module: pim
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: true, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false, self: true } }

apiv2_pim_employee_allowed_language:
  description: 'API-v2 PIM - Employee Allowed Language'
  api: OrangeHRM\Pim\Api\EmployeeAllowedLanguageAPI
  module: pim
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_employee_allowed_license:
  description: 'API-v2 PIM - Employee Allowed Licenses'
  api: OrangeHRM\Pim\Api\EmployeeAllowedLicenseAPI
  module: pim
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_employee_allowed_skill:
  description: 'API-v2 PIM - Employee Allowed Skills'
  api: OrangeHRM\Pim\Api\EmployeeAllowedSkillAPI
  module: pim
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_report_to_supervisor:
  description: 'API-v2 PIM - Employee Report To Supervisors'
  api: OrangeHRM\Pim\Api\EmployeeSupervisorAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_report_to_subordinate:
  description: 'API-v2 PIM - Employee Report To Subordinates'
  api: OrangeHRM\Pim\Api\EmployeeSubordinateAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_report_to_allowed_employees:
  description: 'API-v2 PIM - Employee Allowed Supervisors/Subordinates'
  api: OrangeHRM\Pim\Api\EmployeeAllowedReportToEmployeeAPI
  module: pim
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_pim_employee_memberships:
  description: 'API-v2 PIM - Employee Memberships'
  api: OrangeHRM\Pim\Api\EmployeeMembershipAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: true } }

apiv2_pim_tax_exemptions:
  description: 'API-v2 PIM - Tax Exemptions'
  api: OrangeHRM\Pim\Api\EmpUsTaxExemptionAPI
  module: pim
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false } }

apiv2_pim_employee_work_shift:
  description: 'API-v2 PIM - Employee Work Shift'
  api: OrangeHRM\Pim\Api\EmployeeWorkShiftAPI
  module: pim
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }

apiv2_pim_employee_count:
  description: 'API-v2 PIM - Employee Count'
  api: OrangeHRM\Pim\Api\EmployeeCountAPI
  module: pim
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }

apiv2_pim_employee_csv_import:
  description: 'API-v2 PIM - Employee CSV Import'
  api: OrangeHRM\Pim\Api\EmployeeCSVImportAPI
  module: pim
  allowed:
    read: true
    create: true
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: false, delete: false } }

apiv2_pim_defined_reports:
  description: 'API-v2 PIM - Defined Reports'
  api: OrangeHRM\Pim\Api\PimDefinedReportAPI
  module: pim
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }

apiv2_pim_reports:
  description: 'API-v2 PIM - Reports'
  api: OrangeHRM\Pim\Api\PimReportAPI
  module: pim
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }

apiv2_pim_reports_data:
  description: 'API-v2 PIM - Reports Data'
  api: OrangeHRM\Pim\Api\PimReportDataAPI
  module: pim
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }

apiv2_pim_update_password:
  description: 'API-v2 PIM - Password Update'
  api: OrangeHRM\Pim\Api\UpdatePasswordAPI
  module: pim
  allowed:
    read: false
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: false, create: false, update: true, delete: false, self: true } }
    - { role: ESS, permission: { read: false, create: false, update: true, delete: false, self: true } }

apiv2_pim_validation_work_email:
  description: 'API-v2 PIM - Work Email Validation'
  api: OrangeHRM\Pim\Api\ValidationEmployeeEmailAPI
  module: pim
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }

##########################
#        Leave
##########################

apiv2_leave_holiday:
  description: 'API-v2 Leave - Holidays'
  api: OrangeHRM\Leave\Api\HolidayAPI
  module: leave
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_workweek:
  description: 'API-v2 Leave - Work Week'
  api: OrangeHRM\Leave\Api\WorkWeekAPI
  module: leave
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_eligible_leave_types:
  description: 'API-v2 Leave - Eligible Leave Types'
  api: OrangeHRM\Leave\Api\EligibleLeaveTypeAPI
  module: leave
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_leave_types:
  description: 'API-v2 Leave - Leave Types'
  api: OrangeHRM\Leave\Api\LeaveTypeAPI
  module: leave
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_leave_period:
  description: 'API-v2 Leave - Leave Period'
  api: OrangeHRM\Leave\Api\LeavePeriodAPI
  module: leave
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_my_leave_requests:
  description: 'API-v2 Leave - My Leave Requests'
  api: OrangeHRM\Leave\Api\MyLeaveRequestAPI
  module: leave
  allowed:
    read: true
    create: true
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: false, self: true } }
    - { role: ESS, permission: { read: true, create: true, update: true, delete: false, self: true } }

apiv2_leave_employee_leave_requests:
  description: 'API-v2 Leave - Employee Leave Requests'
  api: OrangeHRM\Leave\Api\EmployeeLeaveRequestAPI
  module: leave
  allowed:
    read: true
    create: true
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: false } }
    - { role: ESS, permission: { read: false, create: false, update: true, delete: false } }
    - { role: Supervisor, permission: { read: true, create: true, update: true, delete: false } }

apiv2_leave_employee_bulk_leave_requests:
  description: 'API-v2 Leave - Employee Bulk Leave Requests'
  api: OrangeHRM\Leave\Api\EmployeeBulkLeaveRequestAPI
  module: leave
  allowed:
    read: false
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: false, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: false, create: false, update: true, delete: false } }

apiv2_leave_leave_entitlements:
  description: 'API-v2 Leave - Leave Entitlements'
  api: OrangeHRM\Leave\Api\LeaveEntitlementAPI
  module: leave
  allowed:
    read: true
    create: true
    update: true
    delete: true
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true, self: true } }
    - { role: Admin, permission: { read: true, create: true, update: true, delete: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_leave_balance:
  description: 'API-v2 Leave - Leave Balance'
  api: OrangeHRM\Leave\Api\LeaveBalanceAPI
  module: leave
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_employee_leave_entitlements:
  description: 'API-v2 Leave - Employee Leave Entitlements'
  api: OrangeHRM\Leave\Api\EmployeeLeaveEntitlementAPI
  module: leave
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_leave_entitlements_validation:
  description: 'API-v2 Leave - Leave Entitlements Validation'
  api: OrangeHRM\Leave\Api\ValidationLeaveEntitlementValueAPI
  module: leave
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_overlap_leaves:
  description: 'API-v2 Leave - Overlap Leaves'
  api: OrangeHRM\Leave\Api\LeaveOverlapAPI
  module: leave
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }

apiv2_leave_leave_request_comment:
  description: 'API-v2 Leave - Leave Request Comment'
  api: OrangeHRM\Leave\Api\LeaveRequestCommentAPI
  module: leave
  allowed:
    read: true
    create: true
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: false, delete: false, self: true } }
    - { role: Admin, permission: { read: true, create: true, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: true, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: false, delete: false } }

apiv2_leave_leave_comment:
  description: 'API-v2 Leave - Leave Comment'
  api: OrangeHRM\Leave\Api\LeaveCommentAPI
  module: leave
  allowed:
    read: true
    create: true
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: true, update: false, delete: false } }
    - { role: Admin, permission: { read: true, create: true, update: false, delete: false, self: true } }
    - { role: ESS, permission: { read: true, create: true, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: true, update: false, delete: false } }
    - { role: Supervisor, permission: { read: true, create: true, update: false, delete: false, self: true } }

apiv2_leave_leaves:
  description: 'API-v2 Leave - Leave'
  api: OrangeHRM\Leave\Api\LeaveAPI
  module: leave
  allowed:
    read: true
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false } }
    - { role: Admin, permission: { read: true, create: false, update: true, delete: false, self: true } }
    - { role: ESS, permission: { read: true, create: false, update: true, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: true, delete: false, self: true } }

apiv2_leave_bulk_leaves:
  description: 'API-v2 Leave - Employee Bulk Leaves'
  api: OrangeHRM\Leave\Api\BulkLeaveAPI
  module: leave
  allowed:
    read: false
    create: false
    update: true
    delete: false
  permissions:
    - { role: Admin, permission: { read: false, create: false, update: true, delete: false } }
    - { role: ESS, permission: { read: false, create: false, update: true, delete: false } }

apiv2_leave_reports:
  description: 'API-v2 Leave - Reports'
  api: OrangeHRM\Leave\Api\LeaveReportAPI
  module: leave
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false, self: true } }

apiv2_leave_reports_data:
  description: 'API-v2 Leave - Reports Data'
  api: OrangeHRM\Leave\Api\LeaveReportDataAPI
  module: leave
  allowed:
    read: true
    create: false
    update: false
    delete: false
  permissions:
    - { role: Admin, permission: { read: true, create: false, update: false, delete: false } }
    - { role: ESS, permission: { read: true, create: false, update: false, delete: false, self: true } }
    - { role: Supervisor, permission: { read: true, create: false, update: false, delete: false } }
