/// An enum to be used to mark the essential (for polling) fields in an
/// API-specific Operation object. A custom Operation object may contain many
/// different fields, but only few of them are essential to conduct a successful
/// polling process.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum OperationResponseMapping {
    /// Do not use.
    Undefined = 0,
    /// A field in an API-specific (custom) Operation object which carries the same
    /// meaning as google.longrunning.Operation.name.
    Name = 1,
    /// A field in an API-specific (custom) Operation object which carries the same
    /// meaning as google.longrunning.Operation.done. If the annotated field is of
    /// an enum type, `annotated_field_name == EnumType.DONE` semantics should be
    /// equivalent to `Operation.done == true`. If the annotated field is of type
    /// boolean, then it should follow the same semantics as Operation.done.
    /// Otherwise, a non-empty value should be treated as `Operation.done == true`.
    Status = 2,
    /// A field in an API-specific (custom) Operation object which carries the same
    /// meaning as google.longrunning.Operation.error.code.
    ErrorCode = 3,
    /// A field in an API-specific (custom) Operation object which carries the same
    /// meaning as google.longrunning.Operation.error.message.
    ErrorMessage = 4,
}
impl OperationResponseMapping {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            OperationResponseMapping::Undefined => "UNDEFINED",
            OperationResponseMapping::Name => "NAME",
            OperationResponseMapping::Status => "STATUS",
            OperationResponseMapping::ErrorCode => "ERROR_CODE",
            OperationResponseMapping::ErrorMessage => "ERROR_MESSAGE",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "UNDEFINED" => Some(Self::Undefined),
            "NAME" => Some(Self::Name),
            "STATUS" => Some(Self::Status),
            "ERROR_CODE" => Some(Self::ErrorCode),
            "ERROR_MESSAGE" => Some(Self::ErrorMessage),
            _ => None,
        }
    }
}
