helm-api 0.1.0

Helm client library for Rust
// This file is generated by rust-protobuf 2.7.0. Do not edit
// @generated

// https://github.com/Manishearth/rust-clippy/issues/702
#![allow(unknown_lints)]
#![allow(clippy::all)]

#![cfg_attr(rustfmt, rustfmt_skip)]

#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unsafe_code)]
#![allow(unused_imports)]
#![allow(unused_results)]
//! Generated file from `hapi/rudder/rudder.proto`

use protobuf::Message as Message_imported_for_functions;
use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;

/// Generated files are compatible only with the same version
/// of protobuf runtime.
const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_7_0;

#[derive(PartialEq,Clone,Default)]
pub struct Result {
    // message fields
    pub info: ::std::string::String,
    pub log: ::protobuf::RepeatedField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a Result {
    fn default() -> &'a Result {
        <Result as ::protobuf::Message>::default_instance()
    }
}

impl Result {
    pub fn new() -> Result {
        ::std::default::Default::default()
    }

    // string info = 1;


    pub fn get_info(&self) -> &str {
        &self.info
    }
    pub fn clear_info(&mut self) {
        self.info.clear();
    }

    // Param is passed by value, moved
    pub fn set_info(&mut self, v: ::std::string::String) {
        self.info = v;
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_info(&mut self) -> &mut ::std::string::String {
        &mut self.info
    }

    // Take field
    pub fn take_info(&mut self) -> ::std::string::String {
        ::std::mem::replace(&mut self.info, ::std::string::String::new())
    }

    // repeated string log = 2;


    pub fn get_log(&self) -> &[::std::string::String] {
        &self.log
    }
    pub fn clear_log(&mut self) {
        self.log.clear();
    }

    // Param is passed by value, moved
    pub fn set_log(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.log = v;
    }

    // Mutable pointer to the field.
    pub fn mut_log(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.log
    }

    // Take field
    pub fn take_log(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.log, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for Result {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.info)?;
                },
                2 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.log)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if !self.info.is_empty() {
            my_size += ::protobuf::rt::string_size(1, &self.info);
        }
        for value in &self.log {
            my_size += ::protobuf::rt::string_size(2, &value);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if !self.info.is_empty() {
            os.write_string(1, &self.info)?;
        }
        for v in &self.log {
            os.write_string(2, &v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> Result {
        Result::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "info",
                    |m: &Result| { &m.info },
                    |m: &mut Result| { &mut m.info },
                ));
                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "log",
                    |m: &Result| { &m.log },
                    |m: &mut Result| { &mut m.log },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<Result>(
                    "Result",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static Result {
        static mut instance: ::protobuf::lazy::Lazy<Result> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const Result,
        };
        unsafe {
            instance.get(Result::new)
        }
    }
}

impl ::protobuf::Clear for Result {
    fn clear(&mut self) {
        self.info.clear();
        self.log.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for Result {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for Result {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum Result_Status {
    UNKNOWN = 0,
    SUCCESS = 1,
    UNCHANGED = 2,
    ERROR = 3,
}

impl ::protobuf::ProtobufEnum for Result_Status {
    fn value(&self) -> i32 {
        *self as i32
    }

    fn from_i32(value: i32) -> ::std::option::Option<Result_Status> {
        match value {
            0 => ::std::option::Option::Some(Result_Status::UNKNOWN),
            1 => ::std::option::Option::Some(Result_Status::SUCCESS),
            2 => ::std::option::Option::Some(Result_Status::UNCHANGED),
            3 => ::std::option::Option::Some(Result_Status::ERROR),
            _ => ::std::option::Option::None
        }
    }

    fn values() -> &'static [Self] {
        static values: &'static [Result_Status] = &[
            Result_Status::UNKNOWN,
            Result_Status::SUCCESS,
            Result_Status::UNCHANGED,
            Result_Status::ERROR,
        ];
        values
    }

    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::EnumDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                ::protobuf::reflect::EnumDescriptor::new("Result_Status", file_descriptor_proto())
            })
        }
    }
}

impl ::std::marker::Copy for Result_Status {
}

impl ::std::default::Default for Result_Status {
    fn default() -> Self {
        Result_Status::UNKNOWN
    }
}

