// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: device.proto
package device;

public final class Device {

    private Device() {
    }

    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {
    }

    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
        registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
    }

    public interface MonitoringSettingsOrBuilder extends // @@protoc_insertion_point(interface_extends:device.MonitoringSettings)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        boolean hasKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        monitoring.Monitoring.KpiId getKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder();

        /**
         * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
         * @return Whether the kpiDescriptor field is set.
         */
        boolean hasKpiDescriptor();

        /**
         * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
         * @return The kpiDescriptor.
         */
        monitoring.Monitoring.KpiDescriptor getKpiDescriptor();

        /**
         * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
         */
        monitoring.Monitoring.KpiDescriptorOrBuilder getKpiDescriptorOrBuilder();

        /**
         * <code>float sampling_duration_s = 3;</code>
         * @return The samplingDurationS.
         */
        float getSamplingDurationS();

        /**
         * <code>float sampling_interval_s = 4;</code>
         * @return The samplingIntervalS.
         */
        float getSamplingIntervalS();
    }

    /**
     * Protobuf type {@code device.MonitoringSettings}
     */
    public static final class MonitoringSettings extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:device.MonitoringSettings)
    MonitoringSettingsOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use MonitoringSettings.newBuilder() to construct.
        private MonitoringSettings(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private MonitoringSettings() {
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new MonitoringSettings();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return device.Device.internal_static_device_MonitoringSettings_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return device.Device.internal_static_device_MonitoringSettings_fieldAccessorTable.ensureFieldAccessorsInitialized(device.Device.MonitoringSettings.class, device.Device.MonitoringSettings.Builder.class);
        }

        public static final int KPI_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.KpiId kpiId_;

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        @java.lang.Override
        public boolean hasKpiId() {
            return kpiId_ != null;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiId getKpiId() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        public static final int KPI_DESCRIPTOR_FIELD_NUMBER = 2;

        private monitoring.Monitoring.KpiDescriptor kpiDescriptor_;

        /**
         * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
         * @return Whether the kpiDescriptor field is set.
         */
        @java.lang.Override
        public boolean hasKpiDescriptor() {
            return kpiDescriptor_ != null;
        }

        /**
         * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
         * @return The kpiDescriptor.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiDescriptor getKpiDescriptor() {
            return kpiDescriptor_ == null ? monitoring.Monitoring.KpiDescriptor.getDefaultInstance() : kpiDescriptor_;
        }

        /**
         * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiDescriptorOrBuilder getKpiDescriptorOrBuilder() {
            return kpiDescriptor_ == null ? monitoring.Monitoring.KpiDescriptor.getDefaultInstance() : kpiDescriptor_;
        }

        public static final int SAMPLING_DURATION_S_FIELD_NUMBER = 3;

        private float samplingDurationS_ = 0F;

        /**
         * <code>float sampling_duration_s = 3;</code>
         * @return The samplingDurationS.
         */
        @java.lang.Override
        public float getSamplingDurationS() {
            return samplingDurationS_;
        }

        public static final int SAMPLING_INTERVAL_S_FIELD_NUMBER = 4;

        private float samplingIntervalS_ = 0F;

        /**
         * <code>float sampling_interval_s = 4;</code>
         * @return The samplingIntervalS.
         */
        @java.lang.Override
        public float getSamplingIntervalS() {
            return samplingIntervalS_;
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (kpiId_ != null) {
                output.writeMessage(1, getKpiId());
            }
            if (kpiDescriptor_ != null) {
                output.writeMessage(2, getKpiDescriptor());
            }
            if (java.lang.Float.floatToRawIntBits(samplingDurationS_) != 0) {
                output.writeFloat(3, samplingDurationS_);
            }
            if (java.lang.Float.floatToRawIntBits(samplingIntervalS_) != 0) {
                output.writeFloat(4, samplingIntervalS_);
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (kpiId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getKpiId());
            }
            if (kpiDescriptor_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getKpiDescriptor());
            }
            if (java.lang.Float.floatToRawIntBits(samplingDurationS_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(3, samplingDurationS_);
            }
            if (java.lang.Float.floatToRawIntBits(samplingIntervalS_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(4, samplingIntervalS_);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof device.Device.MonitoringSettings)) {
                return super.equals(obj);
            }
            device.Device.MonitoringSettings other = (device.Device.MonitoringSettings) obj;
            if (hasKpiId() != other.hasKpiId())
                return false;
            if (hasKpiId()) {
                if (!getKpiId().equals(other.getKpiId()))
                    return false;
            }
            if (hasKpiDescriptor() != other.hasKpiDescriptor())
                return false;
            if (hasKpiDescriptor()) {
                if (!getKpiDescriptor().equals(other.getKpiDescriptor()))
                    return false;
            }
            if (java.lang.Float.floatToIntBits(getSamplingDurationS()) != java.lang.Float.floatToIntBits(other.getSamplingDurationS()))
                return false;
            if (java.lang.Float.floatToIntBits(getSamplingIntervalS()) != java.lang.Float.floatToIntBits(other.getSamplingIntervalS()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasKpiId()) {
                hash = (37 * hash) + KPI_ID_FIELD_NUMBER;
                hash = (53 * hash) + getKpiId().hashCode();
            }
            if (hasKpiDescriptor()) {
                hash = (37 * hash) + KPI_DESCRIPTOR_FIELD_NUMBER;
                hash = (53 * hash) + getKpiDescriptor().hashCode();
            }
            hash = (37 * hash) + SAMPLING_DURATION_S_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(getSamplingDurationS());
            hash = (37 * hash) + SAMPLING_INTERVAL_S_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(getSamplingIntervalS());
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static device.Device.MonitoringSettings parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static device.Device.MonitoringSettings parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static device.Device.MonitoringSettings parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static device.Device.MonitoringSettings parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static device.Device.MonitoringSettings parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static device.Device.MonitoringSettings parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static device.Device.MonitoringSettings parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static device.Device.MonitoringSettings parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static device.Device.MonitoringSettings parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static device.Device.MonitoringSettings parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static device.Device.MonitoringSettings parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static device.Device.MonitoringSettings parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(device.Device.MonitoringSettings prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code device.MonitoringSettings}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:device.MonitoringSettings)
        device.Device.MonitoringSettingsOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return device.Device.internal_static_device_MonitoringSettings_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return device.Device.internal_static_device_MonitoringSettings_fieldAccessorTable.ensureFieldAccessorsInitialized(device.Device.MonitoringSettings.class, device.Device.MonitoringSettings.Builder.class);
            }

            // Construct using device.Device.MonitoringSettings.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                kpiDescriptor_ = null;
                if (kpiDescriptorBuilder_ != null) {
                    kpiDescriptorBuilder_.dispose();
                    kpiDescriptorBuilder_ = null;
                }
                samplingDurationS_ = 0F;
                samplingIntervalS_ = 0F;
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return device.Device.internal_static_device_MonitoringSettings_descriptor;
            }

            @java.lang.Override
            public device.Device.MonitoringSettings getDefaultInstanceForType() {
                return device.Device.MonitoringSettings.getDefaultInstance();
            }

            @java.lang.Override
            public device.Device.MonitoringSettings build() {
                device.Device.MonitoringSettings result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public device.Device.MonitoringSettings buildPartial() {
                device.Device.MonitoringSettings result = new device.Device.MonitoringSettings(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(device.Device.MonitoringSettings result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.kpiDescriptor_ = kpiDescriptorBuilder_ == null ? kpiDescriptor_ : kpiDescriptorBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.samplingDurationS_ = samplingDurationS_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.samplingIntervalS_ = samplingIntervalS_;
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof device.Device.MonitoringSettings) {
                    return mergeFrom((device.Device.MonitoringSettings) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(device.Device.MonitoringSettings other) {
                if (other == device.Device.MonitoringSettings.getDefaultInstance())
                    return this;
                if (other.hasKpiId()) {
                    mergeKpiId(other.getKpiId());
                }
                if (other.hasKpiDescriptor()) {
                    mergeKpiDescriptor(other.getKpiDescriptor());
                }
                if (other.getSamplingDurationS() != 0F) {
                    setSamplingDurationS(other.getSamplingDurationS());
                }
                if (other.getSamplingIntervalS() != 0F) {
                    setSamplingIntervalS(other.getSamplingIntervalS());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    input.readMessage(getKpiDescriptorFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 29:
                                {
                                    samplingDurationS_ = input.readFloat();
                                    bitField0_ |= 0x00000004;
                                    break;
                                }
                            // case 29
                            case 37:
                                {
                                    samplingIntervalS_ = input.readFloat();
                                    bitField0_ |= 0x00000008;
                                    break;
                                }
                            // case 37
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                }
                // finally
                return this;
            }

            private int bitField0_;

            private monitoring.Monitoring.KpiId kpiId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_;

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return Whether the kpiId field is set.
             */
            public boolean hasKpiId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return The kpiId.
             */
            public monitoring.Monitoring.KpiId getKpiId() {
                if (kpiIdBuilder_ == null) {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                } else {
                    return kpiIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiId_ = value;
                } else {
                    kpiIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdBuilder_ == null) {
                    kpiId_ = builderForValue.build();
                } else {
                    kpiIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && kpiId_ != null && kpiId_ != monitoring.Monitoring.KpiId.getDefaultInstance()) {
                        getKpiIdBuilder().mergeFrom(value);
                    } else {
                        kpiId_ = value;
                    }
                } else {
                    kpiIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder clearKpiId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getKpiIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
                if (kpiIdBuilder_ != null) {
                    return kpiIdBuilder_.getMessageOrBuilder();
                } else {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdFieldBuilder() {
                if (kpiIdBuilder_ == null) {
                    kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(getKpiId(), getParentForChildren(), isClean());
                    kpiId_ = null;
                }
                return kpiIdBuilder_;
            }

            private monitoring.Monitoring.KpiDescriptor kpiDescriptor_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiDescriptor, monitoring.Monitoring.KpiDescriptor.Builder, monitoring.Monitoring.KpiDescriptorOrBuilder> kpiDescriptorBuilder_;

            /**
             * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
             * @return Whether the kpiDescriptor field is set.
             */
            public boolean hasKpiDescriptor() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
             * @return The kpiDescriptor.
             */
            public monitoring.Monitoring.KpiDescriptor getKpiDescriptor() {
                if (kpiDescriptorBuilder_ == null) {
                    return kpiDescriptor_ == null ? monitoring.Monitoring.KpiDescriptor.getDefaultInstance() : kpiDescriptor_;
                } else {
                    return kpiDescriptorBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
             */
            public Builder setKpiDescriptor(monitoring.Monitoring.KpiDescriptor value) {
                if (kpiDescriptorBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiDescriptor_ = value;
                } else {
                    kpiDescriptorBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
             */
            public Builder setKpiDescriptor(monitoring.Monitoring.KpiDescriptor.Builder builderForValue) {
                if (kpiDescriptorBuilder_ == null) {
                    kpiDescriptor_ = builderForValue.build();
                } else {
                    kpiDescriptorBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
             */
            public Builder mergeKpiDescriptor(monitoring.Monitoring.KpiDescriptor value) {
                if (kpiDescriptorBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) && kpiDescriptor_ != null && kpiDescriptor_ != monitoring.Monitoring.KpiDescriptor.getDefaultInstance()) {
                        getKpiDescriptorBuilder().mergeFrom(value);
                    } else {
                        kpiDescriptor_ = value;
                    }
                } else {
                    kpiDescriptorBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
             */
            public Builder clearKpiDescriptor() {
                bitField0_ = (bitField0_ & ~0x00000002);
                kpiDescriptor_ = null;
                if (kpiDescriptorBuilder_ != null) {
                    kpiDescriptorBuilder_.dispose();
                    kpiDescriptorBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
             */
            public monitoring.Monitoring.KpiDescriptor.Builder getKpiDescriptorBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getKpiDescriptorFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
             */
            public monitoring.Monitoring.KpiDescriptorOrBuilder getKpiDescriptorOrBuilder() {
                if (kpiDescriptorBuilder_ != null) {
                    return kpiDescriptorBuilder_.getMessageOrBuilder();
                } else {
                    return kpiDescriptor_ == null ? monitoring.Monitoring.KpiDescriptor.getDefaultInstance() : kpiDescriptor_;
                }
            }

            /**
             * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiDescriptor, monitoring.Monitoring.KpiDescriptor.Builder, monitoring.Monitoring.KpiDescriptorOrBuilder> getKpiDescriptorFieldBuilder() {
                if (kpiDescriptorBuilder_ == null) {
                    kpiDescriptorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiDescriptor, monitoring.Monitoring.KpiDescriptor.Builder, monitoring.Monitoring.KpiDescriptorOrBuilder>(getKpiDescriptor(), getParentForChildren(), isClean());
                    kpiDescriptor_ = null;
                }
                return kpiDescriptorBuilder_;
            }

            private float samplingDurationS_;

            /**
             * <code>float sampling_duration_s = 3;</code>
             * @return The samplingDurationS.
             */
            @java.lang.Override
            public float getSamplingDurationS() {
                return samplingDurationS_;
            }

            /**
             * <code>float sampling_duration_s = 3;</code>
             * @param value The samplingDurationS to set.
             * @return This builder for chaining.
             */
            public Builder setSamplingDurationS(float value) {
                samplingDurationS_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>float sampling_duration_s = 3;</code>
             * @return This builder for chaining.
             */
            public Builder clearSamplingDurationS() {
                bitField0_ = (bitField0_ & ~0x00000004);
                samplingDurationS_ = 0F;
                onChanged();
                return this;
            }

            private float samplingIntervalS_;

            /**
             * <code>float sampling_interval_s = 4;</code>
             * @return The samplingIntervalS.
             */
            @java.lang.Override
            public float getSamplingIntervalS() {
                return samplingIntervalS_;
            }

            /**
             * <code>float sampling_interval_s = 4;</code>
             * @param value The samplingIntervalS to set.
             * @return This builder for chaining.
             */
            public Builder setSamplingIntervalS(float value) {
                samplingIntervalS_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <code>float sampling_interval_s = 4;</code>
             * @return This builder for chaining.
             */
            public Builder clearSamplingIntervalS() {
                bitField0_ = (bitField0_ & ~0x00000008);
                samplingIntervalS_ = 0F;
                onChanged();
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:device.MonitoringSettings)
        }

        // @@protoc_insertion_point(class_scope:device.MonitoringSettings)
        private static final device.Device.MonitoringSettings DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new device.Device.MonitoringSettings();
        }

        public static device.Device.MonitoringSettings getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<MonitoringSettings> PARSER = new com.google.protobuf.AbstractParser<MonitoringSettings>() {

            @java.lang.Override
            public MonitoringSettings parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<MonitoringSettings> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<MonitoringSettings> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public device.Device.MonitoringSettings getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    private static final com.google.protobuf.Descriptors.Descriptor internal_static_device_MonitoringSettings_descriptor;

    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_device_MonitoringSettings_fieldAccessorTable;

    public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
        return descriptor;
    }

    private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

    static {
        java.lang.String[] descriptorData = { "\n\014device.proto\022\006device\032\rcontext.proto\032\020m" + "onitoring.proto\"\244\001\n\022MonitoringSettings\022!" + "\n\006kpi_id\030\001 \001(\0132\021.monitoring.KpiId\0221\n\016kpi" + "_descriptor\030\002 \001(\0132\031.monitoring.KpiDescri" + "ptor\022\033\n\023sampling_duration_s\030\003 \001(\002\022\033\n\023sam" + "pling_interval_s\030\004 \001(\0022\262\002\n\rDeviceService" + "\0221\n\tAddDevice\022\017.context.Device\032\021.context" + ".DeviceId\"\000\0227\n\017ConfigureDevice\022\017.context" + ".Device\032\021.context.DeviceId\"\000\0223\n\014DeleteDe" + "vice\022\021.context.DeviceId\032\016.context.Empty\"" + "\000\022>\n\020GetInitialConfig\022\021.context.DeviceId" + "\032\025.context.DeviceConfig\"\000\022@\n\020MonitorDevi" + "ceKpi\022\032.device.MonitoringSettings\032\016.cont" + "ext.Empty\"\000b\006proto3" };
        descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { context.ContextOuterClass.getDescriptor(), monitoring.Monitoring.getDescriptor() });
        internal_static_device_MonitoringSettings_descriptor = getDescriptor().getMessageTypes().get(0);
        internal_static_device_MonitoringSettings_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_device_MonitoringSettings_descriptor, new java.lang.String[] { "KpiId", "KpiDescriptor", "SamplingDurationS", "SamplingIntervalS" });
        context.ContextOuterClass.getDescriptor();
        monitoring.Monitoring.getDescriptor();
    }
    // @@protoc_insertion_point(outer_class_scope)
}
