#####################################################################
# NOTE: THIS FILE IS AUTOGENERATED BY GENERATE_TYPES.PY. DO NOT EDIT!
#####################################################################
from typing import Optional, List
from google.protobuf.timestamp_pb2 import Timestamp
from google.protobuf.duration_pb2 import Duration
from enum import Enum
# API imports
from ..base import Datatype
from ...compiler.registry import register_data 
# Type imports
from ..datatypes import common as common

class AltitudeMode(int, Enum):
    """Altitude mode switch.

    Attributes:
        ABSOLUTE (0): meters above Mean Sea Level
        RELATIVE (1): meters above takeoff position
    """
    ABSOLUTE = 0 
    RELATIVE = 1 

class HeadingMode(int, Enum):
    """Heading mode switch.

    Attributes:
        TO_TARGET (0): orient towards the target location
        HEADING_START (1): orient towards the given heading
    """
    TO_TARGET = 0 
    HEADING_START = 1 

class ReferenceFrame(int, Enum):
    """Reference frame mode switch.

    Attributes:
        BODY (0): vehicle reference frame
        NEU (1): NEU (North, East, Up) reference frame
    """
    BODY = 0 
    NEU = 1 

class PoseMode(int, Enum):
    """Pose mode switch.

    Attributes:
        ANGLE (0): absolute angle
        OFFSET (1): request data // Offset from current
        VELOCITY (2): rotational velocities
    """
    ANGLE = 0 
    OFFSET = 1 
    VELOCITY = 2 

@register_data
class ImagingSensorConfiguration(Datatype):
    """Configuration for an imaging sensor.    
    
    Attributes:
        id (int): target imaging sensor ID    
        set_primary (bool): set this sensor as the primary stream    
        set_fps (int): target FPS for stream    
    """
    id: int
    set_primary: bool
    set_fps: int