impl ::protobuf::reflect::ProtobufValue for Result_Status {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Enum(self.descriptor())
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct VersionReleaseRequest {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a VersionReleaseRequest {
    fn default() -> &'a VersionReleaseRequest {
        <VersionReleaseRequest as ::protobuf::Message>::default_instance()
    }
}

impl VersionReleaseRequest {
    pub fn new() -> VersionReleaseRequest {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for VersionReleaseRequest {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> VersionReleaseRequest {
        VersionReleaseRequest::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let fields = ::std::vec::Vec::new();
                ::protobuf::reflect::MessageDescriptor::new::<VersionReleaseRequest>(
                    "VersionReleaseRequest",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static VersionReleaseRequest {
        static mut instance: ::protobuf::lazy::Lazy<VersionReleaseRequest> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const VersionReleaseRequest,
        };
        unsafe {
            instance.get(VersionReleaseRequest::new)
        }
    }
}

impl ::protobuf::Clear for VersionReleaseRequest {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for VersionReleaseRequest {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for VersionReleaseRequest {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct VersionReleaseResponse {
    // message fields
    pub name: ::std::string::String,
    pub version: ::std::string::String,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a VersionReleaseResponse {
    fn default() -> &'a VersionReleaseResponse {
        <VersionReleaseResponse as ::protobuf::Message>::default_instance()
    }
}

impl VersionReleaseResponse {
    pub fn new() -> VersionReleaseResponse {
        ::std::default::Default::default()
    }

    // string name = 1;


    pub fn get_name(&self) -> &str {
        &self.name
    }
    pub fn clear_name(&mut self) {
        self.name.clear();
    }

    // Param is passed by value, moved
    pub fn set_name(&mut self, v: ::std::string::String) {
        self.name = v;
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
        &mut self.name
    }

    // Take field
    pub fn take_name(&mut self) -> ::std::string::String {
        ::std::mem::replace(&mut self.name, ::std::string::String::new())
    }

    // string version = 2;


    pub fn get_version(&self) -> &str {
        &self.version
    }
    pub fn clear_version(&mut self) {
        self.version.clear();
    }

    // Param is passed by value, moved
    pub fn set_version(&mut self, v: ::std::string::String) {
        self.version = v;
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_version(&mut self) -> &mut ::std::string::String {
        &mut self.version
    }

    // Take field
    pub fn take_version(&mut self) -> ::std::string::String {
        ::std::mem::replace(&mut self.version, ::std::string::String::new())
    }
}

impl ::protobuf::Message for VersionReleaseResponse {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.version)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if !self.name.is_empty() {
            my_size += ::protobuf::rt::string_size(1, &self.name);
        }
        if !self.version.is_empty() {
            my_size += ::protobuf::rt::string_size(2, &self.version);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if !self.name.is_empty() {
            os.write_string(1, &self.name)?;
        }
        if !self.version.is_empty() {
            os.write_string(2, &self.version)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> VersionReleaseResponse {
        VersionReleaseResponse::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "name",
                    |m: &VersionReleaseResponse| { &m.name },
                    |m: &mut VersionReleaseResponse| { &mut m.name },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "version",
                    |m: &VersionReleaseResponse| { &m.version },
                    |m: &mut VersionReleaseResponse| { &mut m.version },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<VersionReleaseResponse>(
                    "VersionReleaseResponse",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static VersionReleaseResponse {
        static mut instance: ::protobuf::lazy::Lazy<VersionReleaseResponse> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const VersionReleaseResponse,
        };
        unsafe {
            instance.get(VersionReleaseResponse::new)
        }
    }
}

impl ::protobuf::Clear for VersionReleaseResponse {
    fn clear(&mut self) {
        self.name.clear();
        self.version.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for VersionReleaseResponse {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for VersionReleaseResponse {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct InstallReleaseRequest {
    // message fields
    pub release: ::protobuf::SingularPtrField<super::release::Release>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a InstallReleaseRequest {
    fn default() -> &'a InstallReleaseRequest {
        <InstallReleaseRequest as ::protobuf::Message>::default_instance()
    }
}

impl InstallReleaseRequest {
    pub fn new() -> InstallReleaseRequest {
        ::std::default::Default::default()
    }

    // .hapi.release.Release release = 1;


    pub fn get_release(&self) -> &super::release::Release {
        self.release.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_release(&mut self) {
        self.release.clear();
    }

    pub fn has_release(&self) -> bool {
        self.release.is_some()
    }

    // Param is passed by value, moved
    pub fn set_release(&mut self, v: super::release::Release) {
        self.release = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_release(&mut self) -> &mut super::release::Release {
        if self.release.is_none() {
            self.release.set_default();
        }
        self.release.as_mut().unwrap()
    }

    // Take field
    pub fn take_release(&mut self) -> super::release::Release {
        self.release.take().unwrap_or_else(|| super::release::Release::new())
    }
}

impl ::protobuf::Message for InstallReleaseRequest {
    fn is_initialized(&self) -> bool {
        for v in &self.release {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.release)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.release.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.release.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> InstallReleaseRequest {
        InstallReleaseRequest::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "release",
                    |m: &InstallReleaseRequest| { &m.release },
                    |m: &mut InstallReleaseRequest| { &mut m.release },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<InstallReleaseRequest>(
                    "InstallReleaseRequest",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static InstallReleaseRequest {
        static mut instance: ::protobuf::lazy::Lazy<InstallReleaseRequest> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const InstallReleaseRequest,
        };
        unsafe {
            instance.get(InstallReleaseRequest::new)
        }
    }
}

impl ::protobuf::Clear for InstallReleaseRequest {
    fn clear(&mut self) {
        self.release.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for InstallReleaseRequest {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for InstallReleaseRequest {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct InstallReleaseResponse {
    // message fields
    pub release: ::protobuf::SingularPtrField<super::release::Release>,
    pub result: ::protobuf::SingularPtrField<Result>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a InstallReleaseResponse {
    fn default() -> &'a InstallReleaseResponse {
        <InstallReleaseResponse as ::protobuf::Message>::default_instance()
    }
}

impl InstallReleaseResponse {
    pub fn new() -> InstallReleaseResponse {
        ::std::default::Default::default()
    }

    // .hapi.release.Release release = 1;


    pub fn get_release(&self) -> &super::release::Release {
        self.release.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_release(&mut self) {
        self.release.clear();
    }

    pub fn has_release(&self) -> bool {
        self.release.is_some()
    }

    // Param is passed by value, moved
    pub fn set_release(&mut self, v: super::release::Release) {
        self.release = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_release(&mut self) -> &mut super::release::Release {
        if self.release.is_none() {
            self.release.set_default();
        }
        self.release.as_mut().unwrap()
    }

    // Take field
    pub fn take_release(&mut self) -> super::release::Release {
        self.release.take().unwrap_or_else(|| super::release::Release::new())
    }

    // .hapi.services.rudder.Result result = 2;


    pub fn get_result(&self) -> &Result {
        self.result.as_ref().unwrap_or_else(|| Result::default_instance())
    }
    pub fn clear_result(&mut self) {
        self.result.clear();
    }

    pub fn has_result(&self) -> bool {
        self.result.is_some()
    }

    // Param is passed by value, moved
    pub fn set_result(&mut self, v: Result) {
        self.result = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_result(&mut self) -> &mut Result {
        if self.result.is_none() {
            self.result.set_default();
        }
        self.result.as_mut().unwrap()
    }

    // Take field
    pub fn take_result(&mut self) -> Result {
        self.result.take().unwrap_or_else(|| Result::new())
    }
}

impl ::protobuf::Message for InstallReleaseResponse {
    fn is_initialized(&self) -> bool {
        for v in &self.release {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.result {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.release)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.result)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.release.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.result.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.release.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.result.as_ref() {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> InstallReleaseResponse {
        InstallReleaseResponse::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "release",
                    |m: &InstallReleaseResponse| { &m.release },
                    |m: &mut InstallReleaseResponse| { &mut m.release },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Result>>(
                    "result",
                    |m: &InstallReleaseResponse| { &m.result },
                    |m: &mut InstallReleaseResponse| { &mut m.result },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<InstallReleaseResponse>(
                    "InstallReleaseResponse",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static InstallReleaseResponse {
        static mut instance: ::protobuf::lazy::Lazy<InstallReleaseResponse> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const InstallReleaseResponse,
        };
        unsafe {
            instance.get(InstallReleaseResponse::new)
        }
    }
}

impl ::protobuf::Clear for InstallReleaseResponse {
    fn clear(&mut self) {
        self.release.clear();
        self.result.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for InstallReleaseResponse {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for InstallReleaseResponse {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct DeleteReleaseRequest {
    // message fields
    pub release: ::protobuf::SingularPtrField<super::release::Release>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a DeleteReleaseRequest {
    fn default() -> &'a DeleteReleaseRequest {
        <DeleteReleaseRequest as ::protobuf::Message>::default_instance()
    }
}

impl DeleteReleaseRequest {
    pub fn new() -> DeleteReleaseRequest {
        ::std::default::Default::default()
    }

    // .hapi.release.Release release = 1;


    pub fn get_release(&self) -> &super::release::Release {
        self.release.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_release(&mut self) {
        self.release.clear();
    }

    pub fn has_release(&self) -> bool {
        self.release.is_some()
    }

    // Param is passed by value, moved
    pub fn set_release(&mut self, v: super::release::Release) {
        self.release = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_release(&mut self) -> &mut super::release::Release {
        if self.release.is_none() {
            self.release.set_default();
        }
        self.release.as_mut().unwrap()
    }

    // Take field
    pub fn take_release(&mut self) -> super::release::Release {
        self.release.take().unwrap_or_else(|| super::release::Release::new())
    }
}

impl ::protobuf::Message for DeleteReleaseRequest {
    fn is_initialized(&self) -> bool {
        for v in &self.release {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.release)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.release.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.release.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> DeleteReleaseRequest {
        DeleteReleaseRequest::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "release",
                    |m: &DeleteReleaseRequest| { &m.release },
                    |m: &mut DeleteReleaseRequest| { &mut m.release },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<DeleteReleaseRequest>(
                    "DeleteReleaseRequest",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static DeleteReleaseRequest {
        static mut instance: ::protobuf::lazy::Lazy<DeleteReleaseRequest> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const DeleteReleaseRequest,
        };
        unsafe {
            instance.get(DeleteReleaseRequest::new)
        }
    }
}

impl ::protobuf::Clear for DeleteReleaseRequest {
    fn clear(&mut self) {
        self.release.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for DeleteReleaseRequest {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for DeleteReleaseRequest {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct DeleteReleaseResponse {
    // message fields
    pub release: ::protobuf::SingularPtrField<super::release::Release>,
    pub result: ::protobuf::SingularPtrField<Result>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a DeleteReleaseResponse {
    fn default() -> &'a DeleteReleaseResponse {
        <DeleteReleaseResponse as ::protobuf::Message>::default_instance()
    }
}

impl DeleteReleaseResponse {
    pub fn new() -> DeleteReleaseResponse {
        ::std::default::Default::default()
    }

    // .hapi.release.Release release = 1;


    pub fn get_release(&self) -> &super::release::Release {
        self.release.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_release(&mut self) {
        self.release.clear();
    }

    pub fn has_release(&self) -> bool {
        self.release.is_some()
    }

    // Param is passed by value, moved
    pub fn set_release(&mut self, v: super::release::Release) {
        self.release = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_release(&mut self) -> &mut super::release::Release {
        if self.release.is_none() {
            self.release.set_default();
        }
        self.release.as_mut().unwrap()
    }

    // Take field
    pub fn take_release(&mut self) -> super::release::Release {
        self.release.take().unwrap_or_else(|| super::release::Release::new())
    }

    // .hapi.services.rudder.Result result = 2;


    pub fn get_result(&self) -> &Result {
        self.result.as_ref().unwrap_or_else(|| Result::default_instance())
    }
    pub fn clear_result(&mut self) {
        self.result.clear();
    }

    pub fn has_result(&self) -> bool {
        self.result.is_some()
    }

    // Param is passed by value, moved
    pub fn set_result(&mut self, v: Result) {
        self.result = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_result(&mut self) -> &mut Result {
        if self.result.is_none() {
            self.result.set_default();
        }
        self.result.as_mut().unwrap()
    }

    // Take field
    pub fn take_result(&mut self) -> Result {
        self.result.take().unwrap_or_else(|| Result::new())
    }
}

impl ::protobuf::Message for DeleteReleaseResponse {
    fn is_initialized(&self) -> bool {
        for v in &self.release {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.result {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.release)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.result)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.release.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.result.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.release.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.result.as_ref() {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> DeleteReleaseResponse {
        DeleteReleaseResponse::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "release",
                    |m: &DeleteReleaseResponse| { &m.release },
                    |m: &mut DeleteReleaseResponse| { &mut m.release },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Result>>(
                    "result",
                    |m: &DeleteReleaseResponse| { &m.result },
                    |m: &mut DeleteReleaseResponse| { &mut m.result },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<DeleteReleaseResponse>(
                    "DeleteReleaseResponse",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static DeleteReleaseResponse {
        static mut instance: ::protobuf::lazy::Lazy<DeleteReleaseResponse> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const DeleteReleaseResponse,
        };
        unsafe {
            instance.get(DeleteReleaseResponse::new)
        }
    }
}

impl ::protobuf::Clear for DeleteReleaseResponse {
    fn clear(&mut self) {
        self.release.clear();
        self.result.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for DeleteReleaseResponse {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for DeleteReleaseResponse {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct UpgradeReleaseRequest {
    // message fields
    pub current: ::protobuf::SingularPtrField<super::release::Release>,
    pub target: ::protobuf::SingularPtrField<super::release::Release>,
    pub Timeout: i64,
    pub Wait: bool,
    pub Recreate: bool,
    pub Force: bool,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a UpgradeReleaseRequest {
    fn default() -> &'a UpgradeReleaseRequest {
        <UpgradeReleaseRequest as ::protobuf::Message>::default_instance()
    }
}

impl UpgradeReleaseRequest {
    pub fn new() -> UpgradeReleaseRequest {
        ::std::default::Default::default()
    }

    // .hapi.release.Release current = 1;


    pub fn get_current(&self) -> &super::release::Release {
        self.current.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_current(&mut self) {
        self.current.clear();
    }

    pub fn has_current(&self) -> bool {
        self.current.is_some()
    }

    // Param is passed by value, moved
    pub fn set_current(&mut self, v: super::release::Release) {
        self.current = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_current(&mut self) -> &mut super::release::Release {
        if self.current.is_none() {
            self.current.set_default();
        }
        self.current.as_mut().unwrap()
    }

    // Take field
    pub fn take_current(&mut self) -> super::release::Release {
        self.current.take().unwrap_or_else(|| super::release::Release::new())
    }

    // .hapi.release.Release target = 2;


    pub fn get_target(&self) -> &super::release::Release {
        self.target.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_target(&mut self) {
        self.target.clear();
    }

    pub fn has_target(&self) -> bool {
        self.target.is_some()
    }

    // Param is passed by value, moved
    pub fn set_target(&mut self, v: super::release::Release) {
        self.target = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_target(&mut self) -> &mut super::release::Release {
        if self.target.is_none() {
            self.target.set_default();
        }
        self.target.as_mut().unwrap()
    }

    // Take field
    pub fn take_target(&mut self) -> super::release::Release {
        self.target.take().unwrap_or_else(|| super::release::Release::new())
    }

    // int64 Timeout = 3;


    pub fn get_Timeout(&self) -> i64 {
        self.Timeout
    }
    pub fn clear_Timeout(&mut self) {
        self.Timeout = 0;
    }

    // Param is passed by value, moved
    pub fn set_Timeout(&mut self, v: i64) {
        self.Timeout = v;
    }

    // bool Wait = 4;


    pub fn get_Wait(&self) -> bool {
        self.Wait
    }
    pub fn clear_Wait(&mut self) {
        self.Wait = false;
    }

    // Param is passed by value, moved
    pub fn set_Wait(&mut self, v: bool) {
        self.Wait = v;
    }

    // bool Recreate = 5;


    pub fn get_Recreate(&self) -> bool {
        self.Recreate
    }
    pub fn clear_Recreate(&mut self) {
        self.Recreate = false;
    }

    // Param is passed by value, moved
    pub fn set_Recreate(&mut self, v: bool) {
        self.Recreate = v;
    }

    // bool Force = 6;


    pub fn get_Force(&self) -> bool {
        self.Force
    }
    pub fn clear_Force(&mut self) {
        self.Force = false;
    }

    // Param is passed by value, moved
    pub fn set_Force(&mut self, v: bool) {
        self.Force = v;
    }
}

impl ::protobuf::Message for UpgradeReleaseRequest {
    fn is_initialized(&self) -> bool {
        for v in &self.current {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.target {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.current)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.target)?;
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int64()?;
                    self.Timeout = tmp;
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.Wait = tmp;
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.Recreate = tmp;
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.Force = tmp;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.current.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.target.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if self.Timeout != 0 {
            my_size += ::protobuf::rt::value_size(3, self.Timeout, ::protobuf::wire_format::WireTypeVarint);
        }
        if self.Wait != false {
            my_size += 2;
        }
        if self.Recreate != false {
            my_size += 2;
        }
        if self.Force != false {
            my_size += 2;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.current.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.target.as_ref() {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if self.Timeout != 0 {
            os.write_int64(3, self.Timeout)?;
        }
        if self.Wait != false {
            os.write_bool(4, self.Wait)?;
        }
        if self.Recreate != false {
            os.write_bool(5, self.Recreate)?;
        }
        if self.Force != false {
            os.write_bool(6, self.Force)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> UpgradeReleaseRequest {
        UpgradeReleaseRequest::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "current",
                    |m: &UpgradeReleaseRequest| { &m.current },
                    |m: &mut UpgradeReleaseRequest| { &mut m.current },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "target",
                    |m: &UpgradeReleaseRequest| { &m.target },
                    |m: &mut UpgradeReleaseRequest| { &mut m.target },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
                    "Timeout",
                    |m: &UpgradeReleaseRequest| { &m.Timeout },
                    |m: &mut UpgradeReleaseRequest| { &mut m.Timeout },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                    "Wait",
                    |m: &UpgradeReleaseRequest| { &m.Wait },
                    |m: &mut UpgradeReleaseRequest| { &mut m.Wait },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                    "Recreate",
                    |m: &UpgradeReleaseRequest| { &m.Recreate },
                    |m: &mut UpgradeReleaseRequest| { &mut m.Recreate },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                    "Force",
                    |m: &UpgradeReleaseRequest| { &m.Force },
                    |m: &mut UpgradeReleaseRequest| { &mut m.Force },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<UpgradeReleaseRequest>(
                    "UpgradeReleaseRequest",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static UpgradeReleaseRequest {
        static mut instance: ::protobuf::lazy::Lazy<UpgradeReleaseRequest> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const UpgradeReleaseRequest,
        };
        unsafe {
            instance.get(UpgradeReleaseRequest::new)
        }
    }
}

impl ::protobuf::Clear for UpgradeReleaseRequest {
    fn clear(&mut self) {
        self.current.clear();
        self.target.clear();
        self.Timeout = 0;
        self.Wait = false;
        self.Recreate = false;
        self.Force = false;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for UpgradeReleaseRequest {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for UpgradeReleaseRequest {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct UpgradeReleaseResponse {
    // message fields
    pub release: ::protobuf::SingularPtrField<super::release::Release>,
    pub result: ::protobuf::SingularPtrField<Result>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a UpgradeReleaseResponse {
    fn default() -> &'a UpgradeReleaseResponse {
        <UpgradeReleaseResponse as ::protobuf::Message>::default_instance()
    }
}

impl UpgradeReleaseResponse {
    pub fn new() -> UpgradeReleaseResponse {
        ::std::default::Default::default()
    }

    // .hapi.release.Release release = 1;


    pub fn get_release(&self) -> &super::release::Release {
        self.release.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_release(&mut self) {
        self.release.clear();
    }

    pub fn has_release(&self) -> bool {
        self.release.is_some()
    }

    // Param is passed by value, moved
    pub fn set_release(&mut self, v: super::release::Release) {
        self.release = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_release(&mut self) -> &mut super::release::Release {
        if self.release.is_none() {
            self.release.set_default();
        }
        self.release.as_mut().unwrap()
    }

    // Take field
    pub fn take_release(&mut self) -> super::release::Release {
        self.release.take().unwrap_or_else(|| super::release::Release::new())
    }

    // .hapi.services.rudder.Result result = 2;


    pub fn get_result(&self) -> &Result {
        self.result.as_ref().unwrap_or_else(|| Result::default_instance())
    }
    pub fn clear_result(&mut self) {
        self.result.clear();
    }

    pub fn has_result(&self) -> bool {
        self.result.is_some()
    }

    // Param is passed by value, moved
    pub fn set_result(&mut self, v: Result) {
        self.result = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_result(&mut self) -> &mut Result {
        if self.result.is_none() {
            self.result.set_default();
        }
        self.result.as_mut().unwrap()
    }

    // Take field
    pub fn take_result(&mut self) -> Result {
        self.result.take().unwrap_or_else(|| Result::new())
    }
}

impl ::protobuf::Message for UpgradeReleaseResponse {
    fn is_initialized(&self) -> bool {
        for v in &self.release {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.result {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.release)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.result)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.release.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.result.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.release.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.result.as_ref() {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> UpgradeReleaseResponse {
        UpgradeReleaseResponse::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "release",
                    |m: &UpgradeReleaseResponse| { &m.release },
                    |m: &mut UpgradeReleaseResponse| { &mut m.release },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Result>>(
                    "result",
                    |m: &UpgradeReleaseResponse| { &m.result },
                    |m: &mut UpgradeReleaseResponse| { &mut m.result },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<UpgradeReleaseResponse>(
                    "UpgradeReleaseResponse",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static UpgradeReleaseResponse {
        static mut instance: ::protobuf::lazy::Lazy<UpgradeReleaseResponse> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const UpgradeReleaseResponse,
        };
        unsafe {
            instance.get(UpgradeReleaseResponse::new)
        }
    }
}

impl ::protobuf::Clear for UpgradeReleaseResponse {
    fn clear(&mut self) {
        self.release.clear();
        self.result.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for UpgradeReleaseResponse {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for UpgradeReleaseResponse {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct RollbackReleaseRequest {
    // message fields
    pub current: ::protobuf::SingularPtrField<super::release::Release>,
    pub target: ::protobuf::SingularPtrField<super::release::Release>,
    pub Timeout: i64,
    pub Wait: bool,
    pub Recreate: bool,
    pub Force: bool,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a RollbackReleaseRequest {
    fn default() -> &'a RollbackReleaseRequest {
        <RollbackReleaseRequest as ::protobuf::Message>::default_instance()
    }
}

impl RollbackReleaseRequest {
    pub fn new() -> RollbackReleaseRequest {
        ::std::default::Default::default()
    }

    // .hapi.release.Release current = 1;


    pub fn get_current(&self) -> &super::release::Release {
        self.current.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_current(&mut self) {
        self.current.clear();
    }

    pub fn has_current(&self) -> bool {
        self.current.is_some()
    }

    // Param is passed by value, moved
    pub fn set_current(&mut self, v: super::release::Release) {
        self.current = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_current(&mut self) -> &mut super::release::Release {
        if self.current.is_none() {
            self.current.set_default();
        }
        self.current.as_mut().unwrap()
    }

    // Take field
    pub fn take_current(&mut self) -> super::release::Release {
        self.current.take().unwrap_or_else(|| super::release::Release::new())
    }

    // .hapi.release.Release target = 2;


    pub fn get_target(&self) -> &super::release::Release {
        self.target.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_target(&mut self) {
        self.target.clear();
    }

    pub fn has_target(&self) -> bool {
        self.target.is_some()
    }

    // Param is passed by value, moved
    pub fn set_target(&mut self, v: super::release::Release) {
        self.target = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_target(&mut self) -> &mut super::release::Release {
        if self.target.is_none() {
            self.target.set_default();
        }
        self.target.as_mut().unwrap()
    }

    // Take field
    pub fn take_target(&mut self) -> super::release::Release {
        self.target.take().unwrap_or_else(|| super::release::Release::new())
    }

    // int64 Timeout = 3;


    pub fn get_Timeout(&self) -> i64 {
        self.Timeout
    }
    pub fn clear_Timeout(&mut self) {
        self.Timeout = 0;
    }

    // Param is passed by value, moved
    pub fn set_Timeout(&mut self, v: i64) {
        self.Timeout = v;
    }

    // bool Wait = 4;


    pub fn get_Wait(&self) -> bool {
        self.Wait
    }
    pub fn clear_Wait(&mut self) {
        self.Wait = false;
    }

    // Param is passed by value, moved
    pub fn set_Wait(&mut self, v: bool) {
        self.Wait = v;
    }

    // bool Recreate = 5;


    pub fn get_Recreate(&self) -> bool {
        self.Recreate
    }
    pub fn clear_Recreate(&mut self) {
        self.Recreate = false;
    }

    // Param is passed by value, moved
    pub fn set_Recreate(&mut self, v: bool) {
        self.Recreate = v;
    }

    // bool Force = 6;


    pub fn get_Force(&self) -> bool {
        self.Force
    }
    pub fn clear_Force(&mut self) {
        self.Force = false;
    }

    // Param is passed by value, moved
    pub fn set_Force(&mut self, v: bool) {
        self.Force = v;
    }
}

impl ::protobuf::Message for RollbackReleaseRequest {
    fn is_initialized(&self) -> bool {
        for v in &self.current {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.target {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.current)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.target)?;
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_int64()?;
                    self.Timeout = tmp;
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.Wait = tmp;
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.Recreate = tmp;
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_bool()?;
                    self.Force = tmp;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.current.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.target.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if self.Timeout != 0 {
            my_size += ::protobuf::rt::value_size(3, self.Timeout, ::protobuf::wire_format::WireTypeVarint);
        }
        if self.Wait != false {
            my_size += 2;
        }
        if self.Recreate != false {
            my_size += 2;
        }
        if self.Force != false {
            my_size += 2;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.current.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.target.as_ref() {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if self.Timeout != 0 {
            os.write_int64(3, self.Timeout)?;
        }
        if self.Wait != false {
            os.write_bool(4, self.Wait)?;
        }
        if self.Recreate != false {
            os.write_bool(5, self.Recreate)?;
        }
        if self.Force != false {
            os.write_bool(6, self.Force)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> RollbackReleaseRequest {
        RollbackReleaseRequest::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "current",
                    |m: &RollbackReleaseRequest| { &m.current },
                    |m: &mut RollbackReleaseRequest| { &mut m.current },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "target",
                    |m: &RollbackReleaseRequest| { &m.target },
                    |m: &mut RollbackReleaseRequest| { &mut m.target },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
                    "Timeout",
                    |m: &RollbackReleaseRequest| { &m.Timeout },
                    |m: &mut RollbackReleaseRequest| { &mut m.Timeout },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                    "Wait",
                    |m: &RollbackReleaseRequest| { &m.Wait },
                    |m: &mut RollbackReleaseRequest| { &mut m.Wait },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                    "Recreate",
                    |m: &RollbackReleaseRequest| { &m.Recreate },
                    |m: &mut RollbackReleaseRequest| { &mut m.Recreate },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
                    "Force",
                    |m: &RollbackReleaseRequest| { &m.Force },
                    |m: &mut RollbackReleaseRequest| { &mut m.Force },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<RollbackReleaseRequest>(
                    "RollbackReleaseRequest",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static RollbackReleaseRequest {
        static mut instance: ::protobuf::lazy::Lazy<RollbackReleaseRequest> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const RollbackReleaseRequest,
        };
        unsafe {
            instance.get(RollbackReleaseRequest::new)
        }
    }
}

impl ::protobuf::Clear for RollbackReleaseRequest {
    fn clear(&mut self) {
        self.current.clear();
        self.target.clear();
        self.Timeout = 0;
        self.Wait = false;
        self.Recreate = false;
        self.Force = false;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for RollbackReleaseRequest {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for RollbackReleaseRequest {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct RollbackReleaseResponse {
    // message fields
    pub release: ::protobuf::SingularPtrField<super::release::Release>,
    pub result: ::protobuf::SingularPtrField<Result>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a RollbackReleaseResponse {
    fn default() -> &'a RollbackReleaseResponse {
        <RollbackReleaseResponse as ::protobuf::Message>::default_instance()
    }
}

impl RollbackReleaseResponse {
    pub fn new() -> RollbackReleaseResponse {
        ::std::default::Default::default()
    }

    // .hapi.release.Release release = 1;


    pub fn get_release(&self) -> &super::release::Release {
        self.release.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_release(&mut self) {
        self.release.clear();
    }

    pub fn has_release(&self) -> bool {
        self.release.is_some()
    }

    // Param is passed by value, moved
    pub fn set_release(&mut self, v: super::release::Release) {
        self.release = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_release(&mut self) -> &mut super::release::Release {
        if self.release.is_none() {
            self.release.set_default();
        }
        self.release.as_mut().unwrap()
    }

    // Take field
    pub fn take_release(&mut self) -> super::release::Release {
        self.release.take().unwrap_or_else(|| super::release::Release::new())
    }

    // .hapi.services.rudder.Result result = 2;


    pub fn get_result(&self) -> &Result {
        self.result.as_ref().unwrap_or_else(|| Result::default_instance())
    }
    pub fn clear_result(&mut self) {
        self.result.clear();
    }

    pub fn has_result(&self) -> bool {
        self.result.is_some()
    }

    // Param is passed by value, moved
    pub fn set_result(&mut self, v: Result) {
        self.result = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_result(&mut self) -> &mut Result {
        if self.result.is_none() {
            self.result.set_default();
        }
        self.result.as_mut().unwrap()
    }

    // Take field
    pub fn take_result(&mut self) -> Result {
        self.result.take().unwrap_or_else(|| Result::new())
    }
}

impl ::protobuf::Message for RollbackReleaseResponse {
    fn is_initialized(&self) -> bool {
        for v in &self.release {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.result {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.release)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.result)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.release.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.result.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.release.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.result.as_ref() {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> RollbackReleaseResponse {
        RollbackReleaseResponse::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "release",
                    |m: &RollbackReleaseResponse| { &m.release },
                    |m: &mut RollbackReleaseResponse| { &mut m.release },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<Result>>(
                    "result",
                    |m: &RollbackReleaseResponse| { &m.result },
                    |m: &mut RollbackReleaseResponse| { &mut m.result },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<RollbackReleaseResponse>(
                    "RollbackReleaseResponse",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static RollbackReleaseResponse {
        static mut instance: ::protobuf::lazy::Lazy<RollbackReleaseResponse> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const RollbackReleaseResponse,
        };
        unsafe {
            instance.get(RollbackReleaseResponse::new)
        }
    }
}

impl ::protobuf::Clear for RollbackReleaseResponse {
    fn clear(&mut self) {
        self.release.clear();
        self.result.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for RollbackReleaseResponse {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for RollbackReleaseResponse {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct ReleaseStatusRequest {
    // message fields
    pub release: ::protobuf::SingularPtrField<super::release::Release>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a ReleaseStatusRequest {
    fn default() -> &'a ReleaseStatusRequest {
        <ReleaseStatusRequest as ::protobuf::Message>::default_instance()
    }
}

impl ReleaseStatusRequest {
    pub fn new() -> ReleaseStatusRequest {
        ::std::default::Default::default()
    }

    // .hapi.release.Release release = 1;


    pub fn get_release(&self) -> &super::release::Release {
        self.release.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_release(&mut self) {
        self.release.clear();
    }

    pub fn has_release(&self) -> bool {
        self.release.is_some()
    }

    // Param is passed by value, moved
    pub fn set_release(&mut self, v: super::release::Release) {
        self.release = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_release(&mut self) -> &mut super::release::Release {
        if self.release.is_none() {
            self.release.set_default();
        }
        self.release.as_mut().unwrap()
    }

    // Take field
    pub fn take_release(&mut self) -> super::release::Release {
        self.release.take().unwrap_or_else(|| super::release::Release::new())
    }
}

impl ::protobuf::Message for ReleaseStatusRequest {
    fn is_initialized(&self) -> bool {
        for v in &self.release {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.release)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.release.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.release.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> ReleaseStatusRequest {
        ReleaseStatusRequest::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "release",
                    |m: &ReleaseStatusRequest| { &m.release },
                    |m: &mut ReleaseStatusRequest| { &mut m.release },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<ReleaseStatusRequest>(
                    "ReleaseStatusRequest",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static ReleaseStatusRequest {
        static mut instance: ::protobuf::lazy::Lazy<ReleaseStatusRequest> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ReleaseStatusRequest,
        };
        unsafe {
            instance.get(ReleaseStatusRequest::new)
        }
    }
}

impl ::protobuf::Clear for ReleaseStatusRequest {
    fn clear(&mut self) {
        self.release.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for ReleaseStatusRequest {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for ReleaseStatusRequest {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct ReleaseStatusResponse {
    // message fields
    pub release: ::protobuf::SingularPtrField<super::release::Release>,
    pub info: ::protobuf::SingularPtrField<super::info::Info>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a ReleaseStatusResponse {
    fn default() -> &'a ReleaseStatusResponse {
        <ReleaseStatusResponse as ::protobuf::Message>::default_instance()
    }
}

impl ReleaseStatusResponse {
    pub fn new() -> ReleaseStatusResponse {
        ::std::default::Default::default()
    }

    // .hapi.release.Release release = 1;


    pub fn get_release(&self) -> &super::release::Release {
        self.release.as_ref().unwrap_or_else(|| super::release::Release::default_instance())
    }
    pub fn clear_release(&mut self) {
        self.release.clear();
    }

    pub fn has_release(&self) -> bool {
        self.release.is_some()
    }

    // Param is passed by value, moved
    pub fn set_release(&mut self, v: super::release::Release) {
        self.release = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_release(&mut self) -> &mut super::release::Release {
        if self.release.is_none() {
            self.release.set_default();
        }
        self.release.as_mut().unwrap()
    }

    // Take field
    pub fn take_release(&mut self) -> super::release::Release {
        self.release.take().unwrap_or_else(|| super::release::Release::new())
    }

    // .hapi.release.Info info = 2;


    pub fn get_info(&self) -> &super::info::Info {
        self.info.as_ref().unwrap_or_else(|| super::info::Info::default_instance())
    }
    pub fn clear_info(&mut self) {
        self.info.clear();
    }

    pub fn has_info(&self) -> bool {
        self.info.is_some()
    }

    // Param is passed by value, moved
    pub fn set_info(&mut self, v: super::info::Info) {
        self.info = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_info(&mut self) -> &mut super::info::Info {
        if self.info.is_none() {
            self.info.set_default();
        }
        self.info.as_mut().unwrap()
    }

    // Take field
    pub fn take_info(&mut self) -> super::info::Info {
        self.info.take().unwrap_or_else(|| super::info::Info::new())
    }
}

impl ::protobuf::Message for ReleaseStatusResponse {
    fn is_initialized(&self) -> bool {
        for v in &self.release {
            if !v.is_initialized() {
                return false;
            }
        };
        for v in &self.info {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.release)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.info)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.release.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.info.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.release.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.info.as_ref() {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> ReleaseStatusResponse {
        ReleaseStatusResponse::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::release::Release>>(
                    "release",
                    |m: &ReleaseStatusResponse| { &m.release },
                    |m: &mut ReleaseStatusResponse| { &mut m.release },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::info::Info>>(
                    "info",
                    |m: &ReleaseStatusResponse| { &m.info },
                    |m: &mut ReleaseStatusResponse| { &mut m.info },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<ReleaseStatusResponse>(
                    "ReleaseStatusResponse",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static ReleaseStatusResponse {
        static mut instance: ::protobuf::lazy::Lazy<ReleaseStatusResponse> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ReleaseStatusResponse,
        };
        unsafe {
            instance.get(ReleaseStatusResponse::new)
        }
    }
}

impl ::protobuf::Clear for ReleaseStatusResponse {
    fn clear(&mut self) {
        self.release.clear();
        self.info.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for ReleaseStatusResponse {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for ReleaseStatusResponse {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

static file_descriptor_proto_data: &'static [u8] = b"\
    \n\x18hapi/rudder/rudder.proto\x12\x14hapi.services.rudder\x1a\x17hapi/r\
    elease/info.proto\x1a\x1ahapi/release/release.proto\"l\n\x06Result\x12\
    \x12\n\x04info\x18\x01\x20\x01(\tR\x04info\x12\x10\n\x03log\x18\x02\x20\
    \x03(\tR\x03log\"<\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\0\x12\x0b\n\x07S\
    UCCESS\x10\x01\x12\r\n\tUNCHANGED\x10\x02\x12\t\n\x05ERROR\x10\x03\"\x17\
    \n\x15VersionReleaseRequest\"F\n\x16VersionReleaseResponse\x12\x12\n\x04\
    name\x18\x01\x20\x01(\tR\x04name\x12\x18\n\x07version\x18\x02\x20\x01(\t\
    R\x07version\"H\n\x15InstallReleaseRequest\x12/\n\x07release\x18\x01\x20\
    \x01(\x0b2\x15.hapi.release.ReleaseR\x07release\"\x7f\n\x16InstallReleas\
    eResponse\x12/\n\x07release\x18\x01\x20\x01(\x0b2\x15.hapi.release.Relea\
    seR\x07release\x124\n\x06result\x18\x02\x20\x01(\x0b2\x1c.hapi.services.\
    rudder.ResultR\x06result\"G\n\x14DeleteReleaseRequest\x12/\n\x07release\
    \x18\x01\x20\x01(\x0b2\x15.hapi.release.ReleaseR\x07release\"~\n\x15Dele\
    teReleaseResponse\x12/\n\x07release\x18\x01\x20\x01(\x0b2\x15.hapi.relea\
    se.ReleaseR\x07release\x124\n\x06result\x18\x02\x20\x01(\x0b2\x1c.hapi.s\
    ervices.rudder.ResultR\x06result\"\xd7\x01\n\x15UpgradeReleaseRequest\
    \x12/\n\x07current\x18\x01\x20\x01(\x0b2\x15.hapi.release.ReleaseR\x07cu\
    rrent\x12-\n\x06target\x18\x02\x20\x01(\x0b2\x15.hapi.release.ReleaseR\
    \x06target\x12\x18\n\x07Timeout\x18\x03\x20\x01(\x03R\x07Timeout\x12\x12\
    \n\x04Wait\x18\x04\x20\x01(\x08R\x04Wait\x12\x1a\n\x08Recreate\x18\x05\
    \x20\x01(\x08R\x08Recreate\x12\x14\n\x05Force\x18\x06\x20\x01(\x08R\x05F\
    orce\"\x7f\n\x16UpgradeReleaseResponse\x12/\n\x07release\x18\x01\x20\x01\
    (\x0b2\x15.hapi.release.ReleaseR\x07release\x124\n\x06result\x18\x02\x20\
    \x01(\x0b2\x1c.hapi.services.rudder.ResultR\x06result\"\xd8\x01\n\x16Rol\
    lbackReleaseRequest\x12/\n\x07current\x18\x01\x20\x01(\x0b2\x15.hapi.rel\
    ease.ReleaseR\x07current\x12-\n\x06target\x18\x02\x20\x01(\x0b2\x15.hapi\
    .release.ReleaseR\x06target\x12\x18\n\x07Timeout\x18\x03\x20\x01(\x03R\
    \x07Timeout\x12\x12\n\x04Wait\x18\x04\x20\x01(\x08R\x04Wait\x12\x1a\n\
    \x08Recreate\x18\x05\x20\x01(\x08R\x08Recreate\x12\x14\n\x05Force\x18\
    \x06\x20\x01(\x08R\x05Force\"\x80\x01\n\x17RollbackReleaseResponse\x12/\
    \n\x07release\x18\x01\x20\x01(\x0b2\x15.hapi.release.ReleaseR\x07release\
    \x124\n\x06result\x18\x02\x20\x01(\x0b2\x1c.hapi.services.rudder.ResultR\
    \x06result\"G\n\x14ReleaseStatusRequest\x12/\n\x07release\x18\x01\x20\
    \x01(\x0b2\x15.hapi.release.ReleaseR\x07release\"p\n\x15ReleaseStatusRes\
    ponse\x12/\n\x07release\x18\x01\x20\x01(\x0b2\x15.hapi.release.ReleaseR\
    \x07release\x12&\n\x04info\x18\x02\x20\x01(\x0b2\x12.hapi.release.InfoR\
    \x04info2\xa6\x05\n\x14ReleaseModuleService\x12f\n\x07Version\x12+.hapi.\
    services.rudder.VersionReleaseRequest\x1a,.hapi.services.rudder.VersionR\
    eleaseResponse\"\0\x12m\n\x0eInstallRelease\x12+.hapi.services.rudder.In\
    stallReleaseRequest\x1a,.hapi.services.rudder.InstallReleaseResponse\"\0\
    \x12j\n\rDeleteRelease\x12*.hapi.services.rudder.DeleteReleaseRequest\
    \x1a+.hapi.services.rudder.DeleteReleaseResponse\"\0\x12p\n\x0fRollbackR\
    elease\x12,.hapi.services.rudder.RollbackReleaseRequest\x1a-.hapi.servic\
    es.rudder.RollbackReleaseResponse\"\0\x12m\n\x0eUpgradeRelease\x12+.hapi\
    .services.rudder.UpgradeReleaseRequest\x1a,.hapi.services.rudder.Upgrade\
    ReleaseResponse\"\0\x12j\n\rReleaseStatus\x12*.hapi.services.rudder.Rele\
    aseStatusRequest\x1a+.hapi.services.rudder.ReleaseStatusResponse\"\0B\
    \x08Z\x06rudderb\x06proto3\
";

static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy {
    lock: ::protobuf::lazy::ONCE_INIT,
    ptr: 0 as *const ::protobuf::descriptor::FileDescriptorProto,
};

fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
    ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
}

pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
    unsafe {
        file_descriptor_proto_lazy.get(|| {
            parse_descriptor_proto()
        })
    }
}