diff --git a/README.md b/README.md index d665f43..a30092c 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Add this dependency to your project's POM: com.upstox.api upstox-java-sdk - 1.28 + 1.29 compile ``` @@ -40,7 +40,7 @@ Add this dependency to your project's POM: Add this dependency to your project's build file: ```groovy -compile "com.upstox.api:upstox-java-sdk:1.28" +compile "com.upstox.api:upstox-java-sdk:1.29" ``` ## Sandbox Mode diff --git a/examples/README.md b/examples/README.md index 6c121ea..4872356 100644 --- a/examples/README.md +++ b/examples/README.md @@ -30,7 +30,7 @@ Add the following dependency to your `pom.xml`: | [user](./user/) | User profile, fund/margin details, IP management, kill switch | | [orders](./orders/) | Place, modify, cancel orders and fetch order details | | [portfolio](./portfolio/) | Positions, holdings, MTF positions, and position conversion | -| [market-quote](./market-quote/) | LTP, OHLC, full market quotes, and option greeks | +| [market-quote](./market-quote/) | LTP, OHLC, full market quotes (v2 and v3), and option greeks | | [historical-data](./historical-data/) | Historical and intra-day candle data | | [option-chain](./option-chain/) | Option contracts and put/call option chain | | [expired-instruments](./expired-instruments/) | Expired instrument data and historical candles | diff --git a/examples/market-quote/README.md b/examples/market-quote/README.md index 6b45cde..8292232 100644 --- a/examples/market-quote/README.md +++ b/examples/market-quote/README.md @@ -17,17 +17,23 @@ Links to all market-quote-related examples in the `code/` folder. - 3.1 [Get Option Greek fields](code/option-greek.md#get-option-greek-fields) - 3.2 [Get Option Greek fields for multiple instruments keys](code/option-greek.md#get-option-greek-fields-for-multiple-instruments-keys) -## 4. Full Market Quotes +## 4. Full Market Quotes V3 -- 4.1 [Get full market quote](code/full-market-quotes.md#get-full-market-quote) -- 4.2 [Get full market quote for multiple instrument keys](code/full-market-quotes.md#get-full-market-quote-for-multiple-instrument-keys) +- 4.1 [Get full market quote](code/full-market-quotes-v3.md#get-full-market-quote) +- 4.2 [Get full market quote for multiple instrument keys](code/full-market-quotes-v3.md#get-full-market-quote-for-multiple-instrument-keys) +- 4.3 [Read individual fields from the full market quote](code/full-market-quotes-v3.md#read-individual-fields-from-the-full-market-quote) -## 5. LTP Quotes +## 5. Full Market Quotes -- 5.1 [Get ltp (last traded price) market quotes](code/ltp-quotes.md#get-ltp-last-traded-price-market-quotes) -- 5.2 [Get ltp (last traded price) market quotes for multiple instruments keys](code/ltp-quotes.md#get-ltp-last-traded-price-market-quotes-for-multiple-instruments-keys) +- 5.1 [Get full market quote](code/full-market-quotes.md#get-full-market-quote) +- 5.2 [Get full market quote for multiple instrument keys](code/full-market-quotes.md#get-full-market-quote-for-multiple-instrument-keys) -## 6. OHLC Quotes +## 6. LTP Quotes -- 6.1 [Get ohlc market quotes](code/ohlc-quotes.md#get-ohlc-market-quotes) -- 6.2 [Get ohlc market quotes for multiple instrument keys](code/ohlc-quotes.md#get-ohlc-market-quotes-for-multiple-instrument-keys) +- 6.1 [Get ltp (last traded price) market quotes](code/ltp-quotes.md#get-ltp-last-traded-price-market-quotes) +- 6.2 [Get ltp (last traded price) market quotes for multiple instruments keys](code/ltp-quotes.md#get-ltp-last-traded-price-market-quotes-for-multiple-instruments-keys) + +## 7. OHLC Quotes + +- 7.1 [Get ohlc market quotes](code/ohlc-quotes.md#get-ohlc-market-quotes) +- 7.2 [Get ohlc market quotes for multiple instrument keys](code/ohlc-quotes.md#get-ohlc-market-quotes-for-multiple-instrument-keys) diff --git a/examples/market-quote/code/full-market-quotes-v3.md b/examples/market-quote/code/full-market-quotes-v3.md new file mode 100644 index 0000000..9f2622b --- /dev/null +++ b/examples/market-quote/code/full-market-quotes-v3.md @@ -0,0 +1,107 @@ +## Get full market quote + +```java +import com.upstox.ApiClient; +import com.upstox.ApiException; +import com.upstox.Configuration; +import com.upstox.api.GetFullMarketQuoteResponseV3; +import io.swagger.client.api.MarketQuoteV3Api; + +public class Main { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setAccessToken("{your_access_token}"); + + MarketQuoteV3Api apiInstance = new MarketQuoteV3Api(); + + try { + GetFullMarketQuoteResponseV3 result = apiInstance.getFullMarketQuoteV3("NSE_EQ|INE848E01016"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MarketQuoteV3Api->getFullMarketQuoteV3: " + e.getMessage()); + } + } +} +``` + +## Get full market quote for multiple instrument keys + +Up to 500 instrument keys can be requested in a single call. + +```java +import com.upstox.ApiClient; +import com.upstox.ApiException; +import com.upstox.Configuration; +import com.upstox.api.GetFullMarketQuoteResponseV3; +import io.swagger.client.api.MarketQuoteV3Api; + +public class Main { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setAccessToken("{your_access_token}"); + + MarketQuoteV3Api apiInstance = new MarketQuoteV3Api(); + + try { + GetFullMarketQuoteResponseV3 result = + apiInstance.getFullMarketQuoteV3("NSE_EQ|INE848E01016,NSE_EQ|INE669E01016"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MarketQuoteV3Api->getFullMarketQuoteV3: " + e.getMessage()); + } + } +} +``` + +## Read individual fields from the full market quote + +The response `data` map is keyed by trading symbol and each value is a +`MarketQuoteSymbolV3` with typed accessors — including the call-auction +fields (`indicativeEquilibriumPrice`, `indicativeEquilibriumQuantity`, +`indicativeImbalanceQuantityTotal`, `indicativeImbalanceQuantityMarket`, +`referencePrice`, `casEligible`) carried on the v3 feed. + +```java +import com.upstox.ApiClient; +import com.upstox.ApiException; +import com.upstox.Configuration; +import com.upstox.api.GetFullMarketQuoteResponseV3; +import com.upstox.api.MarketQuoteSymbolV3; +import io.swagger.client.api.MarketQuoteV3Api; + +import java.util.Map; + +public class Main { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setAccessToken("{your_access_token}"); + + MarketQuoteV3Api apiInstance = new MarketQuoteV3Api(); + + try { + GetFullMarketQuoteResponseV3 result = apiInstance.getFullMarketQuoteV3("NSE_EQ|INE848E01016"); + System.out.println("status: " + result.getStatus()); + + for (Map.Entry entry : result.getData().entrySet()) { + MarketQuoteSymbolV3 quote = entry.getValue(); + System.out.println("symbol : " + quote.getSymbol()); + System.out.println("instrument token : " + quote.getInstrumentToken()); + System.out.println("last price : " + quote.getLastPrice()); + System.out.println("volume : " + quote.getVolume()); + System.out.println("net change : " + quote.getNetChange()); + System.out.println("prev close : " + quote.getPrevClosePrice()); + System.out.println("year high / low : " + quote.getYearHigh() + " / " + quote.getYearLow()); + System.out.println("oi / previous oi : " + quote.getOi() + " / " + quote.getPreviousOi()); + System.out.println("cas eligible : " + quote.getCasEligible()); + System.out.println("ind. eq. price : " + quote.getIndicativeEquilibriumPrice()); + System.out.println("ind. eq. qty : " + quote.getIndicativeEquilibriumQuantity()); + System.out.println("reference price : " + quote.getReferencePrice()); + System.out.println("ohlc : " + quote.getOhlc()); + System.out.println("depth : " + quote.getDepth()); + } + } catch (ApiException e) { + System.err.println("Exception when calling MarketQuoteV3Api->getFullMarketQuoteV3: " + e.getMessage()); + } + } +} +``` diff --git a/examples/websocket/market_data/v3/MarketDataFeedV3.java b/examples/websocket/market_data/v3/MarketDataFeedV3.java index ebc5a8b..b55b4b0 100644 --- a/examples/websocket/market_data/v3/MarketDataFeedV3.java +++ b/examples/websocket/market_data/v3/MarketDataFeedV3.java @@ -1,6 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: MarketDataFeedV3.proto +// Protobuf Java Version: 3.25.4 package com.upstox.marketdatafeederv3udapi.rpc.proto; public final class MarketDataFeedV3 { @@ -428,6 +429,21 @@ public interface LTPCOrBuilder extends * @return The cp. */ double getCp(); + + /** + * .google.protobuf.DoubleValue iep = 5; + * @return Whether the iep field is set. + */ + boolean hasIep(); + /** + * .google.protobuf.DoubleValue iep = 5; + * @return The iep. + */ + com.google.protobuf.DoubleValue getIep(); + /** + * .google.protobuf.DoubleValue iep = 5; + */ + com.google.protobuf.DoubleValueOrBuilder getIepOrBuilder(); } /** * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC} @@ -451,11 +467,6 @@ protected java.lang.Object newInstance( return new LTPC(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_LTPC_descriptor; @@ -469,8 +480,9 @@ protected java.lang.Object newInstance( com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder.class); } + private int bitField0_; public static final int LTP_FIELD_NUMBER = 1; - private double ltp_; + private double ltp_ = 0D; /** * double ltp = 1; * @return The ltp. @@ -481,7 +493,7 @@ public double getLtp() { } public static final int LTT_FIELD_NUMBER = 2; - private long ltt_; + private long ltt_ = 0L; /** * int64 ltt = 2; * @return The ltt. @@ -492,7 +504,7 @@ public long getLtt() { } public static final int LTQ_FIELD_NUMBER = 3; - private long ltq_; + private long ltq_ = 0L; /** * int64 ltq = 3; * @return The ltq. @@ -503,7 +515,7 @@ public long getLtq() { } public static final int CP_FIELD_NUMBER = 4; - private double cp_; + private double cp_ = 0D; /** * double cp = 4; * @return The cp. @@ -513,6 +525,32 @@ public double getCp() { return cp_; } + public static final int IEP_FIELD_NUMBER = 5; + private com.google.protobuf.DoubleValue iep_; + /** + * .google.protobuf.DoubleValue iep = 5; + * @return Whether the iep field is set. + */ + @java.lang.Override + public boolean hasIep() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .google.protobuf.DoubleValue iep = 5; + * @return The iep. + */ + @java.lang.Override + public com.google.protobuf.DoubleValue getIep() { + return iep_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : iep_; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + @java.lang.Override + public com.google.protobuf.DoubleValueOrBuilder getIepOrBuilder() { + return iep_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : iep_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -539,6 +577,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (java.lang.Double.doubleToRawLongBits(cp_) != 0) { output.writeDouble(4, cp_); } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(5, getIep()); + } getUnknownFields().writeTo(output); } @@ -564,6 +605,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(4, cp_); } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getIep()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -589,6 +634,11 @@ public boolean equals(final java.lang.Object obj) { if (java.lang.Double.doubleToLongBits(getCp()) != java.lang.Double.doubleToLongBits( other.getCp())) return false; + if (hasIep() != other.hasIep()) return false; + if (hasIep()) { + if (!getIep() + .equals(other.getIep())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -612,6 +662,10 @@ public int hashCode() { hash = (37 * hash) + CP_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCp())); + if (hasIep()) { + hash = (37 * hash) + IEP_FIELD_NUMBER; + hash = (53 * hash) + getIep().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -661,11 +715,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -729,25 +785,33 @@ public static final class Builder extends // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.newBuilder() private Builder() { - + maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getIepFieldBuilder(); + } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; ltp_ = 0D; - ltt_ = 0L; - ltq_ = 0L; - cp_ = 0D; - + iep_ = null; + if (iepBuilder_ != null) { + iepBuilder_.dispose(); + iepBuilder_ = null; + } return this; } @@ -774,14 +838,35 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC build( @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC(this); - result.ltp_ = ltp_; - result.ltt_ = ltt_; - result.ltq_ = ltq_; - result.cp_ = cp_; + if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.ltp_ = ltp_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ltt_ = ltt_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.ltq_ = ltq_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.cp_ = cp_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000010) != 0)) { + result.iep_ = iepBuilder_ == null + ? iep_ + : iepBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -838,6 +923,9 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData if (other.getCp() != 0D) { setCp(other.getCp()); } + if (other.hasIep()) { + mergeIep(other.getIep()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -866,24 +954,31 @@ public Builder mergeFrom( break; case 9: { ltp_ = input.readDouble(); - + bitField0_ |= 0x00000001; break; } // case 9 case 16: { ltt_ = input.readInt64(); - + bitField0_ |= 0x00000002; break; } // case 16 case 24: { ltq_ = input.readInt64(); - + bitField0_ |= 0x00000004; break; } // case 24 case 33: { cp_ = input.readDouble(); - + bitField0_ |= 0x00000008; break; } // case 33 + case 42: { + input.readMessage( + getIepFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -899,6 +994,7 @@ public Builder mergeFrom( } // finally return this; } + private int bitField0_; private double ltp_ ; /** @@ -915,8 +1011,9 @@ public double getLtp() { * @return This builder for chaining. */ public Builder setLtp(double value) { - + ltp_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -925,7 +1022,7 @@ public Builder setLtp(double value) { * @return This builder for chaining. */ public Builder clearLtp() { - + bitField0_ = (bitField0_ & ~0x00000001); ltp_ = 0D; onChanged(); return this; @@ -946,8 +1043,9 @@ public long getLtt() { * @return This builder for chaining. */ public Builder setLtt(long value) { - + ltt_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -956,7 +1054,7 @@ public Builder setLtt(long value) { * @return This builder for chaining. */ public Builder clearLtt() { - + bitField0_ = (bitField0_ & ~0x00000002); ltt_ = 0L; onChanged(); return this; @@ -977,8 +1075,9 @@ public long getLtq() { * @return This builder for chaining. */ public Builder setLtq(long value) { - + ltq_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -987,7 +1086,7 @@ public Builder setLtq(long value) { * @return This builder for chaining. */ public Builder clearLtq() { - + bitField0_ = (bitField0_ & ~0x00000004); ltq_ = 0L; onChanged(); return this; @@ -1008,8 +1107,9 @@ public double getCp() { * @return This builder for chaining. */ public Builder setCp(double value) { - + cp_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -1018,11 +1118,132 @@ public Builder setCp(double value) { * @return This builder for chaining. */ public Builder clearCp() { - + bitField0_ = (bitField0_ & ~0x00000008); cp_ = 0D; onChanged(); return this; } + + private com.google.protobuf.DoubleValue iep_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> iepBuilder_; + /** + * .google.protobuf.DoubleValue iep = 5; + * @return Whether the iep field is set. + */ + public boolean hasIep() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * .google.protobuf.DoubleValue iep = 5; + * @return The iep. + */ + public com.google.protobuf.DoubleValue getIep() { + if (iepBuilder_ == null) { + return iep_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : iep_; + } else { + return iepBuilder_.getMessage(); + } + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public Builder setIep(com.google.protobuf.DoubleValue value) { + if (iepBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + iep_ = value; + } else { + iepBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public Builder setIep( + com.google.protobuf.DoubleValue.Builder builderForValue) { + if (iepBuilder_ == null) { + iep_ = builderForValue.build(); + } else { + iepBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public Builder mergeIep(com.google.protobuf.DoubleValue value) { + if (iepBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + iep_ != null && + iep_ != com.google.protobuf.DoubleValue.getDefaultInstance()) { + getIepBuilder().mergeFrom(value); + } else { + iep_ = value; + } + } else { + iepBuilder_.mergeFrom(value); + } + if (iep_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public Builder clearIep() { + bitField0_ = (bitField0_ & ~0x00000010); + iep_ = null; + if (iepBuilder_ != null) { + iepBuilder_.dispose(); + iepBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public com.google.protobuf.DoubleValue.Builder getIepBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getIepFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public com.google.protobuf.DoubleValueOrBuilder getIepOrBuilder() { + if (iepBuilder_ != null) { + return iepBuilder_.getMessageOrBuilder(); + } else { + return iep_ == null ? + com.google.protobuf.DoubleValue.getDefaultInstance() : iep_; + } + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> + getIepFieldBuilder() { + if (iepBuilder_ == null) { + iepBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder>( + getIep(), + getParentForChildren(), + isClean()); + iep_ = null; + } + return iepBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -1138,11 +1359,6 @@ protected java.lang.Object newInstance( return new MarketLevel(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketLevel_descriptor; @@ -1157,6 +1373,7 @@ protected java.lang.Object newInstance( } public static final int BIDASKQUOTE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List bidAskQuote_; /** * repeated .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote bidAskQuote = 1; @@ -1307,11 +1524,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Mark return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -1386,6 +1605,7 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (bidAskQuoteBuilder_ == null) { bidAskQuote_ = java.util.Collections.emptyList(); } else { @@ -1419,7 +1639,13 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel result) { if (bidAskQuoteBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { bidAskQuote_ = java.util.Collections.unmodifiableList(bidAskQuote_); @@ -1429,8 +1655,10 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel } else { result.bidAskQuote_ = bidAskQuoteBuilder_.build(); } - onBuilt(); - return result; + } + + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -1913,11 +2141,6 @@ protected java.lang.Object newInstance( return new MarketOHLC(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketOHLC_descriptor; @@ -1932,6 +2155,7 @@ protected java.lang.Object newInstance( } public static final int OHLC_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List ohlc_; /** * repeated .com.upstox.marketdatafeederv3udapi.rpc.proto.OHLC ohlc = 1; @@ -2082,11 +2306,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Mark return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -2161,6 +2387,7 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (ohlcBuilder_ == null) { ohlc_ = java.util.Collections.emptyList(); } else { @@ -2194,7 +2421,13 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC result) { if (ohlcBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { ohlc_ = java.util.Collections.unmodifiableList(ohlc_); @@ -2204,8 +2437,10 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC } else { result.ohlc_ = ohlcBuilder_.build(); } - onBuilt(); - return result; + } + + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -2687,11 +2922,6 @@ protected java.lang.Object newInstance( return new Quote(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_Quote_descriptor; @@ -2706,7 +2936,7 @@ protected java.lang.Object newInstance( } public static final int BIDQ_FIELD_NUMBER = 1; - private long bidQ_; + private long bidQ_ = 0L; /** * int64 bidQ = 1; * @return The bidQ. @@ -2717,7 +2947,7 @@ public long getBidQ() { } public static final int BIDP_FIELD_NUMBER = 2; - private double bidP_; + private double bidP_ = 0D; /** * double bidP = 2; * @return The bidP. @@ -2728,7 +2958,7 @@ public double getBidP() { } public static final int ASKQ_FIELD_NUMBER = 3; - private long askQ_; + private long askQ_ = 0L; /** * int64 askQ = 3; * @return The askQ. @@ -2739,7 +2969,7 @@ public long getAskQ() { } public static final int ASKP_FIELD_NUMBER = 4; - private double askP_; + private double askP_ = 0D; /** * double askP = 4; * @return The askP. @@ -2897,11 +3127,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quot return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -2976,14 +3208,11 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; bidQ_ = 0L; - bidP_ = 0D; - askQ_ = 0L; - askP_ = 0D; - return this; } @@ -3010,14 +3239,27 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote build @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote(this); - result.bidQ_ = bidQ_; - result.bidP_ = bidP_; - result.askQ_ = askQ_; - result.askP_ = askP_; + if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.bidQ_ = bidQ_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.bidP_ = bidP_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.askQ_ = askQ_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.askP_ = askP_; + } + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -3102,22 +3344,22 @@ public Builder mergeFrom( break; case 8: { bidQ_ = input.readInt64(); - + bitField0_ |= 0x00000001; break; } // case 8 case 17: { bidP_ = input.readDouble(); - + bitField0_ |= 0x00000002; break; } // case 17 case 24: { askQ_ = input.readInt64(); - + bitField0_ |= 0x00000004; break; } // case 24 case 33: { askP_ = input.readDouble(); - + bitField0_ |= 0x00000008; break; } // case 33 default: { @@ -3135,6 +3377,7 @@ public Builder mergeFrom( } // finally return this; } + private int bitField0_; private long bidQ_ ; /** @@ -3151,8 +3394,9 @@ public long getBidQ() { * @return This builder for chaining. */ public Builder setBidQ(long value) { - + bidQ_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -3161,7 +3405,7 @@ public Builder setBidQ(long value) { * @return This builder for chaining. */ public Builder clearBidQ() { - + bitField0_ = (bitField0_ & ~0x00000001); bidQ_ = 0L; onChanged(); return this; @@ -3182,8 +3426,9 @@ public double getBidP() { * @return This builder for chaining. */ public Builder setBidP(double value) { - + bidP_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -3192,7 +3437,7 @@ public Builder setBidP(double value) { * @return This builder for chaining. */ public Builder clearBidP() { - + bitField0_ = (bitField0_ & ~0x00000002); bidP_ = 0D; onChanged(); return this; @@ -3213,8 +3458,9 @@ public long getAskQ() { * @return This builder for chaining. */ public Builder setAskQ(long value) { - + askQ_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -3223,7 +3469,7 @@ public Builder setAskQ(long value) { * @return This builder for chaining. */ public Builder clearAskQ() { - + bitField0_ = (bitField0_ & ~0x00000004); askQ_ = 0L; onChanged(); return this; @@ -3244,8 +3490,9 @@ public double getAskP() { * @return This builder for chaining. */ public Builder setAskP(double value) { - + askP_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -3254,7 +3501,7 @@ public Builder setAskP(double value) { * @return This builder for chaining. */ public Builder clearAskP() { - + bitField0_ = (bitField0_ & ~0x00000008); askP_ = 0D; onChanged(); return this; @@ -3379,11 +3626,6 @@ protected java.lang.Object newInstance( return new OptionGreeks(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_OptionGreeks_descriptor; @@ -3398,7 +3640,7 @@ protected java.lang.Object newInstance( } public static final int DELTA_FIELD_NUMBER = 1; - private double delta_; + private double delta_ = 0D; /** * double delta = 1; * @return The delta. @@ -3409,7 +3651,7 @@ public double getDelta() { } public static final int THETA_FIELD_NUMBER = 2; - private double theta_; + private double theta_ = 0D; /** * double theta = 2; * @return The theta. @@ -3420,7 +3662,7 @@ public double getTheta() { } public static final int GAMMA_FIELD_NUMBER = 3; - private double gamma_; + private double gamma_ = 0D; /** * double gamma = 3; * @return The gamma. @@ -3431,7 +3673,7 @@ public double getGamma() { } public static final int VEGA_FIELD_NUMBER = 4; - private double vega_; + private double vega_ = 0D; /** * double vega = 4; * @return The vega. @@ -3442,7 +3684,7 @@ public double getVega() { } public static final int RHO_FIELD_NUMBER = 5; - private double rho_; + private double rho_ = 0D; /** * double rho = 5; * @return The rho. @@ -3615,11 +3857,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Opti return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -3694,16 +3938,12 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; delta_ = 0D; - theta_ = 0D; - gamma_ = 0D; - vega_ = 0D; - rho_ = 0D; - return this; } @@ -3730,15 +3970,30 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks(this); - result.delta_ = delta_; - result.theta_ = theta_; - result.gamma_ = gamma_; - result.vega_ = vega_; - result.rho_ = rho_; + if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.delta_ = delta_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.theta_ = theta_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.gamma_ = gamma_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.vega_ = vega_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.rho_ = rho_; + } + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -3826,27 +4081,27 @@ public Builder mergeFrom( break; case 9: { delta_ = input.readDouble(); - + bitField0_ |= 0x00000001; break; } // case 9 case 17: { theta_ = input.readDouble(); - + bitField0_ |= 0x00000002; break; } // case 17 case 25: { gamma_ = input.readDouble(); - + bitField0_ |= 0x00000004; break; } // case 25 case 33: { vega_ = input.readDouble(); - + bitField0_ |= 0x00000008; break; } // case 33 case 41: { rho_ = input.readDouble(); - + bitField0_ |= 0x00000010; break; } // case 41 default: { @@ -3864,6 +4119,7 @@ public Builder mergeFrom( } // finally return this; } + private int bitField0_; private double delta_ ; /** @@ -3880,8 +4136,9 @@ public double getDelta() { * @return This builder for chaining. */ public Builder setDelta(double value) { - + delta_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -3890,7 +4147,7 @@ public Builder setDelta(double value) { * @return This builder for chaining. */ public Builder clearDelta() { - + bitField0_ = (bitField0_ & ~0x00000001); delta_ = 0D; onChanged(); return this; @@ -3911,8 +4168,9 @@ public double getTheta() { * @return This builder for chaining. */ public Builder setTheta(double value) { - + theta_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -3921,7 +4179,7 @@ public Builder setTheta(double value) { * @return This builder for chaining. */ public Builder clearTheta() { - + bitField0_ = (bitField0_ & ~0x00000002); theta_ = 0D; onChanged(); return this; @@ -3942,8 +4200,9 @@ public double getGamma() { * @return This builder for chaining. */ public Builder setGamma(double value) { - + gamma_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -3952,7 +4211,7 @@ public Builder setGamma(double value) { * @return This builder for chaining. */ public Builder clearGamma() { - + bitField0_ = (bitField0_ & ~0x00000004); gamma_ = 0D; onChanged(); return this; @@ -3973,8 +4232,9 @@ public double getVega() { * @return This builder for chaining. */ public Builder setVega(double value) { - + vega_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -3983,7 +4243,7 @@ public Builder setVega(double value) { * @return This builder for chaining. */ public Builder clearVega() { - + bitField0_ = (bitField0_ & ~0x00000008); vega_ = 0D; onChanged(); return this; @@ -4004,8 +4264,9 @@ public double getRho() { * @return This builder for chaining. */ public Builder setRho(double value) { - + rho_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -4014,7 +4275,7 @@ public Builder setRho(double value) { * @return This builder for chaining. */ public Builder clearRho() { - + bitField0_ = (bitField0_ & ~0x00000010); rho_ = 0D; onChanged(); return this; @@ -4158,11 +4419,6 @@ protected java.lang.Object newInstance( return new OHLC(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_OHLC_descriptor; @@ -4177,7 +4433,8 @@ protected java.lang.Object newInstance( } public static final int INTERVAL_FIELD_NUMBER = 1; - private volatile java.lang.Object interval_; + @SuppressWarnings("serial") + private volatile java.lang.Object interval_ = ""; /** * string interval = 1; * @return The interval. @@ -4215,7 +4472,7 @@ public java.lang.String getInterval() { } public static final int OPEN_FIELD_NUMBER = 2; - private double open_; + private double open_ = 0D; /** * double open = 2; * @return The open. @@ -4226,7 +4483,7 @@ public double getOpen() { } public static final int HIGH_FIELD_NUMBER = 3; - private double high_; + private double high_ = 0D; /** * double high = 3; * @return The high. @@ -4237,7 +4494,7 @@ public double getHigh() { } public static final int LOW_FIELD_NUMBER = 4; - private double low_; + private double low_ = 0D; /** * double low = 4; * @return The low. @@ -4248,7 +4505,7 @@ public double getLow() { } public static final int CLOSE_FIELD_NUMBER = 5; - private double close_; + private double close_ = 0D; /** * double close = 5; * @return The close. @@ -4259,7 +4516,7 @@ public double getClose() { } public static final int VOL_FIELD_NUMBER = 6; - private long vol_; + private long vol_ = 0L; /** * int64 vol = 6; * @return The vol. @@ -4270,7 +4527,7 @@ public long getVol() { } public static final int TS_FIELD_NUMBER = 7; - private long ts_; + private long ts_ = 0L; /** * int64 ts = 7; * @return The ts. @@ -4464,11 +4721,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -4543,20 +4802,14 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; interval_ = ""; - open_ = 0D; - high_ = 0D; - low_ = 0D; - close_ = 0D; - vol_ = 0L; - ts_ = 0L; - return this; } @@ -4583,17 +4836,36 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC build( @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC(this); - result.interval_ = interval_; - result.open_ = open_; - result.high_ = high_; - result.low_ = low_; - result.close_ = close_; - result.vol_ = vol_; - result.ts_ = ts_; + if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.interval_ = interval_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.open_ = open_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.high_ = high_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.low_ = low_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.close_ = close_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.vol_ = vol_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.ts_ = ts_; + } + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -4640,6 +4912,7 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData if (other == com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC.getDefaultInstance()) return this; if (!other.getInterval().isEmpty()) { interval_ = other.interval_; + bitField0_ |= 0x00000001; onChanged(); } if (other.getOpen() != 0D) { @@ -4688,37 +4961,37 @@ public Builder mergeFrom( break; case 10: { interval_ = input.readStringRequireUtf8(); - + bitField0_ |= 0x00000001; break; } // case 10 case 17: { open_ = input.readDouble(); - + bitField0_ |= 0x00000002; break; } // case 17 case 25: { high_ = input.readDouble(); - + bitField0_ |= 0x00000004; break; } // case 25 case 33: { low_ = input.readDouble(); - + bitField0_ |= 0x00000008; break; } // case 33 case 41: { close_ = input.readDouble(); - + bitField0_ |= 0x00000010; break; } // case 41 case 48: { vol_ = input.readInt64(); - + bitField0_ |= 0x00000020; break; } // case 48 case 56: { ts_ = input.readInt64(); - + bitField0_ |= 0x00000040; break; } // case 56 default: { @@ -4736,6 +5009,7 @@ public Builder mergeFrom( } // finally return this; } + private int bitField0_; private java.lang.Object interval_ = ""; /** @@ -4778,11 +5052,9 @@ public java.lang.String getInterval() { */ public Builder setInterval( java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - + if (value == null) { throw new NullPointerException(); } interval_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -4791,8 +5063,8 @@ public Builder setInterval( * @return This builder for chaining. */ public Builder clearInterval() { - interval_ = getDefaultInstance().getInterval(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -4803,12 +5075,10 @@ public Builder clearInterval() { */ public Builder setIntervalBytes( com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); interval_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -4828,8 +5098,9 @@ public double getOpen() { * @return This builder for chaining. */ public Builder setOpen(double value) { - + open_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -4838,7 +5109,7 @@ public Builder setOpen(double value) { * @return This builder for chaining. */ public Builder clearOpen() { - + bitField0_ = (bitField0_ & ~0x00000002); open_ = 0D; onChanged(); return this; @@ -4859,8 +5130,9 @@ public double getHigh() { * @return This builder for chaining. */ public Builder setHigh(double value) { - + high_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -4869,7 +5141,7 @@ public Builder setHigh(double value) { * @return This builder for chaining. */ public Builder clearHigh() { - + bitField0_ = (bitField0_ & ~0x00000004); high_ = 0D; onChanged(); return this; @@ -4890,8 +5162,9 @@ public double getLow() { * @return This builder for chaining. */ public Builder setLow(double value) { - + low_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -4900,7 +5173,7 @@ public Builder setLow(double value) { * @return This builder for chaining. */ public Builder clearLow() { - + bitField0_ = (bitField0_ & ~0x00000008); low_ = 0D; onChanged(); return this; @@ -4921,8 +5194,9 @@ public double getClose() { * @return This builder for chaining. */ public Builder setClose(double value) { - + close_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -4931,7 +5205,7 @@ public Builder setClose(double value) { * @return This builder for chaining. */ public Builder clearClose() { - + bitField0_ = (bitField0_ & ~0x00000010); close_ = 0D; onChanged(); return this; @@ -4952,8 +5226,9 @@ public long getVol() { * @return This builder for chaining. */ public Builder setVol(long value) { - + vol_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } @@ -4962,7 +5237,7 @@ public Builder setVol(long value) { * @return This builder for chaining. */ public Builder clearVol() { - + bitField0_ = (bitField0_ & ~0x00000020); vol_ = 0L; onChanged(); return this; @@ -4983,8 +5258,9 @@ public long getTs() { * @return This builder for chaining. */ public Builder setTs(long value) { - + ts_ = value; + bitField0_ |= 0x00000040; onChanged(); return this; } @@ -4993,7 +5269,7 @@ public Builder setTs(long value) { * @return This builder for chaining. */ public Builder clearTs() { - + bitField0_ = (bitField0_ & ~0x00000040); ts_ = 0L; onChanged(); return this; @@ -5185,20 +5461,56 @@ public interface MarketFullFeedOrBuilder extends * @return The tsq. */ double getTsq(); - } - /** - * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.MarketFullFeed} - */ - public static final class MarketFullFeed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketFullFeed) - MarketFullFeedOrBuilder { - private static final long serialVersionUID = 0L; - // Use MarketFullFeed.newBuilder() to construct. - private MarketFullFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private MarketFullFeed() { + + /** + * double iep = 11; + * @return The iep. + */ + double getIep(); + + /** + * double rp = 12; + * @return The rp. + */ + double getRp(); + + /** + * int64 ieq = 13; + * @return The ieq. + */ + long getIeq(); + + /** + * int64 iiqTotal = 14; + * @return The iiqTotal. + */ + long getIiqTotal(); + + /** + * int64 iiqM = 15; + * @return The iiqM. + */ + long getIiqM(); + + /** + * bool casEligible = 16; + * @return The casEligible. + */ + boolean getCasEligible(); + } + /** + * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.MarketFullFeed} + */ + public static final class MarketFullFeed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketFullFeed) + MarketFullFeedOrBuilder { + private static final long serialVersionUID = 0L; + // Use MarketFullFeed.newBuilder() to construct. + private MarketFullFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MarketFullFeed() { } @java.lang.Override @@ -5208,11 +5520,6 @@ protected java.lang.Object newInstance( return new MarketFullFeed(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketFullFeed_descriptor; @@ -5226,6 +5533,7 @@ protected java.lang.Object newInstance( com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed.Builder.class); } + private int bitField0_; public static final int LTPC_FIELD_NUMBER = 1; private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_; /** @@ -5234,7 +5542,7 @@ protected java.lang.Object newInstance( */ @java.lang.Override public boolean hasLtpc() { - return ltpc_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1; @@ -5249,7 +5557,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC getLtp */ @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuilder getLtpcOrBuilder() { - return getLtpc(); + return ltpc_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance() : ltpc_; } public static final int MARKETLEVEL_FIELD_NUMBER = 2; @@ -5260,7 +5568,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild */ @java.lang.Override public boolean hasMarketLevel() { - return marketLevel_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketLevel marketLevel = 2; @@ -5275,7 +5583,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel */ @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevelOrBuilder getMarketLevelOrBuilder() { - return getMarketLevel(); + return marketLevel_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.getDefaultInstance() : marketLevel_; } public static final int OPTIONGREEKS_FIELD_NUMBER = 3; @@ -5286,7 +5594,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel */ @java.lang.Override public boolean hasOptionGreeks() { - return optionGreeks_ != null; + return ((bitField0_ & 0x00000004) != 0); } /** * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3; @@ -5301,7 +5609,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek */ @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeksOrBuilder getOptionGreeksOrBuilder() { - return getOptionGreeks(); + return optionGreeks_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.getDefaultInstance() : optionGreeks_; } public static final int MARKETOHLC_FIELD_NUMBER = 4; @@ -5312,7 +5620,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek */ @java.lang.Override public boolean hasMarketOHLC() { - return marketOHLC_ != null; + return ((bitField0_ & 0x00000008) != 0); } /** * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 4; @@ -5327,11 +5635,11 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC */ @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLCOrBuilder getMarketOHLCOrBuilder() { - return getMarketOHLC(); + return marketOHLC_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.getDefaultInstance() : marketOHLC_; } public static final int ATP_FIELD_NUMBER = 5; - private double atp_; + private double atp_ = 0D; /** *
      *avg traded price
@@ -5346,7 +5654,7 @@ public double getAtp() {
     }
 
     public static final int VTT_FIELD_NUMBER = 6;
-    private long vtt_;
+    private long vtt_ = 0L;
     /**
      * 
      *volume traded today
@@ -5361,7 +5669,7 @@ public long getVtt() {
     }
 
     public static final int OI_FIELD_NUMBER = 7;
-    private double oi_;
+    private double oi_ = 0D;
     /**
      * 
      *open interest
@@ -5376,7 +5684,7 @@ public double getOi() {
     }
 
     public static final int IV_FIELD_NUMBER = 8;
-    private double iv_;
+    private double iv_ = 0D;
     /**
      * 
      *implied volatility
@@ -5391,7 +5699,7 @@ public double getIv() {
     }
 
     public static final int TBQ_FIELD_NUMBER = 9;
-    private double tbq_;
+    private double tbq_ = 0D;
     /**
      * 
      *total buy quantity
@@ -5406,7 +5714,7 @@ public double getTbq() {
     }
 
     public static final int TSQ_FIELD_NUMBER = 10;
-    private double tsq_;
+    private double tsq_ = 0D;
     /**
      * 
      *total sell quantity
@@ -5420,6 +5728,72 @@ public double getTsq() {
       return tsq_;
     }
 
+    public static final int IEP_FIELD_NUMBER = 11;
+    private double iep_ = 0D;
+    /**
+     * double iep = 11;
+     * @return The iep.
+     */
+    @java.lang.Override
+    public double getIep() {
+      return iep_;
+    }
+
+    public static final int RP_FIELD_NUMBER = 12;
+    private double rp_ = 0D;
+    /**
+     * double rp = 12;
+     * @return The rp.
+     */
+    @java.lang.Override
+    public double getRp() {
+      return rp_;
+    }
+
+    public static final int IEQ_FIELD_NUMBER = 13;
+    private long ieq_ = 0L;
+    /**
+     * int64 ieq = 13;
+     * @return The ieq.
+     */
+    @java.lang.Override
+    public long getIeq() {
+      return ieq_;
+    }
+
+    public static final int IIQTOTAL_FIELD_NUMBER = 14;
+    private long iiqTotal_ = 0L;
+    /**
+     * int64 iiqTotal = 14;
+     * @return The iiqTotal.
+     */
+    @java.lang.Override
+    public long getIiqTotal() {
+      return iiqTotal_;
+    }
+
+    public static final int IIQM_FIELD_NUMBER = 15;
+    private long iiqM_ = 0L;
+    /**
+     * int64 iiqM = 15;
+     * @return The iiqM.
+     */
+    @java.lang.Override
+    public long getIiqM() {
+      return iiqM_;
+    }
+
+    public static final int CASELIGIBLE_FIELD_NUMBER = 16;
+    private boolean casEligible_ = false;
+    /**
+     * bool casEligible = 16;
+     * @return The casEligible.
+     */
+    @java.lang.Override
+    public boolean getCasEligible() {
+      return casEligible_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -5434,16 +5808,16 @@ public final boolean isInitialized() {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getLtpc());
       }
-      if (marketLevel_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getMarketLevel());
       }
-      if (optionGreeks_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         output.writeMessage(3, getOptionGreeks());
       }
-      if (marketOHLC_ != null) {
+      if (((bitField0_ & 0x00000008) != 0)) {
         output.writeMessage(4, getMarketOHLC());
       }
       if (java.lang.Double.doubleToRawLongBits(atp_) != 0) {
@@ -5464,6 +5838,24 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (java.lang.Double.doubleToRawLongBits(tsq_) != 0) {
         output.writeDouble(10, tsq_);
       }
+      if (java.lang.Double.doubleToRawLongBits(iep_) != 0) {
+        output.writeDouble(11, iep_);
+      }
+      if (java.lang.Double.doubleToRawLongBits(rp_) != 0) {
+        output.writeDouble(12, rp_);
+      }
+      if (ieq_ != 0L) {
+        output.writeInt64(13, ieq_);
+      }
+      if (iiqTotal_ != 0L) {
+        output.writeInt64(14, iiqTotal_);
+      }
+      if (iiqM_ != 0L) {
+        output.writeInt64(15, iiqM_);
+      }
+      if (casEligible_ != false) {
+        output.writeBool(16, casEligible_);
+      }
       getUnknownFields().writeTo(output);
     }
 
@@ -5473,19 +5865,19 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, getLtpc());
       }
-      if (marketLevel_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, getMarketLevel());
       }
-      if (optionGreeks_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(3, getOptionGreeks());
       }
-      if (marketOHLC_ != null) {
+      if (((bitField0_ & 0x00000008) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, getMarketOHLC());
       }
@@ -5513,6 +5905,30 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeDoubleSize(10, tsq_);
       }
+      if (java.lang.Double.doubleToRawLongBits(iep_) != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(11, iep_);
+      }
+      if (java.lang.Double.doubleToRawLongBits(rp_) != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(12, rp_);
+      }
+      if (ieq_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(13, ieq_);
+      }
+      if (iiqTotal_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(14, iiqTotal_);
+      }
+      if (iiqM_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(15, iiqM_);
+      }
+      if (casEligible_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(16, casEligible_);
+      }
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -5565,6 +5981,20 @@ public boolean equals(final java.lang.Object obj) {
       if (java.lang.Double.doubleToLongBits(getTsq())
           != java.lang.Double.doubleToLongBits(
               other.getTsq())) return false;
+      if (java.lang.Double.doubleToLongBits(getIep())
+          != java.lang.Double.doubleToLongBits(
+              other.getIep())) return false;
+      if (java.lang.Double.doubleToLongBits(getRp())
+          != java.lang.Double.doubleToLongBits(
+              other.getRp())) return false;
+      if (getIeq()
+          != other.getIeq()) return false;
+      if (getIiqTotal()
+          != other.getIiqTotal()) return false;
+      if (getIiqM()
+          != other.getIiqM()) return false;
+      if (getCasEligible()
+          != other.getCasEligible()) return false;
       if (!getUnknownFields().equals(other.getUnknownFields())) return false;
       return true;
     }
@@ -5610,6 +6040,24 @@ public int hashCode() {
       hash = (37 * hash) + TSQ_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
           java.lang.Double.doubleToLongBits(getTsq()));
+      hash = (37 * hash) + IEP_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          java.lang.Double.doubleToLongBits(getIep()));
+      hash = (37 * hash) + RP_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          java.lang.Double.doubleToLongBits(getRp()));
+      hash = (37 * hash) + IEQ_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getIeq());
+      hash = (37 * hash) + IIQTOTAL_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getIiqTotal());
+      hash = (37 * hash) + IIQM_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getIiqM());
+      hash = (37 * hash) + CASELIGIBLE_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getCasEligible());
       hash = (29 * hash) + getUnknownFields().hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -5659,11 +6107,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Mark
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -5727,53 +6177,59 @@ public static final class Builder extends
 
       // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getLtpcFieldBuilder();
+          getMarketLevelFieldBuilder();
+          getOptionGreeksFieldBuilder();
+          getMarketOHLCFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-        } else {
-          ltpc_ = null;
+        bitField0_ = 0;
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-        if (marketLevelBuilder_ == null) {
-          marketLevel_ = null;
-        } else {
-          marketLevel_ = null;
+        marketLevel_ = null;
+        if (marketLevelBuilder_ != null) {
+          marketLevelBuilder_.dispose();
           marketLevelBuilder_ = null;
         }
-        if (optionGreeksBuilder_ == null) {
-          optionGreeks_ = null;
-        } else {
-          optionGreeks_ = null;
+        optionGreeks_ = null;
+        if (optionGreeksBuilder_ != null) {
+          optionGreeksBuilder_.dispose();
           optionGreeksBuilder_ = null;
         }
-        if (marketOHLCBuilder_ == null) {
-          marketOHLC_ = null;
-        } else {
-          marketOHLC_ = null;
+        marketOHLC_ = null;
+        if (marketOHLCBuilder_ != null) {
+          marketOHLCBuilder_.dispose();
           marketOHLCBuilder_ = null;
         }
         atp_ = 0D;
-
         vtt_ = 0L;
-
         oi_ = 0D;
-
         iv_ = 0D;
-
         tbq_ = 0D;
-
         tsq_ = 0D;
-
+        iep_ = 0D;
+        rp_ = 0D;
+        ieq_ = 0L;
+        iiqTotal_ = 0L;
+        iiqM_ = 0L;
+        casEligible_ = false;
         return this;
       }
 
@@ -5800,34 +6256,75 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullF
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed(this);
-        if (ltpcBuilder_ == null) {
-          result.ltpc_ = ltpc_;
-        } else {
-          result.ltpc_ = ltpcBuilder_.build();
+        if (bitField0_ != 0) { buildPartial0(result); }
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.ltpc_ = ltpcBuilder_ == null
+              ? ltpc_
+              : ltpcBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
-        if (marketLevelBuilder_ == null) {
-          result.marketLevel_ = marketLevel_;
-        } else {
-          result.marketLevel_ = marketLevelBuilder_.build();
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.marketLevel_ = marketLevelBuilder_ == null
+              ? marketLevel_
+              : marketLevelBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
-        if (optionGreeksBuilder_ == null) {
-          result.optionGreeks_ = optionGreeks_;
-        } else {
-          result.optionGreeks_ = optionGreeksBuilder_.build();
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.optionGreeks_ = optionGreeksBuilder_ == null
+              ? optionGreeks_
+              : optionGreeksBuilder_.build();
+          to_bitField0_ |= 0x00000004;
         }
-        if (marketOHLCBuilder_ == null) {
-          result.marketOHLC_ = marketOHLC_;
-        } else {
-          result.marketOHLC_ = marketOHLCBuilder_.build();
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          result.marketOHLC_ = marketOHLCBuilder_ == null
+              ? marketOHLC_
+              : marketOHLCBuilder_.build();
+          to_bitField0_ |= 0x00000008;
         }
-        result.atp_ = atp_;
-        result.vtt_ = vtt_;
-        result.oi_ = oi_;
-        result.iv_ = iv_;
-        result.tbq_ = tbq_;
-        result.tsq_ = tsq_;
-        onBuilt();
-        return result;
+        if (((from_bitField0_ & 0x00000010) != 0)) {
+          result.atp_ = atp_;
+        }
+        if (((from_bitField0_ & 0x00000020) != 0)) {
+          result.vtt_ = vtt_;
+        }
+        if (((from_bitField0_ & 0x00000040) != 0)) {
+          result.oi_ = oi_;
+        }
+        if (((from_bitField0_ & 0x00000080) != 0)) {
+          result.iv_ = iv_;
+        }
+        if (((from_bitField0_ & 0x00000100) != 0)) {
+          result.tbq_ = tbq_;
+        }
+        if (((from_bitField0_ & 0x00000200) != 0)) {
+          result.tsq_ = tsq_;
+        }
+        if (((from_bitField0_ & 0x00000400) != 0)) {
+          result.iep_ = iep_;
+        }
+        if (((from_bitField0_ & 0x00000800) != 0)) {
+          result.rp_ = rp_;
+        }
+        if (((from_bitField0_ & 0x00001000) != 0)) {
+          result.ieq_ = ieq_;
+        }
+        if (((from_bitField0_ & 0x00002000) != 0)) {
+          result.iiqTotal_ = iiqTotal_;
+        }
+        if (((from_bitField0_ & 0x00004000) != 0)) {
+          result.iiqM_ = iiqM_;
+        }
+        if (((from_bitField0_ & 0x00008000) != 0)) {
+          result.casEligible_ = casEligible_;
+        }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -5904,6 +6401,24 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData
         if (other.getTsq() != 0D) {
           setTsq(other.getTsq());
         }
+        if (other.getIep() != 0D) {
+          setIep(other.getIep());
+        }
+        if (other.getRp() != 0D) {
+          setRp(other.getRp());
+        }
+        if (other.getIeq() != 0L) {
+          setIeq(other.getIeq());
+        }
+        if (other.getIiqTotal() != 0L) {
+          setIiqTotal(other.getIiqTotal());
+        }
+        if (other.getIiqM() != 0L) {
+          setIiqM(other.getIiqM());
+        }
+        if (other.getCasEligible() != false) {
+          setCasEligible(other.getCasEligible());
+        }
         this.mergeUnknownFields(other.getUnknownFields());
         onChanged();
         return this;
@@ -5934,60 +6449,90 @@ public Builder mergeFrom(
                 input.readMessage(
                     getLtpcFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000001;
                 break;
               } // case 10
               case 18: {
                 input.readMessage(
                     getMarketLevelFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000002;
                 break;
               } // case 18
               case 26: {
                 input.readMessage(
                     getOptionGreeksFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000004;
                 break;
               } // case 26
               case 34: {
                 input.readMessage(
                     getMarketOHLCFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000008;
                 break;
               } // case 34
               case 41: {
                 atp_ = input.readDouble();
-
+                bitField0_ |= 0x00000010;
                 break;
               } // case 41
               case 48: {
                 vtt_ = input.readInt64();
-
+                bitField0_ |= 0x00000020;
                 break;
               } // case 48
               case 57: {
                 oi_ = input.readDouble();
-
+                bitField0_ |= 0x00000040;
                 break;
               } // case 57
               case 65: {
                 iv_ = input.readDouble();
-
+                bitField0_ |= 0x00000080;
                 break;
               } // case 65
               case 73: {
                 tbq_ = input.readDouble();
-
+                bitField0_ |= 0x00000100;
                 break;
               } // case 73
               case 81: {
                 tsq_ = input.readDouble();
-
+                bitField0_ |= 0x00000200;
                 break;
               } // case 81
+              case 89: {
+                iep_ = input.readDouble();
+                bitField0_ |= 0x00000400;
+                break;
+              } // case 89
+              case 97: {
+                rp_ = input.readDouble();
+                bitField0_ |= 0x00000800;
+                break;
+              } // case 97
+              case 104: {
+                ieq_ = input.readInt64();
+                bitField0_ |= 0x00001000;
+                break;
+              } // case 104
+              case 112: {
+                iiqTotal_ = input.readInt64();
+                bitField0_ |= 0x00002000;
+                break;
+              } // case 112
+              case 120: {
+                iiqM_ = input.readInt64();
+                bitField0_ |= 0x00004000;
+                break;
+              } // case 120
+              case 128: {
+                casEligible_ = input.readBool();
+                bitField0_ |= 0x00008000;
+                break;
+              } // case 128
               default: {
                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                   done = true; // was an endgroup tag
@@ -6003,6 +6548,7 @@ public Builder mergeFrom(
         } // finally
         return this;
       }
+      private int bitField0_;
 
       private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
       private com.google.protobuf.SingleFieldBuilderV3<
@@ -6012,7 +6558,7 @@ public Builder mergeFrom(
        * @return Whether the ltpc field is set.
        */
       public boolean hasLtpc() {
-        return ltpcBuilder_ != null || ltpc_ != null;
+        return ((bitField0_ & 0x00000001) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -6034,11 +6580,11 @@ public Builder setLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
             throw new NullPointerException();
           }
           ltpc_ = value;
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -6048,11 +6594,11 @@ public Builder setLtpc(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder builderForValue) {
         if (ltpcBuilder_ == null) {
           ltpc_ = builderForValue.build();
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -6060,38 +6606,40 @@ public Builder setLtpc(
        */
       public Builder mergeLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC value) {
         if (ltpcBuilder_ == null) {
-          if (ltpc_ != null) {
-            ltpc_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.newBuilder(ltpc_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000001) != 0) &&
+            ltpc_ != null &&
+            ltpc_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance()) {
+            getLtpcBuilder().mergeFrom(value);
           } else {
             ltpc_ = value;
           }
-          onChanged();
         } else {
           ltpcBuilder_.mergeFrom(value);
         }
-
+        if (ltpc_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public Builder clearLtpc() {
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-          onChanged();
-        } else {
-          ltpc_ = null;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder getLtpcBuilder() {
-        
+        bitField0_ |= 0x00000001;
         onChanged();
         return getLtpcFieldBuilder().getBuilder();
       }
@@ -6131,7 +6679,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
        * @return Whether the marketLevel field is set.
        */
       public boolean hasMarketLevel() {
-        return marketLevelBuilder_ != null || marketLevel_ != null;
+        return ((bitField0_ & 0x00000002) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketLevel marketLevel = 2;
@@ -6153,11 +6701,11 @@ public Builder setMarketLevel(com.upstox.marketdatafeederv3udapi.rpc.proto.Marke
             throw new NullPointerException();
           }
           marketLevel_ = value;
-          onChanged();
         } else {
           marketLevelBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -6167,11 +6715,11 @@ public Builder setMarketLevel(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.Builder builderForValue) {
         if (marketLevelBuilder_ == null) {
           marketLevel_ = builderForValue.build();
-          onChanged();
         } else {
           marketLevelBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -6179,38 +6727,40 @@ public Builder setMarketLevel(
        */
       public Builder mergeMarketLevel(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel value) {
         if (marketLevelBuilder_ == null) {
-          if (marketLevel_ != null) {
-            marketLevel_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.newBuilder(marketLevel_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000002) != 0) &&
+            marketLevel_ != null &&
+            marketLevel_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.getDefaultInstance()) {
+            getMarketLevelBuilder().mergeFrom(value);
           } else {
             marketLevel_ = value;
           }
-          onChanged();
         } else {
           marketLevelBuilder_.mergeFrom(value);
         }
-
+        if (marketLevel_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketLevel marketLevel = 2;
        */
       public Builder clearMarketLevel() {
-        if (marketLevelBuilder_ == null) {
-          marketLevel_ = null;
-          onChanged();
-        } else {
-          marketLevel_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        marketLevel_ = null;
+        if (marketLevelBuilder_ != null) {
+          marketLevelBuilder_.dispose();
           marketLevelBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketLevel marketLevel = 2;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.Builder getMarketLevelBuilder() {
-        
+        bitField0_ |= 0x00000002;
         onChanged();
         return getMarketLevelFieldBuilder().getBuilder();
       }
@@ -6250,7 +6800,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel
        * @return Whether the optionGreeks field is set.
        */
       public boolean hasOptionGreeks() {
-        return optionGreeksBuilder_ != null || optionGreeks_ != null;
+        return ((bitField0_ & 0x00000004) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
@@ -6272,11 +6822,11 @@ public Builder setOptionGreeks(com.upstox.marketdatafeederv3udapi.rpc.proto.Mark
             throw new NullPointerException();
           }
           optionGreeks_ = value;
-          onChanged();
         } else {
           optionGreeksBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -6286,11 +6836,11 @@ public Builder setOptionGreeks(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.Builder builderForValue) {
         if (optionGreeksBuilder_ == null) {
           optionGreeks_ = builderForValue.build();
-          onChanged();
         } else {
           optionGreeksBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -6298,38 +6848,40 @@ public Builder setOptionGreeks(
        */
       public Builder mergeOptionGreeks(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks value) {
         if (optionGreeksBuilder_ == null) {
-          if (optionGreeks_ != null) {
-            optionGreeks_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.newBuilder(optionGreeks_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000004) != 0) &&
+            optionGreeks_ != null &&
+            optionGreeks_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.getDefaultInstance()) {
+            getOptionGreeksBuilder().mergeFrom(value);
           } else {
             optionGreeks_ = value;
           }
-          onChanged();
         } else {
           optionGreeksBuilder_.mergeFrom(value);
         }
-
+        if (optionGreeks_ != null) {
+          bitField0_ |= 0x00000004;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
        */
       public Builder clearOptionGreeks() {
-        if (optionGreeksBuilder_ == null) {
-          optionGreeks_ = null;
-          onChanged();
-        } else {
-          optionGreeks_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        optionGreeks_ = null;
+        if (optionGreeksBuilder_ != null) {
+          optionGreeksBuilder_.dispose();
           optionGreeksBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.Builder getOptionGreeksBuilder() {
-        
+        bitField0_ |= 0x00000004;
         onChanged();
         return getOptionGreeksFieldBuilder().getBuilder();
       }
@@ -6369,7 +6921,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek
        * @return Whether the marketOHLC field is set.
        */
       public boolean hasMarketOHLC() {
-        return marketOHLCBuilder_ != null || marketOHLC_ != null;
+        return ((bitField0_ & 0x00000008) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 4;
@@ -6391,11 +6943,11 @@ public Builder setMarketOHLC(com.upstox.marketdatafeederv3udapi.rpc.proto.Market
             throw new NullPointerException();
           }
           marketOHLC_ = value;
-          onChanged();
         } else {
           marketOHLCBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -6405,11 +6957,11 @@ public Builder setMarketOHLC(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.Builder builderForValue) {
         if (marketOHLCBuilder_ == null) {
           marketOHLC_ = builderForValue.build();
-          onChanged();
         } else {
           marketOHLCBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -6417,38 +6969,40 @@ public Builder setMarketOHLC(
        */
       public Builder mergeMarketOHLC(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC value) {
         if (marketOHLCBuilder_ == null) {
-          if (marketOHLC_ != null) {
-            marketOHLC_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.newBuilder(marketOHLC_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000008) != 0) &&
+            marketOHLC_ != null &&
+            marketOHLC_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.getDefaultInstance()) {
+            getMarketOHLCBuilder().mergeFrom(value);
           } else {
             marketOHLC_ = value;
           }
-          onChanged();
         } else {
           marketOHLCBuilder_.mergeFrom(value);
         }
-
+        if (marketOHLC_ != null) {
+          bitField0_ |= 0x00000008;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 4;
        */
       public Builder clearMarketOHLC() {
-        if (marketOHLCBuilder_ == null) {
-          marketOHLC_ = null;
-          onChanged();
-        } else {
-          marketOHLC_ = null;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        marketOHLC_ = null;
+        if (marketOHLCBuilder_ != null) {
+          marketOHLCBuilder_.dispose();
           marketOHLCBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 4;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.Builder getMarketOHLCBuilder() {
-        
+        bitField0_ |= 0x00000008;
         onChanged();
         return getMarketOHLCFieldBuilder().getBuilder();
       }
@@ -6503,8 +7057,9 @@ public double getAtp() {
        * @return This builder for chaining.
        */
       public Builder setAtp(double value) {
-        
+
         atp_ = value;
+        bitField0_ |= 0x00000010;
         onChanged();
         return this;
       }
@@ -6517,7 +7072,7 @@ public Builder setAtp(double value) {
        * @return This builder for chaining.
        */
       public Builder clearAtp() {
-        
+        bitField0_ = (bitField0_ & ~0x00000010);
         atp_ = 0D;
         onChanged();
         return this;
@@ -6546,8 +7101,9 @@ public long getVtt() {
        * @return This builder for chaining.
        */
       public Builder setVtt(long value) {
-        
+
         vtt_ = value;
+        bitField0_ |= 0x00000020;
         onChanged();
         return this;
       }
@@ -6560,7 +7116,7 @@ public Builder setVtt(long value) {
        * @return This builder for chaining.
        */
       public Builder clearVtt() {
-        
+        bitField0_ = (bitField0_ & ~0x00000020);
         vtt_ = 0L;
         onChanged();
         return this;
@@ -6589,8 +7145,9 @@ public double getOi() {
        * @return This builder for chaining.
        */
       public Builder setOi(double value) {
-        
+
         oi_ = value;
+        bitField0_ |= 0x00000040;
         onChanged();
         return this;
       }
@@ -6603,7 +7160,7 @@ public Builder setOi(double value) {
        * @return This builder for chaining.
        */
       public Builder clearOi() {
-        
+        bitField0_ = (bitField0_ & ~0x00000040);
         oi_ = 0D;
         onChanged();
         return this;
@@ -6632,8 +7189,9 @@ public double getIv() {
        * @return This builder for chaining.
        */
       public Builder setIv(double value) {
-        
+
         iv_ = value;
+        bitField0_ |= 0x00000080;
         onChanged();
         return this;
       }
@@ -6646,7 +7204,7 @@ public Builder setIv(double value) {
        * @return This builder for chaining.
        */
       public Builder clearIv() {
-        
+        bitField0_ = (bitField0_ & ~0x00000080);
         iv_ = 0D;
         onChanged();
         return this;
@@ -6675,8 +7233,9 @@ public double getTbq() {
        * @return This builder for chaining.
        */
       public Builder setTbq(double value) {
-        
+
         tbq_ = value;
+        bitField0_ |= 0x00000100;
         onChanged();
         return this;
       }
@@ -6689,7 +7248,7 @@ public Builder setTbq(double value) {
        * @return This builder for chaining.
        */
       public Builder clearTbq() {
-        
+        bitField0_ = (bitField0_ & ~0x00000100);
         tbq_ = 0D;
         onChanged();
         return this;
@@ -6718,8 +7277,9 @@ public double getTsq() {
        * @return This builder for chaining.
        */
       public Builder setTsq(double value) {
-        
+
         tsq_ = value;
+        bitField0_ |= 0x00000200;
         onChanged();
         return this;
       }
@@ -6732,12 +7292,204 @@ public Builder setTsq(double value) {
        * @return This builder for chaining.
        */
       public Builder clearTsq() {
-        
+        bitField0_ = (bitField0_ & ~0x00000200);
         tsq_ = 0D;
         onChanged();
         return this;
       }
-      @java.lang.Override
+
+      private double iep_ ;
+      /**
+       * double iep = 11;
+       * @return The iep.
+       */
+      @java.lang.Override
+      public double getIep() {
+        return iep_;
+      }
+      /**
+       * double iep = 11;
+       * @param value The iep to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIep(double value) {
+
+        iep_ = value;
+        bitField0_ |= 0x00000400;
+        onChanged();
+        return this;
+      }
+      /**
+       * double iep = 11;
+       * @return This builder for chaining.
+       */
+      public Builder clearIep() {
+        bitField0_ = (bitField0_ & ~0x00000400);
+        iep_ = 0D;
+        onChanged();
+        return this;
+      }
+
+      private double rp_ ;
+      /**
+       * double rp = 12;
+       * @return The rp.
+       */
+      @java.lang.Override
+      public double getRp() {
+        return rp_;
+      }
+      /**
+       * double rp = 12;
+       * @param value The rp to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRp(double value) {
+
+        rp_ = value;
+        bitField0_ |= 0x00000800;
+        onChanged();
+        return this;
+      }
+      /**
+       * double rp = 12;
+       * @return This builder for chaining.
+       */
+      public Builder clearRp() {
+        bitField0_ = (bitField0_ & ~0x00000800);
+        rp_ = 0D;
+        onChanged();
+        return this;
+      }
+
+      private long ieq_ ;
+      /**
+       * int64 ieq = 13;
+       * @return The ieq.
+       */
+      @java.lang.Override
+      public long getIeq() {
+        return ieq_;
+      }
+      /**
+       * int64 ieq = 13;
+       * @param value The ieq to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIeq(long value) {
+
+        ieq_ = value;
+        bitField0_ |= 0x00001000;
+        onChanged();
+        return this;
+      }
+      /**
+       * int64 ieq = 13;
+       * @return This builder for chaining.
+       */
+      public Builder clearIeq() {
+        bitField0_ = (bitField0_ & ~0x00001000);
+        ieq_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long iiqTotal_ ;
+      /**
+       * int64 iiqTotal = 14;
+       * @return The iiqTotal.
+       */
+      @java.lang.Override
+      public long getIiqTotal() {
+        return iiqTotal_;
+      }
+      /**
+       * int64 iiqTotal = 14;
+       * @param value The iiqTotal to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIiqTotal(long value) {
+
+        iiqTotal_ = value;
+        bitField0_ |= 0x00002000;
+        onChanged();
+        return this;
+      }
+      /**
+       * int64 iiqTotal = 14;
+       * @return This builder for chaining.
+       */
+      public Builder clearIiqTotal() {
+        bitField0_ = (bitField0_ & ~0x00002000);
+        iiqTotal_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long iiqM_ ;
+      /**
+       * int64 iiqM = 15;
+       * @return The iiqM.
+       */
+      @java.lang.Override
+      public long getIiqM() {
+        return iiqM_;
+      }
+      /**
+       * int64 iiqM = 15;
+       * @param value The iiqM to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIiqM(long value) {
+
+        iiqM_ = value;
+        bitField0_ |= 0x00004000;
+        onChanged();
+        return this;
+      }
+      /**
+       * int64 iiqM = 15;
+       * @return This builder for chaining.
+       */
+      public Builder clearIiqM() {
+        bitField0_ = (bitField0_ & ~0x00004000);
+        iiqM_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean casEligible_ ;
+      /**
+       * bool casEligible = 16;
+       * @return The casEligible.
+       */
+      @java.lang.Override
+      public boolean getCasEligible() {
+        return casEligible_;
+      }
+      /**
+       * bool casEligible = 16;
+       * @param value The casEligible to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCasEligible(boolean value) {
+
+        casEligible_ = value;
+        bitField0_ |= 0x00008000;
+        onChanged();
+        return this;
+      }
+      /**
+       * bool casEligible = 16;
+       * @return This builder for chaining.
+       */
+      public Builder clearCasEligible() {
+        bitField0_ = (bitField0_ & ~0x00008000);
+        casEligible_ = false;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
         return super.setUnknownFields(unknownFields);
@@ -6857,11 +7609,6 @@ protected java.lang.Object newInstance(
       return new IndexFullFeed();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_IndexFullFeed_descriptor;
@@ -6875,6 +7622,7 @@ protected java.lang.Object newInstance(
               com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed.Builder.class);
     }
 
+    private int bitField0_;
     public static final int LTPC_FIELD_NUMBER = 1;
     private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
     /**
@@ -6883,7 +7631,7 @@ protected java.lang.Object newInstance(
      */
     @java.lang.Override
     public boolean hasLtpc() {
-      return ltpc_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -6898,7 +7646,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC getLtp
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuilder getLtpcOrBuilder() {
-      return getLtpc();
+      return ltpc_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance() : ltpc_;
     }
 
     public static final int MARKETOHLC_FIELD_NUMBER = 2;
@@ -6909,7 +7657,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
      */
     @java.lang.Override
     public boolean hasMarketOHLC() {
-      return marketOHLC_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 2;
@@ -6924,7 +7672,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLCOrBuilder getMarketOHLCOrBuilder() {
-      return getMarketOHLC();
+      return marketOHLC_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.getDefaultInstance() : marketOHLC_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -6941,10 +7689,10 @@ public final boolean isInitialized() {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getLtpc());
       }
-      if (marketOHLC_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getMarketOHLC());
       }
       getUnknownFields().writeTo(output);
@@ -6956,11 +7704,11 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, getLtpc());
       }
-      if (marketOHLC_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, getMarketOHLC());
       }
@@ -7057,11 +7805,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Inde
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -7125,27 +7875,33 @@ public static final class Builder extends
 
       // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getLtpcFieldBuilder();
+          getMarketOHLCFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-        } else {
-          ltpc_ = null;
+        bitField0_ = 0;
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-        if (marketOHLCBuilder_ == null) {
-          marketOHLC_ = null;
-        } else {
-          marketOHLC_ = null;
+        marketOHLC_ = null;
+        if (marketOHLCBuilder_ != null) {
+          marketOHLCBuilder_.dispose();
           marketOHLCBuilder_ = null;
         }
         return this;
@@ -7174,20 +7930,29 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFe
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed(this);
-        if (ltpcBuilder_ == null) {
-          result.ltpc_ = ltpc_;
-        } else {
-          result.ltpc_ = ltpcBuilder_.build();
-        }
-        if (marketOHLCBuilder_ == null) {
-          result.marketOHLC_ = marketOHLC_;
-        } else {
-          result.marketOHLC_ = marketOHLCBuilder_.build();
-        }
+        if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.ltpc_ = ltpcBuilder_ == null
+              ? ltpc_
+              : ltpcBuilder_.build();
+          to_bitField0_ |= 0x00000001;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.marketOHLC_ = marketOHLCBuilder_ == null
+              ? marketOHLC_
+              : marketOHLCBuilder_.build();
+          to_bitField0_ |= 0x00000002;
+        }
+        result.bitField0_ |= to_bitField0_;
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -7268,14 +8033,14 @@ public Builder mergeFrom(
                 input.readMessage(
                     getLtpcFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000001;
                 break;
               } // case 10
               case 18: {
                 input.readMessage(
                     getMarketOHLCFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000002;
                 break;
               } // case 18
               default: {
@@ -7293,6 +8058,7 @@ public Builder mergeFrom(
         } // finally
         return this;
       }
+      private int bitField0_;
 
       private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
       private com.google.protobuf.SingleFieldBuilderV3<
@@ -7302,7 +8068,7 @@ public Builder mergeFrom(
        * @return Whether the ltpc field is set.
        */
       public boolean hasLtpc() {
-        return ltpcBuilder_ != null || ltpc_ != null;
+        return ((bitField0_ & 0x00000001) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -7324,11 +8090,11 @@ public Builder setLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
             throw new NullPointerException();
           }
           ltpc_ = value;
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -7338,11 +8104,11 @@ public Builder setLtpc(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder builderForValue) {
         if (ltpcBuilder_ == null) {
           ltpc_ = builderForValue.build();
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -7350,38 +8116,40 @@ public Builder setLtpc(
        */
       public Builder mergeLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC value) {
         if (ltpcBuilder_ == null) {
-          if (ltpc_ != null) {
-            ltpc_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.newBuilder(ltpc_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000001) != 0) &&
+            ltpc_ != null &&
+            ltpc_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance()) {
+            getLtpcBuilder().mergeFrom(value);
           } else {
             ltpc_ = value;
           }
-          onChanged();
         } else {
           ltpcBuilder_.mergeFrom(value);
         }
-
+        if (ltpc_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public Builder clearLtpc() {
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-          onChanged();
-        } else {
-          ltpc_ = null;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder getLtpcBuilder() {
-        
+        bitField0_ |= 0x00000001;
         onChanged();
         return getLtpcFieldBuilder().getBuilder();
       }
@@ -7421,7 +8189,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
        * @return Whether the marketOHLC field is set.
        */
       public boolean hasMarketOHLC() {
-        return marketOHLCBuilder_ != null || marketOHLC_ != null;
+        return ((bitField0_ & 0x00000002) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 2;
@@ -7443,11 +8211,11 @@ public Builder setMarketOHLC(com.upstox.marketdatafeederv3udapi.rpc.proto.Market
             throw new NullPointerException();
           }
           marketOHLC_ = value;
-          onChanged();
         } else {
           marketOHLCBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -7457,11 +8225,11 @@ public Builder setMarketOHLC(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.Builder builderForValue) {
         if (marketOHLCBuilder_ == null) {
           marketOHLC_ = builderForValue.build();
-          onChanged();
         } else {
           marketOHLCBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -7469,38 +8237,40 @@ public Builder setMarketOHLC(
        */
       public Builder mergeMarketOHLC(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC value) {
         if (marketOHLCBuilder_ == null) {
-          if (marketOHLC_ != null) {
-            marketOHLC_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.newBuilder(marketOHLC_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000002) != 0) &&
+            marketOHLC_ != null &&
+            marketOHLC_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.getDefaultInstance()) {
+            getMarketOHLCBuilder().mergeFrom(value);
           } else {
             marketOHLC_ = value;
           }
-          onChanged();
         } else {
           marketOHLCBuilder_.mergeFrom(value);
         }
-
+        if (marketOHLC_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 2;
        */
       public Builder clearMarketOHLC() {
-        if (marketOHLCBuilder_ == null) {
-          marketOHLC_ = null;
-          onChanged();
-        } else {
-          marketOHLC_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        marketOHLC_ = null;
+        if (marketOHLCBuilder_ != null) {
+          marketOHLCBuilder_.dispose();
           marketOHLCBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 2;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.Builder getMarketOHLCBuilder() {
-        
+        bitField0_ |= 0x00000002;
         onChanged();
         return getMarketOHLCFieldBuilder().getBuilder();
       }
@@ -7629,7 +8399,7 @@ public interface FullFeedOrBuilder extends
      */
     com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeedOrBuilder getIndexFFOrBuilder();
 
-    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed.FullFeedUnionCase getFullFeedUnionCase();
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed.FullFeedUnionCase getFullFeedUnionCase();
   }
   /**
    * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.FullFeed}
@@ -7653,11 +8423,6 @@ protected java.lang.Object newInstance(
       return new FullFeed();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FullFeed_descriptor;
@@ -7672,6 +8437,7 @@ protected java.lang.Object newInstance(
     }
 
     private int fullFeedUnionCase_ = 0;
+    @SuppressWarnings("serial")
     private java.lang.Object fullFeedUnion_;
     public enum FullFeedUnionCase
         implements com.google.protobuf.Internal.EnumLite,
@@ -7911,11 +8677,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Full
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -7990,6 +8758,7 @@ private Builder(
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         if (marketFFBuilder_ != null) {
           marketFFBuilder_.clear();
         }
@@ -8024,25 +8793,29 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed bu
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed(this);
-        if (fullFeedUnionCase_ == 1) {
-          if (marketFFBuilder_ == null) {
-            result.fullFeedUnion_ = fullFeedUnion_;
-          } else {
-            result.fullFeedUnion_ = marketFFBuilder_.build();
-          }
-        }
-        if (fullFeedUnionCase_ == 2) {
-          if (indexFFBuilder_ == null) {
-            result.fullFeedUnion_ = fullFeedUnion_;
-          } else {
-            result.fullFeedUnion_ = indexFFBuilder_.build();
-          }
-        }
-        result.fullFeedUnionCase_ = fullFeedUnionCase_;
+        if (bitField0_ != 0) { buildPartial0(result); }
+        buildPartialOneofs(result);
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed result) {
+        int from_bitField0_ = bitField0_;
+      }
+
+      private void buildPartialOneofs(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed result) {
+        result.fullFeedUnionCase_ = fullFeedUnionCase_;
+        result.fullFeedUnion_ = this.fullFeedUnion_;
+        if (fullFeedUnionCase_ == 1 &&
+            marketFFBuilder_ != null) {
+          result.fullFeedUnion_ = marketFFBuilder_.build();
+        }
+        if (fullFeedUnionCase_ == 2 &&
+            indexFFBuilder_ != null) {
+          result.fullFeedUnion_ = indexFFBuilder_.build();
+        }
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -8170,6 +8943,7 @@ public Builder clearFullFeedUnion() {
         return this;
       }
 
+      private int bitField0_;
 
       private com.google.protobuf.SingleFieldBuilderV3<
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed.Builder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeedOrBuilder> marketFFBuilder_;
@@ -8309,7 +9083,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullF
           fullFeedUnion_ = null;
         }
         fullFeedUnionCase_ = 1;
-        onChanged();;
+        onChanged();
         return marketFFBuilder_;
       }
 
@@ -8451,7 +9225,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFe
           fullFeedUnion_ = null;
         }
         fullFeedUnionCase_ = 2;
-        onChanged();;
+        onChanged();
         return indexFFBuilder_;
       }
       @java.lang.Override
@@ -8619,11 +9393,6 @@ protected java.lang.Object newInstance(
       return new FirstLevelWithGreeks();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FirstLevelWithGreeks_descriptor;
@@ -8637,6 +9406,7 @@ protected java.lang.Object newInstance(
               com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks.Builder.class);
     }
 
+    private int bitField0_;
     public static final int LTPC_FIELD_NUMBER = 1;
     private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
     /**
@@ -8645,7 +9415,7 @@ protected java.lang.Object newInstance(
      */
     @java.lang.Override
     public boolean hasLtpc() {
-      return ltpc_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -8660,7 +9430,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC getLtp
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuilder getLtpcOrBuilder() {
-      return getLtpc();
+      return ltpc_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance() : ltpc_;
     }
 
     public static final int FIRSTDEPTH_FIELD_NUMBER = 2;
@@ -8671,7 +9441,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
      */
     @java.lang.Override
     public boolean hasFirstDepth() {
-      return firstDepth_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote firstDepth = 2;
@@ -8686,7 +9456,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote getFi
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.QuoteOrBuilder getFirstDepthOrBuilder() {
-      return getFirstDepth();
+      return firstDepth_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.getDefaultInstance() : firstDepth_;
     }
 
     public static final int OPTIONGREEKS_FIELD_NUMBER = 3;
@@ -8697,7 +9467,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.QuoteOrBuil
      */
     @java.lang.Override
     public boolean hasOptionGreeks() {
-      return optionGreeks_ != null;
+      return ((bitField0_ & 0x00000004) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
@@ -8712,11 +9482,11 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeksOrBuilder getOptionGreeksOrBuilder() {
-      return getOptionGreeks();
+      return optionGreeks_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.getDefaultInstance() : optionGreeks_;
     }
 
     public static final int VTT_FIELD_NUMBER = 4;
-    private long vtt_;
+    private long vtt_ = 0L;
     /**
      * 
      *volume traded today
@@ -8731,7 +9501,7 @@ public long getVtt() {
     }
 
     public static final int OI_FIELD_NUMBER = 5;
-    private double oi_;
+    private double oi_ = 0D;
     /**
      * 
      *open interest
@@ -8746,7 +9516,7 @@ public double getOi() {
     }
 
     public static final int IV_FIELD_NUMBER = 6;
-    private double iv_;
+    private double iv_ = 0D;
     /**
      * 
      *implied volatility
@@ -8774,13 +9544,13 @@ public final boolean isInitialized() {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getLtpc());
       }
-      if (firstDepth_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getFirstDepth());
       }
-      if (optionGreeks_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         output.writeMessage(3, getOptionGreeks());
       }
       if (vtt_ != 0L) {
@@ -8801,15 +9571,15 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, getLtpc());
       }
-      if (firstDepth_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, getFirstDepth());
       }
-      if (optionGreeks_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(3, getOptionGreeks());
       }
@@ -8944,11 +9714,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Firs
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -9012,41 +9784,44 @@ public static final class Builder extends
 
       // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getLtpcFieldBuilder();
+          getFirstDepthFieldBuilder();
+          getOptionGreeksFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-        } else {
-          ltpc_ = null;
+        bitField0_ = 0;
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-        if (firstDepthBuilder_ == null) {
-          firstDepth_ = null;
-        } else {
-          firstDepth_ = null;
+        firstDepth_ = null;
+        if (firstDepthBuilder_ != null) {
+          firstDepthBuilder_.dispose();
           firstDepthBuilder_ = null;
         }
-        if (optionGreeksBuilder_ == null) {
-          optionGreeks_ = null;
-        } else {
-          optionGreeks_ = null;
+        optionGreeks_ = null;
+        if (optionGreeksBuilder_ != null) {
+          optionGreeksBuilder_.dispose();
           optionGreeksBuilder_ = null;
         }
         vtt_ = 0L;
-
         oi_ = 0D;
-
         iv_ = 0D;
-
         return this;
       }
 
@@ -9073,26 +9848,42 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks(this);
-        if (ltpcBuilder_ == null) {
-          result.ltpc_ = ltpc_;
-        } else {
-          result.ltpc_ = ltpcBuilder_.build();
+        if (bitField0_ != 0) { buildPartial0(result); }
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.ltpc_ = ltpcBuilder_ == null
+              ? ltpc_
+              : ltpcBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
-        if (firstDepthBuilder_ == null) {
-          result.firstDepth_ = firstDepth_;
-        } else {
-          result.firstDepth_ = firstDepthBuilder_.build();
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.firstDepth_ = firstDepthBuilder_ == null
+              ? firstDepth_
+              : firstDepthBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
-        if (optionGreeksBuilder_ == null) {
-          result.optionGreeks_ = optionGreeks_;
-        } else {
-          result.optionGreeks_ = optionGreeksBuilder_.build();
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.optionGreeks_ = optionGreeksBuilder_ == null
+              ? optionGreeks_
+              : optionGreeksBuilder_.build();
+          to_bitField0_ |= 0x00000004;
         }
-        result.vtt_ = vtt_;
-        result.oi_ = oi_;
-        result.iv_ = iv_;
-        onBuilt();
-        return result;
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          result.vtt_ = vtt_;
+        }
+        if (((from_bitField0_ & 0x00000010) != 0)) {
+          result.oi_ = oi_;
+        }
+        if (((from_bitField0_ & 0x00000020) != 0)) {
+          result.iv_ = iv_;
+        }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -9187,36 +9978,36 @@ public Builder mergeFrom(
                 input.readMessage(
                     getLtpcFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000001;
                 break;
               } // case 10
               case 18: {
                 input.readMessage(
                     getFirstDepthFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000002;
                 break;
               } // case 18
               case 26: {
                 input.readMessage(
                     getOptionGreeksFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000004;
                 break;
               } // case 26
               case 32: {
                 vtt_ = input.readInt64();
-
+                bitField0_ |= 0x00000008;
                 break;
               } // case 32
               case 41: {
                 oi_ = input.readDouble();
-
+                bitField0_ |= 0x00000010;
                 break;
               } // case 41
               case 49: {
                 iv_ = input.readDouble();
-
+                bitField0_ |= 0x00000020;
                 break;
               } // case 49
               default: {
@@ -9234,6 +10025,7 @@ public Builder mergeFrom(
         } // finally
         return this;
       }
+      private int bitField0_;
 
       private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
       private com.google.protobuf.SingleFieldBuilderV3<
@@ -9243,7 +10035,7 @@ public Builder mergeFrom(
        * @return Whether the ltpc field is set.
        */
       public boolean hasLtpc() {
-        return ltpcBuilder_ != null || ltpc_ != null;
+        return ((bitField0_ & 0x00000001) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -9265,11 +10057,11 @@ public Builder setLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
             throw new NullPointerException();
           }
           ltpc_ = value;
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -9279,11 +10071,11 @@ public Builder setLtpc(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder builderForValue) {
         if (ltpcBuilder_ == null) {
           ltpc_ = builderForValue.build();
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -9291,38 +10083,40 @@ public Builder setLtpc(
        */
       public Builder mergeLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC value) {
         if (ltpcBuilder_ == null) {
-          if (ltpc_ != null) {
-            ltpc_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.newBuilder(ltpc_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000001) != 0) &&
+            ltpc_ != null &&
+            ltpc_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance()) {
+            getLtpcBuilder().mergeFrom(value);
           } else {
             ltpc_ = value;
           }
-          onChanged();
         } else {
           ltpcBuilder_.mergeFrom(value);
         }
-
+        if (ltpc_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public Builder clearLtpc() {
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-          onChanged();
-        } else {
-          ltpc_ = null;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder getLtpcBuilder() {
-        
+        bitField0_ |= 0x00000001;
         onChanged();
         return getLtpcFieldBuilder().getBuilder();
       }
@@ -9362,7 +10156,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
        * @return Whether the firstDepth field is set.
        */
       public boolean hasFirstDepth() {
-        return firstDepthBuilder_ != null || firstDepth_ != null;
+        return ((bitField0_ & 0x00000002) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote firstDepth = 2;
@@ -9384,11 +10178,11 @@ public Builder setFirstDepth(com.upstox.marketdatafeederv3udapi.rpc.proto.Market
             throw new NullPointerException();
           }
           firstDepth_ = value;
-          onChanged();
         } else {
           firstDepthBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -9398,11 +10192,11 @@ public Builder setFirstDepth(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.Builder builderForValue) {
         if (firstDepthBuilder_ == null) {
           firstDepth_ = builderForValue.build();
-          onChanged();
         } else {
           firstDepthBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -9410,38 +10204,40 @@ public Builder setFirstDepth(
        */
       public Builder mergeFirstDepth(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote value) {
         if (firstDepthBuilder_ == null) {
-          if (firstDepth_ != null) {
-            firstDepth_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.newBuilder(firstDepth_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000002) != 0) &&
+            firstDepth_ != null &&
+            firstDepth_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.getDefaultInstance()) {
+            getFirstDepthBuilder().mergeFrom(value);
           } else {
             firstDepth_ = value;
           }
-          onChanged();
         } else {
           firstDepthBuilder_.mergeFrom(value);
         }
-
+        if (firstDepth_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote firstDepth = 2;
        */
       public Builder clearFirstDepth() {
-        if (firstDepthBuilder_ == null) {
-          firstDepth_ = null;
-          onChanged();
-        } else {
-          firstDepth_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        firstDepth_ = null;
+        if (firstDepthBuilder_ != null) {
+          firstDepthBuilder_.dispose();
           firstDepthBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote firstDepth = 2;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.Builder getFirstDepthBuilder() {
-        
+        bitField0_ |= 0x00000002;
         onChanged();
         return getFirstDepthFieldBuilder().getBuilder();
       }
@@ -9481,7 +10277,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.QuoteOrBuil
        * @return Whether the optionGreeks field is set.
        */
       public boolean hasOptionGreeks() {
-        return optionGreeksBuilder_ != null || optionGreeks_ != null;
+        return ((bitField0_ & 0x00000004) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
@@ -9503,11 +10299,11 @@ public Builder setOptionGreeks(com.upstox.marketdatafeederv3udapi.rpc.proto.Mark
             throw new NullPointerException();
           }
           optionGreeks_ = value;
-          onChanged();
         } else {
           optionGreeksBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -9517,11 +10313,11 @@ public Builder setOptionGreeks(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.Builder builderForValue) {
         if (optionGreeksBuilder_ == null) {
           optionGreeks_ = builderForValue.build();
-          onChanged();
         } else {
           optionGreeksBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -9529,38 +10325,40 @@ public Builder setOptionGreeks(
        */
       public Builder mergeOptionGreeks(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks value) {
         if (optionGreeksBuilder_ == null) {
-          if (optionGreeks_ != null) {
-            optionGreeks_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.newBuilder(optionGreeks_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000004) != 0) &&
+            optionGreeks_ != null &&
+            optionGreeks_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.getDefaultInstance()) {
+            getOptionGreeksBuilder().mergeFrom(value);
           } else {
             optionGreeks_ = value;
           }
-          onChanged();
         } else {
           optionGreeksBuilder_.mergeFrom(value);
         }
-
+        if (optionGreeks_ != null) {
+          bitField0_ |= 0x00000004;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
        */
       public Builder clearOptionGreeks() {
-        if (optionGreeksBuilder_ == null) {
-          optionGreeks_ = null;
-          onChanged();
-        } else {
-          optionGreeks_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        optionGreeks_ = null;
+        if (optionGreeksBuilder_ != null) {
+          optionGreeksBuilder_.dispose();
           optionGreeksBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.Builder getOptionGreeksBuilder() {
-        
+        bitField0_ |= 0x00000004;
         onChanged();
         return getOptionGreeksFieldBuilder().getBuilder();
       }
@@ -9615,8 +10413,9 @@ public long getVtt() {
        * @return This builder for chaining.
        */
       public Builder setVtt(long value) {
-        
+
         vtt_ = value;
+        bitField0_ |= 0x00000008;
         onChanged();
         return this;
       }
@@ -9629,7 +10428,7 @@ public Builder setVtt(long value) {
        * @return This builder for chaining.
        */
       public Builder clearVtt() {
-        
+        bitField0_ = (bitField0_ & ~0x00000008);
         vtt_ = 0L;
         onChanged();
         return this;
@@ -9658,8 +10457,9 @@ public double getOi() {
        * @return This builder for chaining.
        */
       public Builder setOi(double value) {
-        
+
         oi_ = value;
+        bitField0_ |= 0x00000010;
         onChanged();
         return this;
       }
@@ -9672,7 +10472,7 @@ public Builder setOi(double value) {
        * @return This builder for chaining.
        */
       public Builder clearOi() {
-        
+        bitField0_ = (bitField0_ & ~0x00000010);
         oi_ = 0D;
         onChanged();
         return this;
@@ -9701,8 +10501,9 @@ public double getIv() {
        * @return This builder for chaining.
        */
       public Builder setIv(double value) {
-        
+
         iv_ = value;
+        bitField0_ |= 0x00000020;
         onChanged();
         return this;
       }
@@ -9715,7 +10516,7 @@ public Builder setIv(double value) {
        * @return This builder for chaining.
        */
       public Builder clearIv() {
-        
+        bitField0_ = (bitField0_ & ~0x00000020);
         iv_ = 0D;
         onChanged();
         return this;
@@ -9844,7 +10645,7 @@ public interface FeedOrBuilder extends
      */
     com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode getRequestMode();
 
-    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.FeedUnionCase getFeedUnionCase();
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.FeedUnionCase getFeedUnionCase();
   }
   /**
    * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.Feed}
@@ -9869,11 +10670,6 @@ protected java.lang.Object newInstance(
       return new Feed();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_Feed_descriptor;
@@ -9888,6 +10684,7 @@ protected java.lang.Object newInstance(
     }
 
     private int feedUnionCase_ = 0;
+    @SuppressWarnings("serial")
     private java.lang.Object feedUnion_;
     public enum FeedUnionCase
         implements com.google.protobuf.Internal.EnumLite,
@@ -10024,7 +10821,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
     }
 
     public static final int REQUESTMODE_FIELD_NUMBER = 4;
-    private int requestMode_;
+    private int requestMode_ = 0;
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.RequestMode requestMode = 4;
      * @return The enum numeric value on the wire for requestMode.
@@ -10037,8 +10834,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
      * @return The requestMode.
      */
     @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode getRequestMode() {
-      @SuppressWarnings("deprecation")
-      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.valueOf(requestMode_);
+      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.forNumber(requestMode_);
       return result == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.UNRECOGNIZED : result;
     }
 
@@ -10204,11 +11000,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -10283,6 +11081,7 @@ private Builder(
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         if (ltpcBuilder_ != null) {
           ltpcBuilder_.clear();
         }
@@ -10293,7 +11092,6 @@ public Builder clear() {
           firstLevelWithGreeksBuilder_.clear();
         }
         requestMode_ = 0;
-
         feedUnionCase_ = 0;
         feedUnion_ = null;
         return this;
@@ -10322,31 +11120,34 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed build(
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed(this);
-        if (feedUnionCase_ == 1) {
-          if (ltpcBuilder_ == null) {
-            result.feedUnion_ = feedUnion_;
-          } else {
-            result.feedUnion_ = ltpcBuilder_.build();
-          }
+        if (bitField0_ != 0) { buildPartial0(result); }
+        buildPartialOneofs(result);
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          result.requestMode_ = requestMode_;
         }
-        if (feedUnionCase_ == 2) {
-          if (fullFeedBuilder_ == null) {
-            result.feedUnion_ = feedUnion_;
-          } else {
-            result.feedUnion_ = fullFeedBuilder_.build();
-          }
+      }
+
+      private void buildPartialOneofs(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed result) {
+        result.feedUnionCase_ = feedUnionCase_;
+        result.feedUnion_ = this.feedUnion_;
+        if (feedUnionCase_ == 1 &&
+            ltpcBuilder_ != null) {
+          result.feedUnion_ = ltpcBuilder_.build();
         }
-        if (feedUnionCase_ == 3) {
-          if (firstLevelWithGreeksBuilder_ == null) {
-            result.feedUnion_ = feedUnion_;
-          } else {
-            result.feedUnion_ = firstLevelWithGreeksBuilder_.build();
-          }
+        if (feedUnionCase_ == 2 &&
+            fullFeedBuilder_ != null) {
+          result.feedUnion_ = fullFeedBuilder_.build();
+        }
+        if (feedUnionCase_ == 3 &&
+            firstLevelWithGreeksBuilder_ != null) {
+          result.feedUnion_ = firstLevelWithGreeksBuilder_.build();
         }
-        result.requestMode_ = requestMode_;
-        result.feedUnionCase_ = feedUnionCase_;
-        onBuilt();
-        return result;
       }
 
       @java.lang.Override
@@ -10462,7 +11263,7 @@ public Builder mergeFrom(
               } // case 26
               case 32: {
                 requestMode_ = input.readEnum();
-
+                bitField0_ |= 0x00000008;
                 break;
               } // case 32
               default: {
@@ -10495,6 +11296,7 @@ public Builder clearFeedUnion() {
         return this;
       }
 
+      private int bitField0_;
 
       private com.google.protobuf.SingleFieldBuilderV3<
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuilder> ltpcBuilder_;
@@ -10634,7 +11436,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
           feedUnion_ = null;
         }
         feedUnionCase_ = 1;
-        onChanged();;
+        onChanged();
         return ltpcBuilder_;
       }
 
@@ -10776,7 +11578,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeedOrB
           feedUnion_ = null;
         }
         feedUnionCase_ = 2;
-        onChanged();;
+        onChanged();
         return fullFeedBuilder_;
       }
 
@@ -10918,7 +11720,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
           feedUnion_ = null;
         }
         feedUnionCase_ = 3;
-        onChanged();;
+        onChanged();
         return firstLevelWithGreeksBuilder_;
       }
 
@@ -10936,8 +11738,8 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
        * @return This builder for chaining.
        */
       public Builder setRequestModeValue(int value) {
-        
         requestMode_ = value;
+        bitField0_ |= 0x00000008;
         onChanged();
         return this;
       }
@@ -10947,8 +11749,7 @@ public Builder setRequestModeValue(int value) {
        */
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode getRequestMode() {
-        @SuppressWarnings("deprecation")
-        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.valueOf(requestMode_);
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.forNumber(requestMode_);
         return result == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.UNRECOGNIZED : result;
       }
       /**
@@ -10960,7 +11761,7 @@ public Builder setRequestMode(com.upstox.marketdatafeederv3udapi.rpc.proto.Marke
         if (value == null) {
           throw new NullPointerException();
         }
-        
+        bitField0_ |= 0x00000008;
         requestMode_ = value.getNumber();
         onChanged();
         return this;
@@ -10970,7 +11771,7 @@ public Builder setRequestMode(com.upstox.marketdatafeederv3udapi.rpc.proto.Marke
        * @return This builder for chaining.
        */
       public Builder clearRequestMode() {
-        
+        bitField0_ = (bitField0_ & ~0x00000008);
         requestMode_ = 0;
         onChanged();
         return this;
@@ -11039,260 +11840,1101 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getDef
 
   }
 
-  public interface MarketInfoOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo)
+  public interface StatusInfoOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    int getSegmentStatusCount();
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    boolean containsSegmentStatus(
-        java.lang.String key);
-    /**
-     * Use {@link #getSegmentStatusMap()} instead.
-     */
-    @java.lang.Deprecated
-    java.util.Map
-    getSegmentStatus();
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    java.util.Map
-    getSegmentStatusMap();
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    /* nullable */
-com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
-        java.lang.String key,
-        /* nullable */
-com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus         defaultValue);
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
-        java.lang.String key);
-    /**
-     * Use {@link #getSegmentStatusValueMap()} instead.
-     */
-    @java.lang.Deprecated
-    java.util.Map
-    getSegmentStatusValue();
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * string status = 1;
+     * @return The status.
      */
-    java.util.Map
-    getSegmentStatusValueMap();
+    java.lang.String getStatus();
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * string status = 1;
+     * @return The bytes for status.
      */
+    com.google.protobuf.ByteString
+        getStatusBytes();
 
-    int getSegmentStatusValueOrDefault(
-        java.lang.String key,
-        int defaultValue);
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * int64 updatedTime = 2;
+     * @return The updatedTime.
      */
-
-    int getSegmentStatusValueOrThrow(
-        java.lang.String key);
+    long getUpdatedTime();
   }
   /**
-   * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo}
+   * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo}
    */
-  public static final class MarketInfo extends
+  public static final class StatusInfo extends
       com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo)
-      MarketInfoOrBuilder {
+      // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
+      StatusInfoOrBuilder {
   private static final long serialVersionUID = 0L;
-    // Use MarketInfo.newBuilder() to construct.
-    private MarketInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
+    // Use StatusInfo.newBuilder() to construct.
+    private StatusInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
       super(builder);
     }
-    private MarketInfo() {
+    private StatusInfo() {
+      status_ = "";
     }
 
     @java.lang.Override
     @SuppressWarnings({"unused"})
     protected java.lang.Object newInstance(
         UnusedPrivateParameter unused) {
-      return new MarketInfo();
+      return new StatusInfo();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor;
+      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor;
     }
 
-    @SuppressWarnings({"rawtypes"})
-    @java.lang.Override
-    protected com.google.protobuf.MapField internalGetMapField(
-        int number) {
-      switch (number) {
-        case 1:
-          return internalGetSegmentStatus();
-        default:
-          throw new RuntimeException(
-              "Invalid map field number: " + number);
-      }
-    }
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_fieldAccessorTable
+      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.Builder.class);
-    }
-
-    public static final int SEGMENTSTATUS_FIELD_NUMBER = 1;
-    private static final class SegmentStatusDefaultEntryHolder {
-      static final com.google.protobuf.MapEntry<
-          java.lang.String, java.lang.Integer> defaultEntry =
-              com.google.protobuf.MapEntry
-              .newDefaultInstance(
-                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_descriptor, 
-                  com.google.protobuf.WireFormat.FieldType.STRING,
-                  "",
-                  com.google.protobuf.WireFormat.FieldType.ENUM,
-                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.PRE_OPEN_START.getNumber());
-    }
-    private com.google.protobuf.MapField<
-        java.lang.String, java.lang.Integer> segmentStatus_;
-    private com.google.protobuf.MapField
-    internalGetSegmentStatus() {
-      if (segmentStatus_ == null) {
-        return com.google.protobuf.MapField.emptyMapField(
-            SegmentStatusDefaultEntryHolder.defaultEntry);
-      }
-      return segmentStatus_;
-    }
-    private static final
-    com.google.protobuf.Internal.MapAdapter.Converter<
-        java.lang.Integer, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus> segmentStatusValueConverter =
-            com.google.protobuf.Internal.MapAdapter.newEnumConverter(
-                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.internalGetValueMap(),
-                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.UNRECOGNIZED);
-    private static final java.util.Map
-    internalGetAdaptedSegmentStatusMap(
-        java.util.Map map) {
-      return new com.google.protobuf.Internal.MapAdapter<
-          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus, java.lang.Integer>(
-              map, segmentStatusValueConverter);
+              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder.class);
     }
 
-    public int getSegmentStatusCount() {
-      return internalGetSegmentStatus().getMap().size();
-    }
+    public static final int STATUS_FIELD_NUMBER = 1;
+    @SuppressWarnings("serial")
+    private volatile java.lang.Object status_ = "";
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * string status = 1;
+     * @return The status.
      */
-
     @java.lang.Override
-    public boolean containsSegmentStatus(
-        java.lang.String key) {
-      if (key == null) { throw new NullPointerException("map key"); }
-      return internalGetSegmentStatus().getMap().containsKey(key);
+    public java.lang.String getStatus() {
+      java.lang.Object ref = status_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        status_ = s;
+        return s;
+      }
     }
     /**
-     * Use {@link #getSegmentStatusMap()} instead.
+     * string status = 1;
+     * @return The bytes for status.
      */
     @java.lang.Override
-    @java.lang.Deprecated
-    public java.util.Map
-    getSegmentStatus() {
-      return getSegmentStatusMap();
+    public com.google.protobuf.ByteString
+        getStatusBytes() {
+      java.lang.Object ref = status_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        status_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
     }
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    @java.lang.Override
 
-    public java.util.Map
-    getSegmentStatusMap() {
-      return internalGetAdaptedSegmentStatusMap(
-          internalGetSegmentStatus().getMap());}
+    public static final int UPDATEDTIME_FIELD_NUMBER = 2;
+    private long updatedTime_ = 0L;
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * int64 updatedTime = 2;
+     * @return The updatedTime.
      */
     @java.lang.Override
-
-    public /* nullable */
-com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
-        java.lang.String key,
-        /* nullable */
-com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus defaultValue) {
-      if (key == null) { throw new NullPointerException("map key"); }
-      java.util.Map map =
-          internalGetSegmentStatus().getMap();
-      return map.containsKey(key)
-             ? segmentStatusValueConverter.doForward(map.get(key))
-             : defaultValue;
+    public long getUpdatedTime() {
+      return updatedTime_;
     }
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    @java.lang.Override
 
-    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(status_)) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, status_);
+      }
+      if (updatedTime_ != 0L) {
+        output.writeInt64(2, updatedTime_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(status_)) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, status_);
+      }
+      if (updatedTime_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, updatedTime_);
+      }
+      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 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo)) {
+        return super.equals(obj);
+      }
+      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo other = (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) obj;
+
+      if (!getStatus()
+          .equals(other.getStatus())) return false;
+      if (getUpdatedTime()
+          != other.getUpdatedTime()) 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();
+      hash = (37 * hash) + STATUS_FIELD_NUMBER;
+      hash = (53 * hash) + getStatus().hashCode();
+      hash = (37 * hash) + UPDATEDTIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getUpdatedTime());
+      hash = (29 * hash) + getUnknownFields().hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo 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 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo 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 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo 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(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo 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 com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder implements
+        // @@protoc_insertion_point(builder_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder.class);
+      }
+
+      // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.newBuilder()
+      private Builder() {
+
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        bitField0_ = 0;
+        status_ = "";
+        updatedTime_ = 0L;
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor;
+      }
+
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getDefaultInstanceForType() {
+        return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo build() {
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo buildPartial() {
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo(this);
+        if (bitField0_ != 0) { buildPartial0(result); }
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.status_ = status_;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.updatedTime_ = updatedTime_;
+        }
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) {
+          return mergeFrom((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo other) {
+        if (other == com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.getDefaultInstance()) return this;
+        if (!other.getStatus().isEmpty()) {
+          status_ = other.status_;
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
+        if (other.getUpdatedTime() != 0L) {
+          setUpdatedTime(other.getUpdatedTime());
+        }
+        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: {
+                status_ = input.readStringRequireUtf8();
+                bitField0_ |= 0x00000001;
+                break;
+              } // case 10
+              case 16: {
+                updatedTime_ = input.readInt64();
+                bitField0_ |= 0x00000002;
+                break;
+              } // case 16
+              default: {
+                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                  done = true; // was an endgroup tag
+                }
+                break;
+              } // default:
+            } // switch (tag)
+          } // while (!done)
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.unwrapIOException();
+        } finally {
+          onChanged();
+        } // finally
+        return this;
+      }
+      private int bitField0_;
+
+      private java.lang.Object status_ = "";
+      /**
+       * string status = 1;
+       * @return The status.
+       */
+      public java.lang.String getStatus() {
+        java.lang.Object ref = status_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          status_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * string status = 1;
+       * @return The bytes for status.
+       */
+      public com.google.protobuf.ByteString
+          getStatusBytes() {
+        java.lang.Object ref = status_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          status_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * string status = 1;
+       * @param value The status to set.
+       * @return This builder for chaining.
+       */
+      public Builder setStatus(
+          java.lang.String value) {
+        if (value == null) { throw new NullPointerException(); }
+        status_ = value;
+        bitField0_ |= 0x00000001;
+        onChanged();
+        return this;
+      }
+      /**
+       * string status = 1;
+       * @return This builder for chaining.
+       */
+      public Builder clearStatus() {
+        status_ = getDefaultInstance().getStatus();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+      /**
+       * string status = 1;
+       * @param value The bytes for status to set.
+       * @return This builder for chaining.
+       */
+      public Builder setStatusBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) { throw new NullPointerException(); }
+        checkByteStringIsUtf8(value);
+        status_ = value;
+        bitField0_ |= 0x00000001;
+        onChanged();
+        return this;
+      }
+
+      private long updatedTime_ ;
+      /**
+       * int64 updatedTime = 2;
+       * @return The updatedTime.
+       */
+      @java.lang.Override
+      public long getUpdatedTime() {
+        return updatedTime_;
+      }
+      /**
+       * int64 updatedTime = 2;
+       * @param value The updatedTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUpdatedTime(long value) {
+
+        updatedTime_ = value;
+        bitField0_ |= 0x00000002;
+        onChanged();
+        return this;
+      }
+      /**
+       * int64 updatedTime = 2;
+       * @return This builder for chaining.
+       */
+      public Builder clearUpdatedTime() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        updatedTime_ = 0L;
+        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:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
+    }
+
+    // @@protoc_insertion_point(class_scope:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
+    private static final com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo();
+    }
+
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser
+        PARSER = new com.google.protobuf.AbstractParser() {
+      @java.lang.Override
+      public StatusInfo 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 parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface MarketInfoOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    int getSegmentStatusCount();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    boolean containsSegmentStatus(
+        java.lang.String key);
+    /**
+     * Use {@link #getSegmentStatusMap()} instead.
+     */
+    @java.lang.Deprecated
+    java.util.Map
+    getSegmentStatus();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    java.util.Map
+    getSegmentStatusMap();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus         defaultValue);
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+        java.lang.String key);
+    /**
+     * Use {@link #getSegmentStatusValueMap()} instead.
+     */
+    @java.lang.Deprecated
+    java.util.Map
+    getSegmentStatusValue();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    java.util.Map
+    getSegmentStatusValueMap();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    int getSegmentStatusValueOrDefault(
+        java.lang.String key,
+        int defaultValue);
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    int getSegmentStatusValueOrThrow(
+        java.lang.String key);
+
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    int getCasMarketStatusCount();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    boolean containsCasMarketStatus(
+        java.lang.String key);
+    /**
+     * Use {@link #getCasMarketStatusMap()} instead.
+     */
+    @java.lang.Deprecated
+    java.util.Map
+    getCasMarketStatus();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    java.util.Map
+    getCasMarketStatusMap();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue);
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrThrow(
+        java.lang.String key);
+
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    int getPreOpenSessionStatusCount();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    boolean containsPreOpenSessionStatus(
+        java.lang.String key);
+    /**
+     * Use {@link #getPreOpenSessionStatusMap()} instead.
+     */
+    @java.lang.Deprecated
+    java.util.Map
+    getPreOpenSessionStatus();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    java.util.Map
+    getPreOpenSessionStatusMap();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue);
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrThrow(
+        java.lang.String key);
+  }
+  /**
+   * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo}
+   */
+  public static final class MarketInfo extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo)
+      MarketInfoOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use MarketInfo.newBuilder() to construct.
+    private MarketInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
+      super(builder);
+    }
+    private MarketInfo() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new MarketInfo();
+    }
+
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor;
+    }
+
+    @SuppressWarnings({"rawtypes"})
+    @java.lang.Override
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+        int number) {
+      switch (number) {
+        case 1:
+          return internalGetSegmentStatus();
+        case 2:
+          return internalGetCasMarketStatus();
+        case 3:
+          return internalGetPreOpenSessionStatus();
+        default:
+          throw new RuntimeException(
+              "Invalid map field number: " + number);
+      }
+    }
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.Builder.class);
+    }
+
+    public static final int SEGMENTSTATUS_FIELD_NUMBER = 1;
+    private static final class SegmentStatusDefaultEntryHolder {
+      static final com.google.protobuf.MapEntry<
+          java.lang.String, java.lang.Integer> defaultEntry =
+              com.google.protobuf.MapEntry
+              .newDefaultInstance(
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_descriptor, 
+                  com.google.protobuf.WireFormat.FieldType.STRING,
+                  "",
+                  com.google.protobuf.WireFormat.FieldType.ENUM,
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.PRE_OPEN_START.getNumber());
+    }
+    @SuppressWarnings("serial")
+    private com.google.protobuf.MapField<
+        java.lang.String, java.lang.Integer> segmentStatus_;
+    private com.google.protobuf.MapField
+    internalGetSegmentStatus() {
+      if (segmentStatus_ == null) {
+        return com.google.protobuf.MapField.emptyMapField(
+            SegmentStatusDefaultEntryHolder.defaultEntry);
+      }
+      return segmentStatus_;
+    }
+    private static final
+    com.google.protobuf.Internal.MapAdapter.Converter<
+        java.lang.Integer, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus> segmentStatusValueConverter =
+            com.google.protobuf.Internal.MapAdapter.newEnumConverter(
+                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.internalGetValueMap(),
+                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.UNRECOGNIZED);
+    private static final java.util.Map
+    internalGetAdaptedSegmentStatusMap(
+        java.util.Map map) {
+      return new com.google.protobuf.Internal.MapAdapter<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus, java.lang.Integer>(
+              map, segmentStatusValueConverter);
+    }
+    public int getSegmentStatusCount() {
+      return internalGetSegmentStatus().getMap().size();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public boolean containsSegmentStatus(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      return internalGetSegmentStatus().getMap().containsKey(key);
+    }
+    /**
+     * Use {@link #getSegmentStatusMap()} instead.
+     */
+    @java.lang.Override
+    @java.lang.Deprecated
+    public java.util.Map
+    getSegmentStatus() {
+      return getSegmentStatusMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public java.util.Map
+    getSegmentStatusMap() {
+      return internalGetAdaptedSegmentStatusMap(
+          internalGetSegmentStatus().getMap());}
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus defaultValue) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetSegmentStatus().getMap();
+      return map.containsKey(key)
+             ? segmentStatusValueConverter.doForward(map.get(key))
+             : defaultValue;
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetSegmentStatus().getMap();
+      if (!map.containsKey(key)) {
+        throw new java.lang.IllegalArgumentException();
+      }
+      return segmentStatusValueConverter.doForward(map.get(key));
+    }
+    /**
+     * Use {@link #getSegmentStatusValueMap()} instead.
+     */
+    @java.lang.Override
+    @java.lang.Deprecated
+    public java.util.Map
+    getSegmentStatusValue() {
+      return getSegmentStatusValueMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public java.util.Map
+    getSegmentStatusValueMap() {
+      return internalGetSegmentStatus().getMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public int getSegmentStatusValueOrDefault(
+        java.lang.String key,
+        int defaultValue) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetSegmentStatus().getMap();
+      return map.containsKey(key) ? map.get(key) : defaultValue;
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public int getSegmentStatusValueOrThrow(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetSegmentStatus().getMap();
+      if (!map.containsKey(key)) {
+        throw new java.lang.IllegalArgumentException();
+      }
+      return map.get(key);
+    }
+
+    public static final int CASMARKETSTATUS_FIELD_NUMBER = 2;
+    private static final class CasMarketStatusDefaultEntryHolder {
+      static final com.google.protobuf.MapEntry<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo> defaultEntry =
+              com.google.protobuf.MapEntry
+              .newDefaultInstance(
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_descriptor, 
+                  com.google.protobuf.WireFormat.FieldType.STRING,
+                  "",
+                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.getDefaultInstance());
+    }
+    @SuppressWarnings("serial")
+    private com.google.protobuf.MapField<
+        java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo> casMarketStatus_;
+    private com.google.protobuf.MapField
+    internalGetCasMarketStatus() {
+      if (casMarketStatus_ == null) {
+        return com.google.protobuf.MapField.emptyMapField(
+            CasMarketStatusDefaultEntryHolder.defaultEntry);
+      }
+      return casMarketStatus_;
+    }
+    public int getCasMarketStatusCount() {
+      return internalGetCasMarketStatus().getMap().size();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    @java.lang.Override
+    public boolean containsCasMarketStatus(
         java.lang.String key) {
       if (key == null) { throw new NullPointerException("map key"); }
-      java.util.Map map =
-          internalGetSegmentStatus().getMap();
+      return internalGetCasMarketStatus().getMap().containsKey(key);
+    }
+    /**
+     * Use {@link #getCasMarketStatusMap()} instead.
+     */
+    @java.lang.Override
+    @java.lang.Deprecated
+    public java.util.Map getCasMarketStatus() {
+      return getCasMarketStatusMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    @java.lang.Override
+    public java.util.Map getCasMarketStatusMap() {
+      return internalGetCasMarketStatus().getMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    @java.lang.Override
+    public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetCasMarketStatus().getMap();
+      return map.containsKey(key) ? map.get(key) : defaultValue;
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    @java.lang.Override
+    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrThrow(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetCasMarketStatus().getMap();
       if (!map.containsKey(key)) {
         throw new java.lang.IllegalArgumentException();
       }
-      return segmentStatusValueConverter.doForward(map.get(key));
+      return map.get(key);
+    }
+
+    public static final int PREOPENSESSIONSTATUS_FIELD_NUMBER = 3;
+    private static final class PreOpenSessionStatusDefaultEntryHolder {
+      static final com.google.protobuf.MapEntry<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo> defaultEntry =
+              com.google.protobuf.MapEntry
+              .newDefaultInstance(
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_descriptor, 
+                  com.google.protobuf.WireFormat.FieldType.STRING,
+                  "",
+                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.getDefaultInstance());
+    }
+    @SuppressWarnings("serial")
+    private com.google.protobuf.MapField<
+        java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo> preOpenSessionStatus_;
+    private com.google.protobuf.MapField
+    internalGetPreOpenSessionStatus() {
+      if (preOpenSessionStatus_ == null) {
+        return com.google.protobuf.MapField.emptyMapField(
+            PreOpenSessionStatusDefaultEntryHolder.defaultEntry);
+      }
+      return preOpenSessionStatus_;
+    }
+    public int getPreOpenSessionStatusCount() {
+      return internalGetPreOpenSessionStatus().getMap().size();
     }
     /**
-     * Use {@link #getSegmentStatusValueMap()} instead.
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    @java.lang.Override
+    public boolean containsPreOpenSessionStatus(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      return internalGetPreOpenSessionStatus().getMap().containsKey(key);
+    }
+    /**
+     * Use {@link #getPreOpenSessionStatusMap()} instead.
      */
     @java.lang.Override
     @java.lang.Deprecated
-    public java.util.Map
-    getSegmentStatusValue() {
-      return getSegmentStatusValueMap();
+    public java.util.Map getPreOpenSessionStatus() {
+      return getPreOpenSessionStatusMap();
     }
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
      */
     @java.lang.Override
-
-    public java.util.Map
-    getSegmentStatusValueMap() {
-      return internalGetSegmentStatus().getMap();
+    public java.util.Map getPreOpenSessionStatusMap() {
+      return internalGetPreOpenSessionStatus().getMap();
     }
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
      */
     @java.lang.Override
-
-    public int getSegmentStatusValueOrDefault(
+    public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrDefault(
         java.lang.String key,
-        int defaultValue) {
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue) {
       if (key == null) { throw new NullPointerException("map key"); }
-      java.util.Map map =
-          internalGetSegmentStatus().getMap();
+      java.util.Map map =
+          internalGetPreOpenSessionStatus().getMap();
       return map.containsKey(key) ? map.get(key) : defaultValue;
     }
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
      */
     @java.lang.Override
-
-    public int getSegmentStatusValueOrThrow(
+    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrThrow(
         java.lang.String key) {
       if (key == null) { throw new NullPointerException("map key"); }
-      java.util.Map map =
-          internalGetSegmentStatus().getMap();
+      java.util.Map map =
+          internalGetPreOpenSessionStatus().getMap();
       if (!map.containsKey(key)) {
         throw new java.lang.IllegalArgumentException();
       }
@@ -11319,6 +12961,18 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
           internalGetSegmentStatus(),
           SegmentStatusDefaultEntryHolder.defaultEntry,
           1);
+      com.google.protobuf.GeneratedMessageV3
+        .serializeStringMapTo(
+          output,
+          internalGetCasMarketStatus(),
+          CasMarketStatusDefaultEntryHolder.defaultEntry,
+          2);
+      com.google.protobuf.GeneratedMessageV3
+        .serializeStringMapTo(
+          output,
+          internalGetPreOpenSessionStatus(),
+          PreOpenSessionStatusDefaultEntryHolder.defaultEntry,
+          3);
       getUnknownFields().writeTo(output);
     }
 
@@ -11338,6 +12992,26 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, segmentStatus__);
       }
+      for (java.util.Map.Entry entry
+           : internalGetCasMarketStatus().getMap().entrySet()) {
+        com.google.protobuf.MapEntry
+        casMarketStatus__ = CasMarketStatusDefaultEntryHolder.defaultEntry.newBuilderForType()
+            .setKey(entry.getKey())
+            .setValue(entry.getValue())
+            .build();
+        size += com.google.protobuf.CodedOutputStream
+            .computeMessageSize(2, casMarketStatus__);
+      }
+      for (java.util.Map.Entry entry
+           : internalGetPreOpenSessionStatus().getMap().entrySet()) {
+        com.google.protobuf.MapEntry
+        preOpenSessionStatus__ = PreOpenSessionStatusDefaultEntryHolder.defaultEntry.newBuilderForType()
+            .setKey(entry.getKey())
+            .setValue(entry.getValue())
+            .build();
+        size += com.google.protobuf.CodedOutputStream
+            .computeMessageSize(3, preOpenSessionStatus__);
+      }
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -11355,6 +13029,10 @@ public boolean equals(final java.lang.Object obj) {
 
       if (!internalGetSegmentStatus().equals(
           other.internalGetSegmentStatus())) return false;
+      if (!internalGetCasMarketStatus().equals(
+          other.internalGetCasMarketStatus())) return false;
+      if (!internalGetPreOpenSessionStatus().equals(
+          other.internalGetPreOpenSessionStatus())) return false;
       if (!getUnknownFields().equals(other.getUnknownFields())) return false;
       return true;
     }
@@ -11370,6 +13048,14 @@ public int hashCode() {
         hash = (37 * hash) + SEGMENTSTATUS_FIELD_NUMBER;
         hash = (53 * hash) + internalGetSegmentStatus().hashCode();
       }
+      if (!internalGetCasMarketStatus().getMap().isEmpty()) {
+        hash = (37 * hash) + CASMARKETSTATUS_FIELD_NUMBER;
+        hash = (53 * hash) + internalGetCasMarketStatus().hashCode();
+      }
+      if (!internalGetPreOpenSessionStatus().getMap().isEmpty()) {
+        hash = (37 * hash) + PREOPENSESSIONSTATUS_FIELD_NUMBER;
+        hash = (53 * hash) + internalGetPreOpenSessionStatus().hashCode();
+      }
       hash = (29 * hash) + getUnknownFields().hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -11419,11 +13105,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Mark
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -11478,22 +13166,30 @@ public static final class Builder extends
       }
 
       @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMapField(
+      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
           int number) {
         switch (number) {
           case 1:
             return internalGetSegmentStatus();
+          case 2:
+            return internalGetCasMarketStatus();
+          case 3:
+            return internalGetPreOpenSessionStatus();
           default:
             throw new RuntimeException(
                 "Invalid map field number: " + number);
         }
       }
       @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMutableMapField(
+      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
           int number) {
         switch (number) {
           case 1:
             return internalGetMutableSegmentStatus();
+          case 2:
+            return internalGetMutableCasMarketStatus();
+          case 3:
+            return internalGetMutablePreOpenSessionStatus();
           default:
             throw new RuntimeException(
                 "Invalid map field number: " + number);
@@ -11520,7 +13216,10 @@ private Builder(
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         internalGetMutableSegmentStatus().clear();
+        internalGetMutableCasMarketStatus().clear();
+        internalGetMutablePreOpenSessionStatus().clear();
         return this;
       }
 
@@ -11547,13 +13246,25 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo(this);
-        int from_bitField0_ = bitField0_;
-        result.segmentStatus_ = internalGetSegmentStatus();
-        result.segmentStatus_.makeImmutable();
+        if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.segmentStatus_ = internalGetSegmentStatus();
+          result.segmentStatus_.makeImmutable();
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.casMarketStatus_ = internalGetCasMarketStatus().build(CasMarketStatusDefaultEntryHolder.defaultEntry);
+        }
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.preOpenSessionStatus_ = internalGetPreOpenSessionStatus().build(PreOpenSessionStatusDefaultEntryHolder.defaultEntry);
+        }
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -11600,6 +13311,13 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData
         if (other == com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.getDefaultInstance()) return this;
         internalGetMutableSegmentStatus().mergeFrom(
             other.internalGetSegmentStatus());
+        bitField0_ |= 0x00000001;
+        internalGetMutableCasMarketStatus().mergeFrom(
+            other.internalGetCasMarketStatus());
+        bitField0_ |= 0x00000002;
+        internalGetMutablePreOpenSessionStatus().mergeFrom(
+            other.internalGetPreOpenSessionStatus());
+        bitField0_ |= 0x00000004;
         this.mergeUnknownFields(other.getUnknownFields());
         onChanged();
         return this;
@@ -11632,8 +13350,27 @@ public Builder mergeFrom(
                     SegmentStatusDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                 internalGetMutableSegmentStatus().getMutableMap().put(
                     segmentStatus__.getKey(), segmentStatus__.getValue());
+                bitField0_ |= 0x00000001;
                 break;
               } // case 10
+              case 18: {
+                com.google.protobuf.MapEntry
+                casMarketStatus__ = input.readMessage(
+                    CasMarketStatusDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
+                internalGetMutableCasMarketStatus().ensureBuilderMap().put(
+                    casMarketStatus__.getKey(), casMarketStatus__.getValue());
+                bitField0_ |= 0x00000002;
+                break;
+              } // case 18
+              case 26: {
+                com.google.protobuf.MapEntry
+                preOpenSessionStatus__ = input.readMessage(
+                    PreOpenSessionStatusDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
+                internalGetMutablePreOpenSessionStatus().ensureBuilderMap().put(
+                    preOpenSessionStatus__.getKey(), preOpenSessionStatus__.getValue());
+                bitField0_ |= 0x00000004;
+                break;
+              } // case 26
               default: {
                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                   done = true; // was an endgroup tag
@@ -11654,7 +13391,7 @@ public Builder mergeFrom(
       private com.google.protobuf.MapField<
           java.lang.String, java.lang.Integer> segmentStatus_;
       private com.google.protobuf.MapField
-      internalGetSegmentStatus() {
+          internalGetSegmentStatus() {
         if (segmentStatus_ == null) {
           return com.google.protobuf.MapField.emptyMapField(
               SegmentStatusDefaultEntryHolder.defaultEntry);
@@ -11662,8 +13399,7 @@ public Builder mergeFrom(
         return segmentStatus_;
       }
       private com.google.protobuf.MapField
-      internalGetMutableSegmentStatus() {
-        onChanged();;
+          internalGetMutableSegmentStatus() {
         if (segmentStatus_ == null) {
           segmentStatus_ = com.google.protobuf.MapField.newMapField(
               SegmentStatusDefaultEntryHolder.defaultEntry);
@@ -11671,16 +13407,16 @@ public Builder mergeFrom(
         if (!segmentStatus_.isMutable()) {
           segmentStatus_ = segmentStatus_.copy();
         }
+        bitField0_ |= 0x00000001;
+        onChanged();
         return segmentStatus_;
       }
-
       public int getSegmentStatusCount() {
         return internalGetSegmentStatus().getMap().size();
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
        */
-
       @java.lang.Override
       public boolean containsSegmentStatus(
           java.lang.String key) {
@@ -11700,7 +13436,6 @@ public boolean containsSegmentStatus(
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
        */
       @java.lang.Override
-
       public java.util.Map
       getSegmentStatusMap() {
         return internalGetAdaptedSegmentStatusMap(
@@ -11709,7 +13444,6 @@ public boolean containsSegmentStatus(
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
        */
       @java.lang.Override
-
       public /* nullable */
 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
           java.lang.String key,
@@ -11723,80 +13457,242 @@ com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSe
                : defaultValue;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map =
+            internalGetSegmentStatus().getMap();
+        if (!map.containsKey(key)) {
+          throw new java.lang.IllegalArgumentException();
+        }
+        return segmentStatusValueConverter.doForward(map.get(key));
+      }
+      /**
+       * Use {@link #getSegmentStatusValueMap()} instead.
+       */
+      @java.lang.Override
+      @java.lang.Deprecated
+      public java.util.Map
+      getSegmentStatusValue() {
+        return getSegmentStatusValueMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      @java.lang.Override
+      public java.util.Map
+      getSegmentStatusValueMap() {
+        return internalGetSegmentStatus().getMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      @java.lang.Override
+      public int getSegmentStatusValueOrDefault(
+          java.lang.String key,
+          int defaultValue) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map =
+            internalGetSegmentStatus().getMap();
+        return map.containsKey(key) ? map.get(key) : defaultValue;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      @java.lang.Override
+      public int getSegmentStatusValueOrThrow(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map =
+            internalGetSegmentStatus().getMap();
+        if (!map.containsKey(key)) {
+          throw new java.lang.IllegalArgumentException();
+        }
+        return map.get(key);
+      }
+      public Builder clearSegmentStatus() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        internalGetMutableSegmentStatus().getMutableMap()
+            .clear();
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder removeSegmentStatus(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        internalGetMutableSegmentStatus().getMutableMap()
+            .remove(key);
+        return this;
+      }
+      /**
+       * Use alternate mutation accessors instead.
+       */
+      @java.lang.Deprecated
+      public java.util.Map
+          getMutableSegmentStatus() {
+        bitField0_ |= 0x00000001;
+        return internalGetAdaptedSegmentStatusMap(
+             internalGetMutableSegmentStatus().getMutableMap());
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder putSegmentStatus(
+          java.lang.String key,
+          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus value) {
+        if (key == null) { throw new NullPointerException("map key"); }
+
+        internalGetMutableSegmentStatus().getMutableMap()
+            .put(key, segmentStatusValueConverter.doBackward(value));
+        bitField0_ |= 0x00000001;
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder putAllSegmentStatus(
+          java.util.Map values) {
+        internalGetAdaptedSegmentStatusMap(
+            internalGetMutableSegmentStatus().getMutableMap())
+                .putAll(values);
+        bitField0_ |= 0x00000001;
+        return this;
+      }
+      /**
+       * Use alternate mutation accessors instead.
+       */
+      @java.lang.Deprecated
+      public java.util.Map
+      getMutableSegmentStatusValue() {
+        bitField0_ |= 0x00000001;
+        return internalGetMutableSegmentStatus().getMutableMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder putSegmentStatusValue(
+          java.lang.String key,
+          int value) {
+        if (key == null) { throw new NullPointerException("map key"); }
+
+        internalGetMutableSegmentStatus().getMutableMap()
+            .put(key, value);
+        bitField0_ |= 0x00000001;
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder putAllSegmentStatusValue(
+          java.util.Map values) {
+        internalGetMutableSegmentStatus().getMutableMap()
+            .putAll(values);
+        bitField0_ |= 0x00000001;
+        return this;
+      }
+
+      private static final class CasMarketStatusConverter implements com.google.protobuf.MapFieldBuilder.Converter {
+        @java.lang.Override
+        public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo build(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder val) {
+          if (val instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) { return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) val; }
+          return ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder) val).build();
+        }
+
+        @java.lang.Override
+        public com.google.protobuf.MapEntry defaultEntry() {
+          return CasMarketStatusDefaultEntryHolder.defaultEntry;
+        }
+      };
+      private static final CasMarketStatusConverter casMarketStatusConverter = new CasMarketStatusConverter();
+
+      private com.google.protobuf.MapFieldBuilder<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder> casMarketStatus_;
+      private com.google.protobuf.MapFieldBuilder
+          internalGetCasMarketStatus() {
+        if (casMarketStatus_ == null) {
+          return new com.google.protobuf.MapFieldBuilder<>(casMarketStatusConverter);
+        }
+        return casMarketStatus_;
+      }
+      private com.google.protobuf.MapFieldBuilder
+          internalGetMutableCasMarketStatus() {
+        if (casMarketStatus_ == null) {
+          casMarketStatus_ = new com.google.protobuf.MapFieldBuilder<>(casMarketStatusConverter);
+        }
+        bitField0_ |= 0x00000002;
+        onChanged();
+        return casMarketStatus_;
+      }
+      public int getCasMarketStatusCount() {
+        return internalGetCasMarketStatus().ensureBuilderMap().size();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
       @java.lang.Override
-
-      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+      public boolean containsCasMarketStatus(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetSegmentStatus().getMap();
-        if (!map.containsKey(key)) {
-          throw new java.lang.IllegalArgumentException();
-        }
-        return segmentStatusValueConverter.doForward(map.get(key));
+        return internalGetCasMarketStatus().ensureBuilderMap().containsKey(key);
       }
       /**
-       * Use {@link #getSegmentStatusValueMap()} instead.
+       * Use {@link #getCasMarketStatusMap()} instead.
        */
       @java.lang.Override
       @java.lang.Deprecated
-      public java.util.Map
-      getSegmentStatusValue() {
-        return getSegmentStatusValueMap();
+      public java.util.Map getCasMarketStatus() {
+        return getCasMarketStatusMap();
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
       @java.lang.Override
-
-      public java.util.Map
-      getSegmentStatusValueMap() {
-        return internalGetSegmentStatus().getMap();
+      public java.util.Map getCasMarketStatusMap() {
+        return internalGetCasMarketStatus().getImmutableMap();
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
       @java.lang.Override
-
-      public int getSegmentStatusValueOrDefault(
+      public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrDefault(
           java.lang.String key,
-          int defaultValue) {
+          /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetSegmentStatus().getMap();
-        return map.containsKey(key) ? map.get(key) : defaultValue;
+        java.util.Map map = internalGetMutableCasMarketStatus().ensureBuilderMap();
+        return map.containsKey(key) ? casMarketStatusConverter.build(map.get(key)) : defaultValue;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
       @java.lang.Override
-
-      public int getSegmentStatusValueOrThrow(
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrThrow(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetSegmentStatus().getMap();
+        java.util.Map map = internalGetMutableCasMarketStatus().ensureBuilderMap();
         if (!map.containsKey(key)) {
           throw new java.lang.IllegalArgumentException();
         }
-        return map.get(key);
+        return casMarketStatusConverter.build(map.get(key));
       }
-
-      public Builder clearSegmentStatus() {
-        internalGetMutableSegmentStatus().getMutableMap()
-            .clear();
+      public Builder clearCasMarketStatus() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        internalGetMutableCasMarketStatus().clear();
         return this;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
-
-      public Builder removeSegmentStatus(
+      public Builder removeCasMarketStatus(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        internalGetMutableSegmentStatus().getMutableMap()
+        internalGetMutableCasMarketStatus().ensureBuilderMap()
             .remove(key);
         return this;
       }
@@ -11804,62 +13700,211 @@ public Builder removeSegmentStatus(
        * Use alternate mutation accessors instead.
        */
       @java.lang.Deprecated
-      public java.util.Map
-      getMutableSegmentStatus() {
-        return internalGetAdaptedSegmentStatusMap(
-             internalGetMutableSegmentStatus().getMutableMap());
+      public java.util.Map
+          getMutableCasMarketStatus() {
+        bitField0_ |= 0x00000002;
+        return internalGetMutableCasMarketStatus().ensureMessageMap();
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
-      public Builder putSegmentStatus(
+      public Builder putCasMarketStatus(
           java.lang.String key,
-          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus value) {
+          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo value) {
         if (key == null) { throw new NullPointerException("map key"); }
-        
-        internalGetMutableSegmentStatus().getMutableMap()
-            .put(key, segmentStatusValueConverter.doBackward(value));
+        if (value == null) { throw new NullPointerException("map value"); }
+        internalGetMutableCasMarketStatus().ensureBuilderMap()
+            .put(key, value);
+        bitField0_ |= 0x00000002;
         return this;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
-      public Builder putAllSegmentStatus(
-          java.util.Map values) {
-        internalGetAdaptedSegmentStatusMap(
-            internalGetMutableSegmentStatus().getMutableMap())
-                .putAll(values);
+      public Builder putAllCasMarketStatus(
+          java.util.Map values) {
+        for (java.util.Map.Entry e : values.entrySet()) {
+          if (e.getKey() == null || e.getValue() == null) {
+            throw new NullPointerException();
+          }
+        }
+        internalGetMutableCasMarketStatus().ensureBuilderMap()
+            .putAll(values);
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+       */
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder putCasMarketStatusBuilderIfAbsent(
+          java.lang.String key) {
+        java.util.Map builderMap = internalGetMutableCasMarketStatus().ensureBuilderMap();
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder entry = builderMap.get(key);
+        if (entry == null) {
+          entry = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.newBuilder();
+          builderMap.put(key, entry);
+        }
+        if (entry instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) {
+          entry = ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) entry).toBuilder();
+          builderMap.put(key, entry);
+        }
+        return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder) entry;
+      }
+
+      private static final class PreOpenSessionStatusConverter implements com.google.protobuf.MapFieldBuilder.Converter {
+        @java.lang.Override
+        public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo build(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder val) {
+          if (val instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) { return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) val; }
+          return ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder) val).build();
+        }
+
+        @java.lang.Override
+        public com.google.protobuf.MapEntry defaultEntry() {
+          return PreOpenSessionStatusDefaultEntryHolder.defaultEntry;
+        }
+      };
+      private static final PreOpenSessionStatusConverter preOpenSessionStatusConverter = new PreOpenSessionStatusConverter();
+
+      private com.google.protobuf.MapFieldBuilder<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder> preOpenSessionStatus_;
+      private com.google.protobuf.MapFieldBuilder
+          internalGetPreOpenSessionStatus() {
+        if (preOpenSessionStatus_ == null) {
+          return new com.google.protobuf.MapFieldBuilder<>(preOpenSessionStatusConverter);
+        }
+        return preOpenSessionStatus_;
+      }
+      private com.google.protobuf.MapFieldBuilder
+          internalGetMutablePreOpenSessionStatus() {
+        if (preOpenSessionStatus_ == null) {
+          preOpenSessionStatus_ = new com.google.protobuf.MapFieldBuilder<>(preOpenSessionStatusConverter);
+        }
+        bitField0_ |= 0x00000004;
+        onChanged();
+        return preOpenSessionStatus_;
+      }
+      public int getPreOpenSessionStatusCount() {
+        return internalGetPreOpenSessionStatus().ensureBuilderMap().size();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      @java.lang.Override
+      public boolean containsPreOpenSessionStatus(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        return internalGetPreOpenSessionStatus().ensureBuilderMap().containsKey(key);
+      }
+      /**
+       * Use {@link #getPreOpenSessionStatusMap()} instead.
+       */
+      @java.lang.Override
+      @java.lang.Deprecated
+      public java.util.Map getPreOpenSessionStatus() {
+        return getPreOpenSessionStatusMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      @java.lang.Override
+      public java.util.Map getPreOpenSessionStatusMap() {
+        return internalGetPreOpenSessionStatus().getImmutableMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      @java.lang.Override
+      public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrDefault(
+          java.lang.String key,
+          /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map = internalGetMutablePreOpenSessionStatus().ensureBuilderMap();
+        return map.containsKey(key) ? preOpenSessionStatusConverter.build(map.get(key)) : defaultValue;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrThrow(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map = internalGetMutablePreOpenSessionStatus().ensureBuilderMap();
+        if (!map.containsKey(key)) {
+          throw new java.lang.IllegalArgumentException();
+        }
+        return preOpenSessionStatusConverter.build(map.get(key));
+      }
+      public Builder clearPreOpenSessionStatus() {
+        bitField0_ = (bitField0_ & ~0x00000004);
+        internalGetMutablePreOpenSessionStatus().clear();
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      public Builder removePreOpenSessionStatus(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        internalGetMutablePreOpenSessionStatus().ensureBuilderMap()
+            .remove(key);
         return this;
       }
       /**
        * Use alternate mutation accessors instead.
        */
       @java.lang.Deprecated
-      public java.util.Map
-      getMutableSegmentStatusValue() {
-        return internalGetMutableSegmentStatus().getMutableMap();
+      public java.util.Map
+          getMutablePreOpenSessionStatus() {
+        bitField0_ |= 0x00000004;
+        return internalGetMutablePreOpenSessionStatus().ensureMessageMap();
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
        */
-      public Builder putSegmentStatusValue(
+      public Builder putPreOpenSessionStatus(
           java.lang.String key,
-          int value) {
+          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo value) {
         if (key == null) { throw new NullPointerException("map key"); }
-        
-        internalGetMutableSegmentStatus().getMutableMap()
+        if (value == null) { throw new NullPointerException("map value"); }
+        internalGetMutablePreOpenSessionStatus().ensureBuilderMap()
             .put(key, value);
+        bitField0_ |= 0x00000004;
         return this;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
        */
-      public Builder putAllSegmentStatusValue(
-          java.util.Map values) {
-        internalGetMutableSegmentStatus().getMutableMap()
+      public Builder putAllPreOpenSessionStatus(
+          java.util.Map values) {
+        for (java.util.Map.Entry e : values.entrySet()) {
+          if (e.getKey() == null || e.getValue() == null) {
+            throw new NullPointerException();
+          }
+        }
+        internalGetMutablePreOpenSessionStatus().ensureBuilderMap()
             .putAll(values);
+        bitField0_ |= 0x00000004;
         return this;
       }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder putPreOpenSessionStatusBuilderIfAbsent(
+          java.lang.String key) {
+        java.util.Map builderMap = internalGetMutablePreOpenSessionStatus().ensureBuilderMap();
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder entry = builderMap.get(key);
+        if (entry == null) {
+          entry = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.newBuilder();
+          builderMap.put(key, entry);
+        }
+        if (entry instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) {
+          entry = ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) entry).toBuilder();
+          builderMap.put(key, entry);
+        }
+        return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder) entry;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -11962,7 +14007,6 @@ boolean containsFeeds(
     /**
      * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
-
     /* nullable */
 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
         java.lang.String key,
@@ -11971,7 +14015,6 @@ com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDef
     /**
      * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
-
     com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrThrow(
         java.lang.String key);
 
@@ -12019,11 +14062,6 @@ protected java.lang.Object newInstance(
       return new FeedResponse();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_descriptor;
@@ -12031,7 +14069,7 @@ protected java.lang.Object newInstance(
 
     @SuppressWarnings({"rawtypes"})
     @java.lang.Override
-    protected com.google.protobuf.MapField internalGetMapField(
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
         int number) {
       switch (number) {
         case 2:
@@ -12049,8 +14087,9 @@ protected com.google.protobuf.MapField internalGetMapField(
               com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse.Builder.class);
     }
 
+    private int bitField0_;
     public static final int TYPE_FIELD_NUMBER = 1;
-    private int type_;
+    private int type_ = 0;
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.Type type = 1;
      * @return The enum numeric value on the wire for type.
@@ -12063,8 +14102,7 @@ protected com.google.protobuf.MapField internalGetMapField(
      * @return The type.
      */
     @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type getType() {
-      @SuppressWarnings("deprecation")
-      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.valueOf(type_);
+      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.forNumber(type_);
       return result == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.UNRECOGNIZED : result;
     }
 
@@ -12080,6 +14118,7 @@ private static final class FeedsDefaultEntryHolder {
                   com.google.protobuf.WireFormat.FieldType.MESSAGE,
                   com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.getDefaultInstance());
     }
+    @SuppressWarnings("serial")
     private com.google.protobuf.MapField<
         java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed> feeds_;
     private com.google.protobuf.MapField
@@ -12090,14 +14129,12 @@ private static final class FeedsDefaultEntryHolder {
       }
       return feeds_;
     }
-
     public int getFeedsCount() {
       return internalGetFeeds().getMap().size();
     }
     /**
      * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
-
     @java.lang.Override
     public boolean containsFeeds(
         java.lang.String key) {
@@ -12116,7 +14153,6 @@ public java.util.Mapmap<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
     @java.lang.Override
-
     public java.util.Map getFeedsMap() {
       return internalGetFeeds().getMap();
     }
@@ -12124,10 +14160,11 @@ public java.util.Mapmap<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
     @java.lang.Override
-
-    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
+    public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
         java.lang.String key,
-        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed defaultValue) {
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed defaultValue) {
       if (key == null) { throw new NullPointerException("map key"); }
       java.util.Map map =
           internalGetFeeds().getMap();
@@ -12137,7 +14174,6 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFee
      * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
     @java.lang.Override
-
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrThrow(
         java.lang.String key) {
       if (key == null) { throw new NullPointerException("map key"); }
@@ -12150,7 +14186,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFee
     }
 
     public static final int CURRENTTS_FIELD_NUMBER = 3;
-    private long currentTs_;
+    private long currentTs_ = 0L;
     /**
      * int64 currentTs = 3;
      * @return The currentTs.
@@ -12168,7 +14204,7 @@ public long getCurrentTs() {
      */
     @java.lang.Override
     public boolean hasMarketInfo() {
-      return marketInfo_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo marketInfo = 4;
@@ -12183,7 +14219,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfoOrBuilder getMarketInfoOrBuilder() {
-      return getMarketInfo();
+      return marketInfo_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.getDefaultInstance() : marketInfo_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -12212,7 +14248,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (currentTs_ != 0L) {
         output.writeInt64(3, currentTs_);
       }
-      if (marketInfo_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(4, getMarketInfo());
       }
       getUnknownFields().writeTo(output);
@@ -12242,7 +14278,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeInt64Size(3, currentTs_);
       }
-      if (marketInfo_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, getMarketInfo());
       }
@@ -12344,11 +14380,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -12403,7 +14441,7 @@ public static final class Builder extends
       }
 
       @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMapField(
+      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
           int number) {
         switch (number) {
           case 2:
@@ -12414,7 +14452,7 @@ protected com.google.protobuf.MapField internalGetMapField(
         }
       }
       @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMutableMapField(
+      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
           int number) {
         switch (number) {
           case 2:
@@ -12434,26 +14472,30 @@ protected com.google.protobuf.MapField internalGetMutableMapField(
 
       // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getMarketInfoFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         type_ = 0;
-
         internalGetMutableFeeds().clear();
         currentTs_ = 0L;
-
-        if (marketInfoBuilder_ == null) {
-          marketInfo_ = null;
-        } else {
-          marketInfo_ = null;
+        marketInfo_ = null;
+        if (marketInfoBuilder_ != null) {
+          marketInfoBuilder_.dispose();
           marketInfoBuilder_ = null;
         }
         return this;
@@ -12482,20 +14524,32 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse(this);
-        int from_bitField0_ = bitField0_;
-        result.type_ = type_;
-        result.feeds_ = internalGetFeeds();
-        result.feeds_.makeImmutable();
-        result.currentTs_ = currentTs_;
-        if (marketInfoBuilder_ == null) {
-          result.marketInfo_ = marketInfo_;
-        } else {
-          result.marketInfo_ = marketInfoBuilder_.build();
-        }
+        if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.type_ = type_;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.feeds_ = internalGetFeeds().build(FeedsDefaultEntryHolder.defaultEntry);
+        }
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.currentTs_ = currentTs_;
+        }
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          result.marketInfo_ = marketInfoBuilder_ == null
+              ? marketInfo_
+              : marketInfoBuilder_.build();
+          to_bitField0_ |= 0x00000001;
+        }
+        result.bitField0_ |= to_bitField0_;
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -12545,6 +14599,7 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData
         }
         internalGetMutableFeeds().mergeFrom(
             other.internalGetFeeds());
+        bitField0_ |= 0x00000002;
         if (other.getCurrentTs() != 0L) {
           setCurrentTs(other.getCurrentTs());
         }
@@ -12579,27 +14634,28 @@ public Builder mergeFrom(
                 break;
               case 8: {
                 type_ = input.readEnum();
-
+                bitField0_ |= 0x00000001;
                 break;
               } // case 8
               case 18: {
                 com.google.protobuf.MapEntry
                 feeds__ = input.readMessage(
                     FeedsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
-                internalGetMutableFeeds().getMutableMap().put(
+                internalGetMutableFeeds().ensureBuilderMap().put(
                     feeds__.getKey(), feeds__.getValue());
+                bitField0_ |= 0x00000002;
                 break;
               } // case 18
               case 24: {
                 currentTs_ = input.readInt64();
-
+                bitField0_ |= 0x00000004;
                 break;
               } // case 24
               case 34: {
                 input.readMessage(
                     getMarketInfoFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000008;
                 break;
               } // case 34
               default: {
@@ -12633,8 +14689,8 @@ public Builder mergeFrom(
        * @return This builder for chaining.
        */
       public Builder setTypeValue(int value) {
-        
         type_ = value;
+        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -12644,8 +14700,7 @@ public Builder setTypeValue(int value) {
        */
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type getType() {
-        @SuppressWarnings("deprecation")
-        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.valueOf(type_);
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.forNumber(type_);
         return result == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.UNRECOGNIZED : result;
       }
       /**
@@ -12657,7 +14712,7 @@ public Builder setType(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
         if (value == null) {
           throw new NullPointerException();
         }
-        
+        bitField0_ |= 0x00000001;
         type_ = value.getNumber();
         onChanged();
         return this;
@@ -12667,47 +14722,55 @@ public Builder setType(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
        * @return This builder for chaining.
        */
       public Builder clearType() {
-        
+        bitField0_ = (bitField0_ & ~0x00000001);
         type_ = 0;
         onChanged();
         return this;
       }
 
-      private com.google.protobuf.MapField<
-          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed> feeds_;
-      private com.google.protobuf.MapField
-      internalGetFeeds() {
+      private static final class FeedsConverter implements com.google.protobuf.MapFieldBuilder.Converter {
+        @java.lang.Override
+        public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed build(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedOrBuilder val) {
+          if (val instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed) { return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed) val; }
+          return ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.Builder) val).build();
+        }
+
+        @java.lang.Override
+        public com.google.protobuf.MapEntry defaultEntry() {
+          return FeedsDefaultEntryHolder.defaultEntry;
+        }
+      };
+      private static final FeedsConverter feedsConverter = new FeedsConverter();
+
+      private com.google.protobuf.MapFieldBuilder<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedOrBuilder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.Builder> feeds_;
+      private com.google.protobuf.MapFieldBuilder
+          internalGetFeeds() {
         if (feeds_ == null) {
-          return com.google.protobuf.MapField.emptyMapField(
-              FeedsDefaultEntryHolder.defaultEntry);
+          return new com.google.protobuf.MapFieldBuilder<>(feedsConverter);
         }
         return feeds_;
       }
-      private com.google.protobuf.MapField
-      internalGetMutableFeeds() {
-        onChanged();;
+      private com.google.protobuf.MapFieldBuilder
+          internalGetMutableFeeds() {
         if (feeds_ == null) {
-          feeds_ = com.google.protobuf.MapField.newMapField(
-              FeedsDefaultEntryHolder.defaultEntry);
-        }
-        if (!feeds_.isMutable()) {
-          feeds_ = feeds_.copy();
+          feeds_ = new com.google.protobuf.MapFieldBuilder<>(feedsConverter);
         }
+        bitField0_ |= 0x00000002;
+        onChanged();
         return feeds_;
       }
-
       public int getFeedsCount() {
-        return internalGetFeeds().getMap().size();
+        return internalGetFeeds().ensureBuilderMap().size();
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
-
       @java.lang.Override
       public boolean containsFeeds(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        return internalGetFeeds().getMap().containsKey(key);
+        return internalGetFeeds().ensureBuilderMap().containsKey(key);
       }
       /**
        * Use {@link #getFeedsMap()} instead.
@@ -12721,52 +14784,47 @@ public java.util.Mapmap<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
       @java.lang.Override
-
       public java.util.Map getFeedsMap() {
-        return internalGetFeeds().getMap();
+        return internalGetFeeds().getImmutableMap();
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
       @java.lang.Override
-
-      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
+      public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
           java.lang.String key,
-          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed defaultValue) {
+          /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed defaultValue) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetFeeds().getMap();
-        return map.containsKey(key) ? map.get(key) : defaultValue;
+        java.util.Map map = internalGetMutableFeeds().ensureBuilderMap();
+        return map.containsKey(key) ? feedsConverter.build(map.get(key)) : defaultValue;
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
       @java.lang.Override
-
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrThrow(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetFeeds().getMap();
+        java.util.Map map = internalGetMutableFeeds().ensureBuilderMap();
         if (!map.containsKey(key)) {
           throw new java.lang.IllegalArgumentException();
         }
-        return map.get(key);
+        return feedsConverter.build(map.get(key));
       }
-
       public Builder clearFeeds() {
-        internalGetMutableFeeds().getMutableMap()
-            .clear();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        internalGetMutableFeeds().clear();
         return this;
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
-
       public Builder removeFeeds(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        internalGetMutableFeeds().getMutableMap()
+        internalGetMutableFeeds().ensureBuilderMap()
             .remove(key);
         return this;
       }
@@ -12775,8 +14833,9 @@ public Builder removeFeeds(
        */
       @java.lang.Deprecated
       public java.util.Map
-      getMutableFeeds() {
-        return internalGetMutableFeeds().getMutableMap();
+          getMutableFeeds() {
+        bitField0_ |= 0x00000002;
+        return internalGetMutableFeeds().ensureMessageMap();
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
@@ -12785,24 +14844,44 @@ public Builder putFeeds(
           java.lang.String key,
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed value) {
         if (key == null) { throw new NullPointerException("map key"); }
-        if (value == null) {
-  throw new NullPointerException("map value");
-}
-
-        internalGetMutableFeeds().getMutableMap()
+        if (value == null) { throw new NullPointerException("map value"); }
+        internalGetMutableFeeds().ensureBuilderMap()
             .put(key, value);
+        bitField0_ |= 0x00000002;
         return this;
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
-
       public Builder putAllFeeds(
           java.util.Map values) {
-        internalGetMutableFeeds().getMutableMap()
+        for (java.util.Map.Entry e : values.entrySet()) {
+          if (e.getKey() == null || e.getValue() == null) {
+            throw new NullPointerException();
+          }
+        }
+        internalGetMutableFeeds().ensureBuilderMap()
             .putAll(values);
+        bitField0_ |= 0x00000002;
         return this;
       }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
+       */
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.Builder putFeedsBuilderIfAbsent(
+          java.lang.String key) {
+        java.util.Map builderMap = internalGetMutableFeeds().ensureBuilderMap();
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedOrBuilder entry = builderMap.get(key);
+        if (entry == null) {
+          entry = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.newBuilder();
+          builderMap.put(key, entry);
+        }
+        if (entry instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed) {
+          entry = ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed) entry).toBuilder();
+          builderMap.put(key, entry);
+        }
+        return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.Builder) entry;
+      }
 
       private long currentTs_ ;
       /**
@@ -12819,8 +14898,9 @@ public long getCurrentTs() {
        * @return This builder for chaining.
        */
       public Builder setCurrentTs(long value) {
-        
+
         currentTs_ = value;
+        bitField0_ |= 0x00000004;
         onChanged();
         return this;
       }
@@ -12829,7 +14909,7 @@ public Builder setCurrentTs(long value) {
        * @return This builder for chaining.
        */
       public Builder clearCurrentTs() {
-        
+        bitField0_ = (bitField0_ & ~0x00000004);
         currentTs_ = 0L;
         onChanged();
         return this;
@@ -12843,7 +14923,7 @@ public Builder clearCurrentTs() {
        * @return Whether the marketInfo field is set.
        */
       public boolean hasMarketInfo() {
-        return marketInfoBuilder_ != null || marketInfo_ != null;
+        return ((bitField0_ & 0x00000008) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo marketInfo = 4;
@@ -12865,11 +14945,11 @@ public Builder setMarketInfo(com.upstox.marketdatafeederv3udapi.rpc.proto.Market
             throw new NullPointerException();
           }
           marketInfo_ = value;
-          onChanged();
         } else {
           marketInfoBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -12879,11 +14959,11 @@ public Builder setMarketInfo(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.Builder builderForValue) {
         if (marketInfoBuilder_ == null) {
           marketInfo_ = builderForValue.build();
-          onChanged();
         } else {
           marketInfoBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -12891,38 +14971,40 @@ public Builder setMarketInfo(
        */
       public Builder mergeMarketInfo(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo value) {
         if (marketInfoBuilder_ == null) {
-          if (marketInfo_ != null) {
-            marketInfo_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.newBuilder(marketInfo_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000008) != 0) &&
+            marketInfo_ != null &&
+            marketInfo_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.getDefaultInstance()) {
+            getMarketInfoBuilder().mergeFrom(value);
           } else {
             marketInfo_ = value;
           }
-          onChanged();
         } else {
           marketInfoBuilder_.mergeFrom(value);
         }
-
+        if (marketInfo_ != null) {
+          bitField0_ |= 0x00000008;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo marketInfo = 4;
        */
       public Builder clearMarketInfo() {
-        if (marketInfoBuilder_ == null) {
-          marketInfo_ = null;
-          onChanged();
-        } else {
-          marketInfo_ = null;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        marketInfo_ = null;
+        if (marketInfoBuilder_ != null) {
+          marketInfoBuilder_.dispose();
           marketInfoBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo marketInfo = 4;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.Builder getMarketInfoBuilder() {
-        
+        bitField0_ |= 0x00000008;
         onChanged();
         return getMarketInfoFieldBuilder().getBuilder();
       }
@@ -13072,6 +15154,11 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
   private static final 
     com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_Feed_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_fieldAccessorTable;
   private static final com.google.protobuf.Descriptors.Descriptor
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor;
   private static final 
@@ -13082,6 +15169,16 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
   private static final 
     com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_fieldAccessorTable;
   private static final com.google.protobuf.Descriptors.Descriptor
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_descriptor;
   private static final 
@@ -13102,86 +15199,104 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
   static {
     java.lang.String[] descriptorData = {
       "\n\026MarketDataFeedV3.proto\022,com.upstox.mar" +
-      "ketdatafeederv3udapi.rpc.proto\"9\n\004LTPC\022\013" +
-      "\n\003ltp\030\001 \001(\001\022\013\n\003ltt\030\002 \001(\003\022\013\n\003ltq\030\003 \001(\003\022\n\n" +
-      "\002cp\030\004 \001(\001\"W\n\013MarketLevel\022H\n\013bidAskQuote\030" +
-      "\001 \003(\01323.com.upstox.marketdatafeederv3uda" +
-      "pi.rpc.proto.Quote\"N\n\nMarketOHLC\022@\n\004ohlc" +
-      "\030\001 \003(\01322.com.upstox.marketdatafeederv3ud" +
-      "api.rpc.proto.OHLC\"?\n\005Quote\022\014\n\004bidQ\030\001 \001(" +
-      "\003\022\014\n\004bidP\030\002 \001(\001\022\014\n\004askQ\030\003 \001(\003\022\014\n\004askP\030\004 " +
-      "\001(\001\"V\n\014OptionGreeks\022\r\n\005delta\030\001 \001(\001\022\r\n\005th" +
-      "eta\030\002 \001(\001\022\r\n\005gamma\030\003 \001(\001\022\014\n\004vega\030\004 \001(\001\022\013" +
-      "\n\003rho\030\005 \001(\001\"i\n\004OHLC\022\020\n\010interval\030\001 \001(\t\022\014\n" +
-      "\004open\030\002 \001(\001\022\014\n\004high\030\003 \001(\001\022\013\n\003low\030\004 \001(\001\022\r" +
-      "\n\005close\030\005 \001(\001\022\013\n\003vol\030\006 \001(\003\022\n\n\002ts\030\007 \001(\003\"\216" +
-      "\003\n\016MarketFullFeed\022@\n\004ltpc\030\001 \001(\01322.com.up" +
-      "stox.marketdatafeederv3udapi.rpc.proto.L" +
-      "TPC\022N\n\013marketLevel\030\002 \001(\01329.com.upstox.ma" +
-      "rketdatafeederv3udapi.rpc.proto.MarketLe" +
-      "vel\022P\n\014optionGreeks\030\003 \001(\0132:.com.upstox.m" +
+      "ketdatafeederv3udapi.rpc.proto\032\036google/p" +
+      "rotobuf/wrappers.proto\"d\n\004LTPC\022\013\n\003ltp\030\001 " +
+      "\001(\001\022\013\n\003ltt\030\002 \001(\003\022\013\n\003ltq\030\003 \001(\003\022\n\n\002cp\030\004 \001(" +
+      "\001\022)\n\003iep\030\005 \001(\0132\034.google.protobuf.DoubleV" +
+      "alue\"W\n\013MarketLevel\022H\n\013bidAskQuote\030\001 \003(\013" +
+      "23.com.upstox.marketdatafeederv3udapi.rp" +
+      "c.proto.Quote\"N\n\nMarketOHLC\022@\n\004ohlc\030\001 \003(" +
+      "\01322.com.upstox.marketdatafeederv3udapi.r" +
+      "pc.proto.OHLC\"?\n\005Quote\022\014\n\004bidQ\030\001 \001(\003\022\014\n\004" +
+      "bidP\030\002 \001(\001\022\014\n\004askQ\030\003 \001(\003\022\014\n\004askP\030\004 \001(\001\"V" +
+      "\n\014OptionGreeks\022\r\n\005delta\030\001 \001(\001\022\r\n\005theta\030\002" +
+      " \001(\001\022\r\n\005gamma\030\003 \001(\001\022\014\n\004vega\030\004 \001(\001\022\013\n\003rho" +
+      "\030\005 \001(\001\"i\n\004OHLC\022\020\n\010interval\030\001 \001(\t\022\014\n\004open" +
+      "\030\002 \001(\001\022\014\n\004high\030\003 \001(\001\022\013\n\003low\030\004 \001(\001\022\r\n\005clo" +
+      "se\030\005 \001(\001\022\013\n\003vol\030\006 \001(\003\022\n\n\002ts\030\007 \001(\003\"\351\003\n\016Ma" +
+      "rketFullFeed\022@\n\004ltpc\030\001 \001(\01322.com.upstox." +
+      "marketdatafeederv3udapi.rpc.proto.LTPC\022N" +
+      "\n\013marketLevel\030\002 \001(\01329.com.upstox.marketd" +
+      "atafeederv3udapi.rpc.proto.MarketLevel\022P" +
+      "\n\014optionGreeks\030\003 \001(\0132:.com.upstox.market" +
+      "datafeederv3udapi.rpc.proto.OptionGreeks" +
+      "\022L\n\nmarketOHLC\030\004 \001(\01328.com.upstox.market" +
+      "datafeederv3udapi.rpc.proto.MarketOHLC\022\013" +
+      "\n\003atp\030\005 \001(\001\022\013\n\003vtt\030\006 \001(\003\022\n\n\002oi\030\007 \001(\001\022\n\n\002" +
+      "iv\030\010 \001(\001\022\013\n\003tbq\030\t \001(\001\022\013\n\003tsq\030\n \001(\001\022\013\n\003ie" +
+      "p\030\013 \001(\001\022\n\n\002rp\030\014 \001(\001\022\013\n\003ieq\030\r \001(\003\022\020\n\010iiqT" +
+      "otal\030\016 \001(\003\022\014\n\004iiqM\030\017 \001(\003\022\023\n\013casEligible\030" +
+      "\020 \001(\010\"\237\001\n\rIndexFullFeed\022@\n\004ltpc\030\001 \001(\01322." +
+      "com.upstox.marketdatafeederv3udapi.rpc.p" +
+      "roto.LTPC\022L\n\nmarketOHLC\030\002 \001(\01328.com.upst" +
+      "ox.marketdatafeederv3udapi.rpc.proto.Mar" +
+      "ketOHLC\"\275\001\n\010FullFeed\022P\n\010marketFF\030\001 \001(\0132<" +
+      ".com.upstox.marketdatafeederv3udapi.rpc." +
+      "proto.MarketFullFeedH\000\022N\n\007indexFF\030\002 \001(\0132" +
+      ";.com.upstox.marketdatafeederv3udapi.rpc" +
+      ".proto.IndexFullFeedH\000B\017\n\rFullFeedUnion\"" +
+      "\230\002\n\024FirstLevelWithGreeks\022@\n\004ltpc\030\001 \001(\01322" +
+      ".com.upstox.marketdatafeederv3udapi.rpc." +
+      "proto.LTPC\022G\n\nfirstDepth\030\002 \001(\01323.com.ups" +
+      "tox.marketdatafeederv3udapi.rpc.proto.Qu" +
+      "ote\022P\n\014optionGreeks\030\003 \001(\0132:.com.upstox.m" +
       "arketdatafeederv3udapi.rpc.proto.OptionG" +
-      "reeks\022L\n\nmarketOHLC\030\004 \001(\01328.com.upstox.m" +
-      "arketdatafeederv3udapi.rpc.proto.MarketO" +
-      "HLC\022\013\n\003atp\030\005 \001(\001\022\013\n\003vtt\030\006 \001(\003\022\n\n\002oi\030\007 \001(" +
-      "\001\022\n\n\002iv\030\010 \001(\001\022\013\n\003tbq\030\t \001(\001\022\013\n\003tsq\030\n \001(\001\"" +
-      "\237\001\n\rIndexFullFeed\022@\n\004ltpc\030\001 \001(\01322.com.up" +
-      "stox.marketdatafeederv3udapi.rpc.proto.L" +
-      "TPC\022L\n\nmarketOHLC\030\002 \001(\01328.com.upstox.mar" +
-      "ketdatafeederv3udapi.rpc.proto.MarketOHL" +
-      "C\"\275\001\n\010FullFeed\022P\n\010marketFF\030\001 \001(\0132<.com.u" +
-      "pstox.marketdatafeederv3udapi.rpc.proto." +
-      "MarketFullFeedH\000\022N\n\007indexFF\030\002 \001(\0132;.com." +
-      "upstox.marketdatafeederv3udapi.rpc.proto" +
-      ".IndexFullFeedH\000B\017\n\rFullFeedUnion\"\230\002\n\024Fi" +
-      "rstLevelWithGreeks\022@\n\004ltpc\030\001 \001(\01322.com.u" +
-      "pstox.marketdatafeederv3udapi.rpc.proto." +
-      "LTPC\022G\n\nfirstDepth\030\002 \001(\01323.com.upstox.ma" +
-      "rketdatafeederv3udapi.rpc.proto.Quote\022P\n" +
-      "\014optionGreeks\030\003 \001(\0132:.com.upstox.marketd" +
-      "atafeederv3udapi.rpc.proto.OptionGreeks\022" +
-      "\013\n\003vtt\030\004 \001(\003\022\n\n\002oi\030\005 \001(\001\022\n\n\002iv\030\006 \001(\001\"\327\002\n" +
-      "\004Feed\022B\n\004ltpc\030\001 \001(\01322.com.upstox.marketd" +
-      "atafeederv3udapi.rpc.proto.LTPCH\000\022J\n\010ful" +
-      "lFeed\030\002 \001(\01326.com.upstox.marketdatafeede" +
-      "rv3udapi.rpc.proto.FullFeedH\000\022b\n\024firstLe" +
-      "velWithGreeks\030\003 \001(\0132B.com.upstox.marketd" +
-      "atafeederv3udapi.rpc.proto.FirstLevelWit" +
-      "hGreeksH\000\022N\n\013requestMode\030\004 \001(\01629.com.ups" +
-      "tox.marketdatafeederv3udapi.rpc.proto.Re" +
-      "questModeB\013\n\tFeedUnion\"\342\001\n\nMarketInfo\022b\n" +
-      "\rsegmentStatus\030\001 \003(\0132K.com.upstox.market" +
-      "datafeederv3udapi.rpc.proto.MarketInfo.S" +
-      "egmentStatusEntry\032p\n\022SegmentStatusEntry\022" +
-      "\013\n\003key\030\001 \001(\t\022I\n\005value\030\002 \001(\0162:.com.upstox" +
-      ".marketdatafeederv3udapi.rpc.proto.Marke" +
-      "tStatus:\0028\001\"\351\002\n\014FeedResponse\022@\n\004type\030\001 \001" +
-      "(\01622.com.upstox.marketdatafeederv3udapi." +
-      "rpc.proto.Type\022T\n\005feeds\030\002 \003(\0132E.com.upst" +
-      "ox.marketdatafeederv3udapi.rpc.proto.Fee" +
-      "dResponse.FeedsEntry\022\021\n\tcurrentTs\030\003 \001(\003\022" +
-      "L\n\nmarketInfo\030\004 \001(\01328.com.upstox.marketd" +
-      "atafeederv3udapi.rpc.proto.MarketInfo\032`\n" +
-      "\nFeedsEntry\022\013\n\003key\030\001 \001(\t\022A\n\005value\030\002 \001(\0132" +
-      "2.com.upstox.marketdatafeederv3udapi.rpc" +
-      ".proto.Feed:\0028\001*8\n\004Type\022\020\n\014initial_feed\020" +
-      "\000\022\r\n\tlive_feed\020\001\022\017\n\013market_info\020\002*E\n\013Req" +
-      "uestMode\022\010\n\004ltpc\020\000\022\013\n\007full_d5\020\001\022\021\n\roptio" +
-      "n_greeks\020\002\022\014\n\010full_d30\020\003*{\n\014MarketStatus" +
-      "\022\022\n\016PRE_OPEN_START\020\000\022\020\n\014PRE_OPEN_END\020\001\022\017" +
-      "\n\013NORMAL_OPEN\020\002\022\020\n\014NORMAL_CLOSE\020\003\022\021\n\rCLO" +
-      "SING_START\020\004\022\017\n\013CLOSING_END\020\005b\006proto3"
+      "reeks\022\013\n\003vtt\030\004 \001(\003\022\n\n\002oi\030\005 \001(\001\022\n\n\002iv\030\006 \001" +
+      "(\001\"\327\002\n\004Feed\022B\n\004ltpc\030\001 \001(\01322.com.upstox.m" +
+      "arketdatafeederv3udapi.rpc.proto.LTPCH\000\022" +
+      "J\n\010fullFeed\030\002 \001(\01326.com.upstox.marketdat" +
+      "afeederv3udapi.rpc.proto.FullFeedH\000\022b\n\024f" +
+      "irstLevelWithGreeks\030\003 \001(\0132B.com.upstox.m" +
+      "arketdatafeederv3udapi.rpc.proto.FirstLe" +
+      "velWithGreeksH\000\022N\n\013requestMode\030\004 \001(\01629.c" +
+      "om.upstox.marketdatafeederv3udapi.rpc.pr" +
+      "oto.RequestModeB\013\n\tFeedUnion\"1\n\nStatusIn" +
+      "fo\022\016\n\006status\030\001 \001(\t\022\023\n\013updatedTime\030\002 \001(\003\"" +
+      "\245\005\n\nMarketInfo\022b\n\rsegmentStatus\030\001 \003(\0132K." +
+      "com.upstox.marketdatafeederv3udapi.rpc.p" +
+      "roto.MarketInfo.SegmentStatusEntry\022f\n\017ca" +
+      "sMarketStatus\030\002 \003(\0132M.com.upstox.marketd" +
+      "atafeederv3udapi.rpc.proto.MarketInfo.Ca" +
+      "sMarketStatusEntry\022p\n\024preOpenSessionStat" +
+      "us\030\003 \003(\0132R.com.upstox.marketdatafeederv3" +
+      "udapi.rpc.proto.MarketInfo.PreOpenSessio" +
+      "nStatusEntry\032p\n\022SegmentStatusEntry\022\013\n\003ke" +
+      "y\030\001 \001(\t\022I\n\005value\030\002 \001(\0162:.com.upstox.mark" +
+      "etdatafeederv3udapi.rpc.proto.MarketStat" +
+      "us:\0028\001\032p\n\024CasMarketStatusEntry\022\013\n\003key\030\001 " +
+      "\001(\t\022G\n\005value\030\002 \001(\01328.com.upstox.marketda" +
+      "tafeederv3udapi.rpc.proto.StatusInfo:\0028\001" +
+      "\032u\n\031PreOpenSessionStatusEntry\022\013\n\003key\030\001 \001" +
+      "(\t\022G\n\005value\030\002 \001(\01328.com.upstox.marketdat" +
+      "afeederv3udapi.rpc.proto.StatusInfo:\0028\001\"" +
+      "\351\002\n\014FeedResponse\022@\n\004type\030\001 \001(\01622.com.ups" +
+      "tox.marketdatafeederv3udapi.rpc.proto.Ty" +
+      "pe\022T\n\005feeds\030\002 \003(\0132E.com.upstox.marketdat" +
+      "afeederv3udapi.rpc.proto.FeedResponse.Fe" +
+      "edsEntry\022\021\n\tcurrentTs\030\003 \001(\003\022L\n\nmarketInf" +
+      "o\030\004 \001(\01328.com.upstox.marketdatafeederv3u" +
+      "dapi.rpc.proto.MarketInfo\032`\n\nFeedsEntry\022" +
+      "\013\n\003key\030\001 \001(\t\022A\n\005value\030\002 \001(\01322.com.upstox" +
+      ".marketdatafeederv3udapi.rpc.proto.Feed:" +
+      "\0028\001*8\n\004Type\022\020\n\014initial_feed\020\000\022\r\n\tlive_fe" +
+      "ed\020\001\022\017\n\013market_info\020\002*E\n\013RequestMode\022\010\n\004" +
+      "ltpc\020\000\022\013\n\007full_d5\020\001\022\021\n\roption_greeks\020\002\022\014" +
+      "\n\010full_d30\020\003*{\n\014MarketStatus\022\022\n\016PRE_OPEN" +
+      "_START\020\000\022\020\n\014PRE_OPEN_END\020\001\022\017\n\013NORMAL_OPE" +
+      "N\020\002\022\020\n\014NORMAL_CLOSE\020\003\022\021\n\rCLOSING_START\020\004" +
+      "\022\017\n\013CLOSING_END\020\005b\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.protobuf.WrappersProto.getDescriptor(),
         });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_LTPC_descriptor =
       getDescriptor().getMessageTypes().get(0);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_LTPC_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_LTPC_descriptor,
-        new java.lang.String[] { "Ltp", "Ltt", "Ltq", "Cp", });
+        new java.lang.String[] { "Ltp", "Ltt", "Ltq", "Cp", "Iep", });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketLevel_descriptor =
       getDescriptor().getMessageTypes().get(1);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketLevel_fieldAccessorTable = new
@@ -13217,7 +15332,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketFullFeed_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketFullFeed_descriptor,
-        new java.lang.String[] { "Ltpc", "MarketLevel", "OptionGreeks", "MarketOHLC", "Atp", "Vtt", "Oi", "Iv", "Tbq", "Tsq", });
+        new java.lang.String[] { "Ltpc", "MarketLevel", "OptionGreeks", "MarketOHLC", "Atp", "Vtt", "Oi", "Iv", "Tbq", "Tsq", "Iep", "Rp", "Ieq", "IiqTotal", "IiqM", "CasEligible", });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_IndexFullFeed_descriptor =
       getDescriptor().getMessageTypes().get(7);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_IndexFullFeed_fieldAccessorTable = new
@@ -13242,20 +15357,38 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_Feed_descriptor,
         new java.lang.String[] { "Ltpc", "FullFeed", "FirstLevelWithGreeks", "RequestMode", "FeedUnion", });
-    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor =
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor =
       getDescriptor().getMessageTypes().get(11);
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor,
+        new java.lang.String[] { "Status", "UpdatedTime", });
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor =
+      getDescriptor().getMessageTypes().get(12);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor,
-        new java.lang.String[] { "SegmentStatus", });
+        new java.lang.String[] { "SegmentStatus", "CasMarketStatus", "PreOpenSessionStatus", });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_descriptor =
       internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor.getNestedTypes().get(0);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_descriptor,
         new java.lang.String[] { "Key", "Value", });
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_descriptor =
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor.getNestedTypes().get(1);
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_descriptor,
+        new java.lang.String[] { "Key", "Value", });
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_descriptor =
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor.getNestedTypes().get(2);
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_descriptor,
+        new java.lang.String[] { "Key", "Value", });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_descriptor =
-      getDescriptor().getMessageTypes().get(12);
+      getDescriptor().getMessageTypes().get(13);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_descriptor,
@@ -13266,6 +15399,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_FeedsEntry_descriptor,
         new java.lang.String[] { "Key", "Value", });
+    com.google.protobuf.WrappersProto.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/pom.xml b/pom.xml
index 93d2e02..1dfb7b7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 	upstox-java-sdk
 	jar
 	upstox-java-sdk
-	1.28
+	1.29
 	https://upstox.com/uplink/
 	The official Java client for communicating with the Upstox API
 	
diff --git a/src/main/java/MarketDataFeedV3.proto b/src/main/java/MarketDataFeedV3.proto
index 40af039..f2da2a5 100644
--- a/src/main/java/MarketDataFeedV3.proto
+++ b/src/main/java/MarketDataFeedV3.proto
@@ -1,11 +1,13 @@
 syntax = "proto3";
 package com.upstox.marketdatafeederv3udapi.rpc.proto;
+import "google/protobuf/wrappers.proto";
 
 message LTPC {
   double ltp = 1;
   int64 ltt = 2;
   int64 ltq = 3;
   double cp = 4;
+  google.protobuf.DoubleValue iep = 5;
 }
 
 message MarketLevel {
@@ -58,6 +60,12 @@ message MarketFullFeed{
   double iv = 8; //implied volatility
   double tbq =9; //total buy quantity
   double tsq = 10; //total sell quantity
+  double iep = 11;
+  double rp = 12;
+  int64 ieq = 13;
+  int64 iiqTotal = 14;
+  int64 iiqM = 15;
+  bool casEligible = 16;
 }
 
 message IndexFullFeed{
@@ -108,8 +116,15 @@ enum MarketStatus {
 }
 
 
+message StatusInfo {
+  string status = 1;
+  int64 updatedTime = 2;
+}
+
 message MarketInfo {
   map segmentStatus = 1;
+  map casMarketStatus = 2;
+  map preOpenSessionStatus = 3;
 }
 
 message FeedResponse{
diff --git a/src/main/java/com/upstox/ApiClient.java b/src/main/java/com/upstox/ApiClient.java
index fee3eef..5a49187 100644
--- a/src/main/java/com/upstox/ApiClient.java
+++ b/src/main/java/com/upstox/ApiClient.java
@@ -1014,7 +1014,7 @@ public Call buildCall(String path, String method, List queryParams, List

queryParams, List collectionQueryParams, Object body, Map headerParams, Map formParams, String[] authNames, ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { updateParamsForAuth(authNames, queryParams, headerParams); headerParams.put("X-Upstox-SDK-Language","java"); - headerParams.put("X-Upstox-SDK-Version","1.28"); + headerParams.put("X-Upstox-SDK-Version","1.29"); final String url = buildUrl(path, queryParams, collectionQueryParams); final Request.Builder reqBuilder = new Request.Builder().url(url); processHeaderParams(headerParams, reqBuilder); diff --git a/src/main/java/com/upstox/api/GetFullMarketQuoteResponseV3.java b/src/main/java/com/upstox/api/GetFullMarketQuoteResponseV3.java new file mode 100644 index 0000000..d0d8591 --- /dev/null +++ b/src/main/java/com/upstox/api/GetFullMarketQuoteResponseV3.java @@ -0,0 +1,172 @@ +/* + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +package com.upstox.api; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.upstox.api.MarketQuoteSymbolV3; +import io.swagger.v3.oas.annotations.media.Schema; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +/** + * GetFullMarketQuoteResponseV3 + */ + +@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-09-05T12:01:25.280302+05:30[Asia/Kolkata]") + +public class GetFullMarketQuoteResponseV3 { + /** + * Gets or Sets status + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + @SerializedName("success") + SUCCESS("success"), + @SerializedName("error") + ERROR("error"), + @SerializedName("partial_success") + PARTIAL_SUCCESS("partial_success"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + public static StatusEnum fromValue(String input) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(input)) { + return b; + } + } + return null; + } + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(String.valueOf(enumeration.getValue())); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + Object value = jsonReader.nextString(); + return StatusEnum.fromValue((String)(value)); + } + } + } @SerializedName("status") + private StatusEnum status = null; + + @SerializedName("data") + private Map data = null; + + public GetFullMarketQuoteResponseV3 status(StatusEnum status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + **/ + @Schema(description = "") + public StatusEnum getStatus() { + return status; + } + + public void setStatus(StatusEnum status) { + this.status = status; + } + + public GetFullMarketQuoteResponseV3 data(Map data) { + this.data = data; + return this; + } + + public GetFullMarketQuoteResponseV3 putDataItem(String key, MarketQuoteSymbolV3 dataItem) { + if (this.data == null) { + this.data = new HashMap(); + } + this.data.put(key, dataItem); + return this; + } + + /** + * Get data + * @return data + **/ + @Schema(description = "") + public Map getData() { + return data; + } + + public void setData(Map data) { + this.data = data; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetFullMarketQuoteResponseV3 getFullMarketQuoteResponseV3 = (GetFullMarketQuoteResponseV3) o; + return Objects.equals(this.status, getFullMarketQuoteResponseV3.status) && + Objects.equals(this.data, getFullMarketQuoteResponseV3.data); + } + + @Override + public int hashCode() { + return Objects.hash(status, data); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetFullMarketQuoteResponseV3 {\n"); + + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} diff --git a/src/main/java/com/upstox/api/MarketQuoteSymbolV3.java b/src/main/java/com/upstox/api/MarketQuoteSymbolV3.java new file mode 100644 index 0000000..2679491 --- /dev/null +++ b/src/main/java/com/upstox/api/MarketQuoteSymbolV3.java @@ -0,0 +1,467 @@ +/* + * OpenAPI definition + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: v0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +package com.upstox.api; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.upstox.api.DepthMap; +import com.upstox.api.OhlcV3; +import io.swagger.v3.oas.annotations.media.Schema; +import java.io.IOException; +/** + * MarketQuoteSymbolV3 + */ + +@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-09-05T12:01:25.280302+05:30[Asia/Kolkata]") + +public class MarketQuoteSymbolV3 { + @SerializedName("ohlc") + private OhlcV3 ohlc = null; + + @SerializedName("depth") + private DepthMap depth = null; + + @SerializedName("timestamp") + private String timestamp = null; + + @SerializedName("instrument_token") + private String instrumentToken = null; + + @SerializedName("symbol") + private String symbol = null; + + @SerializedName("last_price") + private Double lastPrice = null; + + @SerializedName("volume") + private Long volume = null; + + @SerializedName("average_price") + private Double averagePrice = null; + + @SerializedName("oi") + private Double oi = null; + + @SerializedName("net_change") + private Double netChange = null; + + @SerializedName("total_buy_quantity") + private Double totalBuyQuantity = null; + + @SerializedName("total_sell_quantity") + private Double totalSellQuantity = null; + + @SerializedName("lower_circuit_limit") + private Double lowerCircuitLimit = null; + + @SerializedName("upper_circuit_limit") + private Double upperCircuitLimit = null; + + @SerializedName("last_trade_time") + private String lastTradeTime = null; + + @SerializedName("oi_day_high") + private Double oiDayHigh = null; + + @SerializedName("oi_day_low") + private Double oiDayLow = null; + + @SerializedName("prev_close_price") + private Double prevClosePrice = null; + + @SerializedName("year_high") + private Double yearHigh = null; + + @SerializedName("year_low") + private Double yearLow = null; + + @SerializedName("previous_oi") + private Double previousOi = null; + + @SerializedName("indicative_equilibrium_price") + private Double indicativeEquilibriumPrice = null; + + @SerializedName("reference_price") + private Double referencePrice = null; + + @SerializedName("indicative_equilibrium_quantity") + private Long indicativeEquilibriumQuantity = null; + + @SerializedName("indicative_imbalance_quantity_total") + private Long indicativeImbalanceQuantityTotal = null; + + @SerializedName("indicative_imbalance_quantity_market") + private Long indicativeImbalanceQuantityMarket = null; + + @SerializedName("cas_eligible") + private Boolean casEligible = null; + + public MarketQuoteSymbolV3 ohlc(OhlcV3 ohlc) { + this.ohlc = ohlc; + return this; + } + + /** + * Get ohlc + * @return ohlc + **/ + @Schema(description = "") + public OhlcV3 getOhlc() { + return ohlc; + } + + public void setOhlc(OhlcV3 ohlc) { + this.ohlc = ohlc; + } + + public MarketQuoteSymbolV3 depth(DepthMap depth) { + this.depth = depth; + return this; + } + + /** + * Get depth + * @return depth + **/ + @Schema(description = "") + public DepthMap getDepth() { + return depth; + } + + public void setDepth(DepthMap depth) { + this.depth = depth; + } + + /** + * Time in milliseconds at which the feeds was updated + * @return timestamp + **/ + @Schema(example = "2022-11-16 06:14:48", description = "Time in milliseconds at which the feeds was updated") + public String getTimestamp() { + return timestamp; + } + + /** + * Key issued by Upstox for the instrument + * @return instrumentToken + **/ + @Schema(example = "NSE_EQ|INE160A01022", description = "Key issued by Upstox for the instrument") + public String getInstrumentToken() { + return instrumentToken; + } + + /** + * Shows the trading symbol of the instrument + * @return symbol + **/ + @Schema(example = "NHPC", description = "Shows the trading symbol of the instrument") + public String getSymbol() { + return symbol; + } + + /** + * The last traded price of symbol + * @return lastPrice + **/ + @Schema(example = "120.01", description = "The last traded price of symbol") + public Double getLastPrice() { + return lastPrice; + } + + /** + * The volume traded today on symbol + * @return volume + **/ + @Schema(example = "2344451", description = "The volume traded today on symbol") + public Long getVolume() { + return volume; + } + + /** + * Average price + * @return averagePrice + **/ + @Schema(example = "120.01", description = "Average price") + public Double getAveragePrice() { + return averagePrice; + } + + /** + * Total number of outstanding contracts held by market participants exchange-wide (only F&O) + * @return oi + **/ + @Schema(example = "0", description = "Total number of outstanding contracts held by market participants exchange-wide (only F&O)") + public Double getOi() { + return oi; + } + + /** + * The absolute change from yesterday's close to last traded price + * @return netChange + **/ + @Schema(example = "0.01", description = "The absolute change from yesterday's close to last traded price") + public Double getNetChange() { + return netChange; + } + + /** + * The total number of bid quantity available for trading + * @return totalBuyQuantity + **/ + @Schema(example = "0", description = "The total number of bid quantity available for trading") + public Double getTotalBuyQuantity() { + return totalBuyQuantity; + } + + /** + * The total number of ask quantity available for trading + * @return totalSellQuantity + **/ + @Schema(example = "0", description = "The total number of ask quantity available for trading") + public Double getTotalSellQuantity() { + return totalSellQuantity; + } + + /** + * The lower circuit of symbol + * @return lowerCircuitLimit + **/ + @Schema(example = "119.0", description = "The lower circuit of symbol") + public Double getLowerCircuitLimit() { + return lowerCircuitLimit; + } + + /** + * The upper circuit of symbol + * @return upperCircuitLimit + **/ + @Schema(example = "121.0", description = "The upper circuit of symbol") + public Double getUpperCircuitLimit() { + return upperCircuitLimit; + } + + /** + * Time in milliseconds at which last trade happened + * @return lastTradeTime + **/ + @Schema(example = "2022-11-16 06:14:48", description = "Time in milliseconds at which last trade happened") + public String getLastTradeTime() { + return lastTradeTime; + } + + /** + * The highest open interest recorded on symbol during the day + * @return oiDayHigh + **/ + @Schema(example = "0", description = "The highest open interest recorded on symbol during the day") + public Double getOiDayHigh() { + return oiDayHigh; + } + + /** + * The lowest open interest recorded on symbol during the day + * @return oiDayLow + **/ + @Schema(example = "0", description = "The lowest open interest recorded on symbol during the day") + public Double getOiDayLow() { + return oiDayLow; + } + + /** + * The close price of the symbol from the previous session of trading + * @return prevClosePrice + **/ + @Schema(example = "119.85", description = "The close price of the symbol from the previous session of trading") + public Double getPrevClosePrice() { + return prevClosePrice; + } + + /** + * The highest price of the symbol over the trailing year + * @return yearHigh + **/ + @Schema(example = "180.5", description = "The highest price of the symbol over the trailing year") + public Double getYearHigh() { + return yearHigh; + } + + /** + * The lowest price of the symbol over the trailing year + * @return yearLow + **/ + @Schema(example = "80.25", description = "The lowest price of the symbol over the trailing year") + public Double getYearLow() { + return yearLow; + } + + /** + * The open interest of the symbol from the previous session (only F&O) + * @return previousOi + **/ + @Schema(example = "0", description = "The open interest of the symbol from the previous session (only F&O)") + public Double getPreviousOi() { + return previousOi; + } + + /** + * The indicative equilibrium price discovered during the call auction session + * @return indicativeEquilibriumPrice + **/ + @Schema(example = "120.4", description = "The indicative equilibrium price discovered during the call auction session") + public Double getIndicativeEquilibriumPrice() { + return indicativeEquilibriumPrice; + } + + /** + * The reference price against which the call auction price band is applied + * @return referencePrice + **/ + @Schema(example = "119.0", description = "The reference price against which the call auction price band is applied") + public Double getReferencePrice() { + return referencePrice; + } + + /** + * The indicative equilibrium quantity matched at the indicative equilibrium price + * @return indicativeEquilibriumQuantity + **/ + @Schema(example = "9800", description = "The indicative equilibrium quantity matched at the indicative equilibrium price") + public Long getIndicativeEquilibriumQuantity() { + return indicativeEquilibriumQuantity; + } + + /** + * The total indicative imbalance quantity in the call auction order book + * @return indicativeImbalanceQuantityTotal + **/ + @Schema(example = "2500", description = "The total indicative imbalance quantity in the call auction order book") + public Long getIndicativeImbalanceQuantityTotal() { + return indicativeImbalanceQuantityTotal; + } + + /** + * The market-order component of the indicative imbalance quantity in the call auction order book + * @return indicativeImbalanceQuantityMarket + **/ + @Schema(example = "500", description = "The market-order component of the indicative imbalance quantity in the call auction order book") + public Long getIndicativeImbalanceQuantityMarket() { + return indicativeImbalanceQuantityMarket; + } + + /** + * Whether the symbol is eligible for the call auction session + * @return casEligible + **/ + @Schema(example = "true", description = "Whether the symbol is eligible for the call auction session") + public Boolean getCasEligible() { + return casEligible; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MarketQuoteSymbolV3 marketQuoteSymbolV3 = (MarketQuoteSymbolV3) o; + return Objects.equals(this.ohlc, marketQuoteSymbolV3.ohlc) && + Objects.equals(this.depth, marketQuoteSymbolV3.depth) && + Objects.equals(this.timestamp, marketQuoteSymbolV3.timestamp) && + Objects.equals(this.instrumentToken, marketQuoteSymbolV3.instrumentToken) && + Objects.equals(this.symbol, marketQuoteSymbolV3.symbol) && + Objects.equals(this.lastPrice, marketQuoteSymbolV3.lastPrice) && + Objects.equals(this.volume, marketQuoteSymbolV3.volume) && + Objects.equals(this.averagePrice, marketQuoteSymbolV3.averagePrice) && + Objects.equals(this.oi, marketQuoteSymbolV3.oi) && + Objects.equals(this.netChange, marketQuoteSymbolV3.netChange) && + Objects.equals(this.totalBuyQuantity, marketQuoteSymbolV3.totalBuyQuantity) && + Objects.equals(this.totalSellQuantity, marketQuoteSymbolV3.totalSellQuantity) && + Objects.equals(this.lowerCircuitLimit, marketQuoteSymbolV3.lowerCircuitLimit) && + Objects.equals(this.upperCircuitLimit, marketQuoteSymbolV3.upperCircuitLimit) && + Objects.equals(this.lastTradeTime, marketQuoteSymbolV3.lastTradeTime) && + Objects.equals(this.oiDayHigh, marketQuoteSymbolV3.oiDayHigh) && + Objects.equals(this.oiDayLow, marketQuoteSymbolV3.oiDayLow) && + Objects.equals(this.prevClosePrice, marketQuoteSymbolV3.prevClosePrice) && + Objects.equals(this.yearHigh, marketQuoteSymbolV3.yearHigh) && + Objects.equals(this.yearLow, marketQuoteSymbolV3.yearLow) && + Objects.equals(this.previousOi, marketQuoteSymbolV3.previousOi) && + Objects.equals(this.indicativeEquilibriumPrice, marketQuoteSymbolV3.indicativeEquilibriumPrice) && + Objects.equals(this.referencePrice, marketQuoteSymbolV3.referencePrice) && + Objects.equals(this.indicativeEquilibriumQuantity, marketQuoteSymbolV3.indicativeEquilibriumQuantity) && + Objects.equals(this.indicativeImbalanceQuantityTotal, marketQuoteSymbolV3.indicativeImbalanceQuantityTotal) && + Objects.equals(this.indicativeImbalanceQuantityMarket, marketQuoteSymbolV3.indicativeImbalanceQuantityMarket) && + Objects.equals(this.casEligible, marketQuoteSymbolV3.casEligible); + } + + @Override + public int hashCode() { + return Objects.hash(ohlc, depth, timestamp, instrumentToken, symbol, lastPrice, volume, averagePrice, oi, netChange, totalBuyQuantity, totalSellQuantity, lowerCircuitLimit, upperCircuitLimit, lastTradeTime, oiDayHigh, oiDayLow, prevClosePrice, yearHigh, yearLow, previousOi, indicativeEquilibriumPrice, referencePrice, indicativeEquilibriumQuantity, indicativeImbalanceQuantityTotal, indicativeImbalanceQuantityMarket, casEligible); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MarketQuoteSymbolV3 {\n"); + + sb.append(" ohlc: ").append(toIndentedString(ohlc)).append("\n"); + sb.append(" depth: ").append(toIndentedString(depth)).append("\n"); + sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n"); + sb.append(" instrumentToken: ").append(toIndentedString(instrumentToken)).append("\n"); + sb.append(" symbol: ").append(toIndentedString(symbol)).append("\n"); + sb.append(" lastPrice: ").append(toIndentedString(lastPrice)).append("\n"); + sb.append(" volume: ").append(toIndentedString(volume)).append("\n"); + sb.append(" averagePrice: ").append(toIndentedString(averagePrice)).append("\n"); + sb.append(" oi: ").append(toIndentedString(oi)).append("\n"); + sb.append(" netChange: ").append(toIndentedString(netChange)).append("\n"); + sb.append(" totalBuyQuantity: ").append(toIndentedString(totalBuyQuantity)).append("\n"); + sb.append(" totalSellQuantity: ").append(toIndentedString(totalSellQuantity)).append("\n"); + sb.append(" lowerCircuitLimit: ").append(toIndentedString(lowerCircuitLimit)).append("\n"); + sb.append(" upperCircuitLimit: ").append(toIndentedString(upperCircuitLimit)).append("\n"); + sb.append(" lastTradeTime: ").append(toIndentedString(lastTradeTime)).append("\n"); + sb.append(" oiDayHigh: ").append(toIndentedString(oiDayHigh)).append("\n"); + sb.append(" oiDayLow: ").append(toIndentedString(oiDayLow)).append("\n"); + sb.append(" prevClosePrice: ").append(toIndentedString(prevClosePrice)).append("\n"); + sb.append(" yearHigh: ").append(toIndentedString(yearHigh)).append("\n"); + sb.append(" yearLow: ").append(toIndentedString(yearLow)).append("\n"); + sb.append(" previousOi: ").append(toIndentedString(previousOi)).append("\n"); + sb.append(" indicativeEquilibriumPrice: ").append(toIndentedString(indicativeEquilibriumPrice)).append("\n"); + sb.append(" referencePrice: ").append(toIndentedString(referencePrice)).append("\n"); + sb.append(" indicativeEquilibriumQuantity: ").append(toIndentedString(indicativeEquilibriumQuantity)).append("\n"); + sb.append(" indicativeImbalanceQuantityTotal: ").append(toIndentedString(indicativeImbalanceQuantityTotal)).append("\n"); + sb.append(" indicativeImbalanceQuantityMarket: ").append(toIndentedString(indicativeImbalanceQuantityMarket)).append("\n"); + sb.append(" casEligible: ").append(toIndentedString(casEligible)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} diff --git a/src/main/java/com/upstox/feeder/MarketUpdateV3.java b/src/main/java/com/upstox/feeder/MarketUpdateV3.java index 1f5d192..52f1d69 100644 --- a/src/main/java/com/upstox/feeder/MarketUpdateV3.java +++ b/src/main/java/com/upstox/feeder/MarketUpdateV3.java @@ -57,6 +57,7 @@ public static class LTPC { private long ltt; private long ltq; private double cp; + private Double iep; public double getLtp() { return ltp; @@ -90,6 +91,14 @@ public void setCp(double cp) { this.cp = cp; } + public Double getIep() { + return iep; + } + + public void setIep(Double iep) { + this.iep = iep; + } + @Override public String toString() { return "LTPC{" + @@ -97,6 +106,7 @@ public String toString() { ", ltt=" + ltt + ", ltq=" + ltq + ", cp=" + cp + + ", iep=" + iep + '}'; } } @@ -337,6 +347,12 @@ public static class MarketFullFeed { private double iv; private double tbq; private double tsq; + private double iep; + private double rp; + private long ieq; + private long iiqTotal; + private long iiqM; + private boolean casEligible; public LTPC getLtpc() { return ltpc; @@ -418,6 +434,54 @@ public void setTsq(double tsq) { this.tsq = tsq; } + public double getIep() { + return iep; + } + + public void setIep(double iep) { + this.iep = iep; + } + + public double getRp() { + return rp; + } + + public void setRp(double rp) { + this.rp = rp; + } + + public long getIeq() { + return ieq; + } + + public void setIeq(long ieq) { + this.ieq = ieq; + } + + public long getIiqTotal() { + return iiqTotal; + } + + public void setIiqTotal(long iiqTotal) { + this.iiqTotal = iiqTotal; + } + + public long getIiqM() { + return iiqM; + } + + public void setIiqM(long iiqM) { + this.iiqM = iiqM; + } + + public boolean isCasEligible() { + return casEligible; + } + + public void setCasEligible(boolean casEligible) { + this.casEligible = casEligible; + } + @Override public String toString() { return "MarketFullFeed{" + @@ -431,6 +495,12 @@ public String toString() { ", iv=" + iv + ", tbq=" + tbq + ", tsq=" + tsq + + ", iep=" + iep + + ", rp=" + rp + + ", ieq=" + ieq + + ", iiqTotal=" + iiqTotal + + ", iiqM=" + iiqM + + ", casEligible=" + casEligible + '}'; } } @@ -611,8 +681,39 @@ public String toString() { } } + public static class StatusInfo { + private String status; + private long updatedTime; + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public long getUpdatedTime() { + return updatedTime; + } + + public void setUpdatedTime(long updatedTime) { + this.updatedTime = updatedTime; + } + + @Override + public String toString() { + return "StatusInfo{" + + "status='" + status + '\'' + + ", updatedTime=" + updatedTime + + '}'; + } + } + public static class MarketInfo { private Map segmentStatus; + private Map casMarketStatus; + private Map preOpenSessionStatus; public Map getSegmentStatus() { return segmentStatus; @@ -622,10 +723,28 @@ public void setSegmentStatus(Map segmentStatus) { this.segmentStatus = segmentStatus; } + public Map getCasMarketStatus() { + return casMarketStatus; + } + + public void setCasMarketStatus(Map casMarketStatus) { + this.casMarketStatus = casMarketStatus; + } + + public Map getPreOpenSessionStatus() { + return preOpenSessionStatus; + } + + public void setPreOpenSessionStatus(Map preOpenSessionStatus) { + this.preOpenSessionStatus = preOpenSessionStatus; + } + @Override public String toString() { return "MarketInfo{" + "segmentStatus=" + segmentStatus + + ", casMarketStatus=" + casMarketStatus + + ", preOpenSessionStatus=" + preOpenSessionStatus + '}'; } } diff --git a/src/main/java/com/upstox/marketdatafeederv3udapi/rpc/proto/MarketDataFeedV3.java b/src/main/java/com/upstox/marketdatafeederv3udapi/rpc/proto/MarketDataFeedV3.java index ebc5a8b..b55b4b0 100644 --- a/src/main/java/com/upstox/marketdatafeederv3udapi/rpc/proto/MarketDataFeedV3.java +++ b/src/main/java/com/upstox/marketdatafeederv3udapi/rpc/proto/MarketDataFeedV3.java @@ -1,6 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: MarketDataFeedV3.proto +// Protobuf Java Version: 3.25.4 package com.upstox.marketdatafeederv3udapi.rpc.proto; public final class MarketDataFeedV3 { @@ -428,6 +429,21 @@ public interface LTPCOrBuilder extends * @return The cp. */ double getCp(); + + /** + * .google.protobuf.DoubleValue iep = 5; + * @return Whether the iep field is set. + */ + boolean hasIep(); + /** + * .google.protobuf.DoubleValue iep = 5; + * @return The iep. + */ + com.google.protobuf.DoubleValue getIep(); + /** + * .google.protobuf.DoubleValue iep = 5; + */ + com.google.protobuf.DoubleValueOrBuilder getIepOrBuilder(); } /** * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC} @@ -451,11 +467,6 @@ protected java.lang.Object newInstance( return new LTPC(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_LTPC_descriptor; @@ -469,8 +480,9 @@ protected java.lang.Object newInstance( com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder.class); } + private int bitField0_; public static final int LTP_FIELD_NUMBER = 1; - private double ltp_; + private double ltp_ = 0D; /** * double ltp = 1; * @return The ltp. @@ -481,7 +493,7 @@ public double getLtp() { } public static final int LTT_FIELD_NUMBER = 2; - private long ltt_; + private long ltt_ = 0L; /** * int64 ltt = 2; * @return The ltt. @@ -492,7 +504,7 @@ public long getLtt() { } public static final int LTQ_FIELD_NUMBER = 3; - private long ltq_; + private long ltq_ = 0L; /** * int64 ltq = 3; * @return The ltq. @@ -503,7 +515,7 @@ public long getLtq() { } public static final int CP_FIELD_NUMBER = 4; - private double cp_; + private double cp_ = 0D; /** * double cp = 4; * @return The cp. @@ -513,6 +525,32 @@ public double getCp() { return cp_; } + public static final int IEP_FIELD_NUMBER = 5; + private com.google.protobuf.DoubleValue iep_; + /** + * .google.protobuf.DoubleValue iep = 5; + * @return Whether the iep field is set. + */ + @java.lang.Override + public boolean hasIep() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .google.protobuf.DoubleValue iep = 5; + * @return The iep. + */ + @java.lang.Override + public com.google.protobuf.DoubleValue getIep() { + return iep_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : iep_; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + @java.lang.Override + public com.google.protobuf.DoubleValueOrBuilder getIepOrBuilder() { + return iep_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : iep_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -539,6 +577,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (java.lang.Double.doubleToRawLongBits(cp_) != 0) { output.writeDouble(4, cp_); } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(5, getIep()); + } getUnknownFields().writeTo(output); } @@ -564,6 +605,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(4, cp_); } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getIep()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -589,6 +634,11 @@ public boolean equals(final java.lang.Object obj) { if (java.lang.Double.doubleToLongBits(getCp()) != java.lang.Double.doubleToLongBits( other.getCp())) return false; + if (hasIep() != other.hasIep()) return false; + if (hasIep()) { + if (!getIep() + .equals(other.getIep())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -612,6 +662,10 @@ public int hashCode() { hash = (37 * hash) + CP_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getCp())); + if (hasIep()) { + hash = (37 * hash) + IEP_FIELD_NUMBER; + hash = (53 * hash) + getIep().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -661,11 +715,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -729,25 +785,33 @@ public static final class Builder extends // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.newBuilder() private Builder() { - + maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getIepFieldBuilder(); + } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; ltp_ = 0D; - ltt_ = 0L; - ltq_ = 0L; - cp_ = 0D; - + iep_ = null; + if (iepBuilder_ != null) { + iepBuilder_.dispose(); + iepBuilder_ = null; + } return this; } @@ -774,14 +838,35 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC build( @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC(this); - result.ltp_ = ltp_; - result.ltt_ = ltt_; - result.ltq_ = ltq_; - result.cp_ = cp_; + if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.ltp_ = ltp_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ltt_ = ltt_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.ltq_ = ltq_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.cp_ = cp_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000010) != 0)) { + result.iep_ = iepBuilder_ == null + ? iep_ + : iepBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -838,6 +923,9 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData if (other.getCp() != 0D) { setCp(other.getCp()); } + if (other.hasIep()) { + mergeIep(other.getIep()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -866,24 +954,31 @@ public Builder mergeFrom( break; case 9: { ltp_ = input.readDouble(); - + bitField0_ |= 0x00000001; break; } // case 9 case 16: { ltt_ = input.readInt64(); - + bitField0_ |= 0x00000002; break; } // case 16 case 24: { ltq_ = input.readInt64(); - + bitField0_ |= 0x00000004; break; } // case 24 case 33: { cp_ = input.readDouble(); - + bitField0_ |= 0x00000008; break; } // case 33 + case 42: { + input.readMessage( + getIepFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -899,6 +994,7 @@ public Builder mergeFrom( } // finally return this; } + private int bitField0_; private double ltp_ ; /** @@ -915,8 +1011,9 @@ public double getLtp() { * @return This builder for chaining. */ public Builder setLtp(double value) { - + ltp_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -925,7 +1022,7 @@ public Builder setLtp(double value) { * @return This builder for chaining. */ public Builder clearLtp() { - + bitField0_ = (bitField0_ & ~0x00000001); ltp_ = 0D; onChanged(); return this; @@ -946,8 +1043,9 @@ public long getLtt() { * @return This builder for chaining. */ public Builder setLtt(long value) { - + ltt_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -956,7 +1054,7 @@ public Builder setLtt(long value) { * @return This builder for chaining. */ public Builder clearLtt() { - + bitField0_ = (bitField0_ & ~0x00000002); ltt_ = 0L; onChanged(); return this; @@ -977,8 +1075,9 @@ public long getLtq() { * @return This builder for chaining. */ public Builder setLtq(long value) { - + ltq_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -987,7 +1086,7 @@ public Builder setLtq(long value) { * @return This builder for chaining. */ public Builder clearLtq() { - + bitField0_ = (bitField0_ & ~0x00000004); ltq_ = 0L; onChanged(); return this; @@ -1008,8 +1107,9 @@ public double getCp() { * @return This builder for chaining. */ public Builder setCp(double value) { - + cp_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -1018,11 +1118,132 @@ public Builder setCp(double value) { * @return This builder for chaining. */ public Builder clearCp() { - + bitField0_ = (bitField0_ & ~0x00000008); cp_ = 0D; onChanged(); return this; } + + private com.google.protobuf.DoubleValue iep_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> iepBuilder_; + /** + * .google.protobuf.DoubleValue iep = 5; + * @return Whether the iep field is set. + */ + public boolean hasIep() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * .google.protobuf.DoubleValue iep = 5; + * @return The iep. + */ + public com.google.protobuf.DoubleValue getIep() { + if (iepBuilder_ == null) { + return iep_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : iep_; + } else { + return iepBuilder_.getMessage(); + } + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public Builder setIep(com.google.protobuf.DoubleValue value) { + if (iepBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + iep_ = value; + } else { + iepBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public Builder setIep( + com.google.protobuf.DoubleValue.Builder builderForValue) { + if (iepBuilder_ == null) { + iep_ = builderForValue.build(); + } else { + iepBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public Builder mergeIep(com.google.protobuf.DoubleValue value) { + if (iepBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + iep_ != null && + iep_ != com.google.protobuf.DoubleValue.getDefaultInstance()) { + getIepBuilder().mergeFrom(value); + } else { + iep_ = value; + } + } else { + iepBuilder_.mergeFrom(value); + } + if (iep_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public Builder clearIep() { + bitField0_ = (bitField0_ & ~0x00000010); + iep_ = null; + if (iepBuilder_ != null) { + iepBuilder_.dispose(); + iepBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public com.google.protobuf.DoubleValue.Builder getIepBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getIepFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + public com.google.protobuf.DoubleValueOrBuilder getIepOrBuilder() { + if (iepBuilder_ != null) { + return iepBuilder_.getMessageOrBuilder(); + } else { + return iep_ == null ? + com.google.protobuf.DoubleValue.getDefaultInstance() : iep_; + } + } + /** + * .google.protobuf.DoubleValue iep = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> + getIepFieldBuilder() { + if (iepBuilder_ == null) { + iepBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder>( + getIep(), + getParentForChildren(), + isClean()); + iep_ = null; + } + return iepBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -1138,11 +1359,6 @@ protected java.lang.Object newInstance( return new MarketLevel(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketLevel_descriptor; @@ -1157,6 +1373,7 @@ protected java.lang.Object newInstance( } public static final int BIDASKQUOTE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List bidAskQuote_; /** * repeated .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote bidAskQuote = 1; @@ -1307,11 +1524,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Mark return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -1386,6 +1605,7 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (bidAskQuoteBuilder_ == null) { bidAskQuote_ = java.util.Collections.emptyList(); } else { @@ -1419,7 +1639,13 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel result) { if (bidAskQuoteBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { bidAskQuote_ = java.util.Collections.unmodifiableList(bidAskQuote_); @@ -1429,8 +1655,10 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel } else { result.bidAskQuote_ = bidAskQuoteBuilder_.build(); } - onBuilt(); - return result; + } + + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -1913,11 +2141,6 @@ protected java.lang.Object newInstance( return new MarketOHLC(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketOHLC_descriptor; @@ -1932,6 +2155,7 @@ protected java.lang.Object newInstance( } public static final int OHLC_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List ohlc_; /** * repeated .com.upstox.marketdatafeederv3udapi.rpc.proto.OHLC ohlc = 1; @@ -2082,11 +2306,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Mark return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -2161,6 +2387,7 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (ohlcBuilder_ == null) { ohlc_ = java.util.Collections.emptyList(); } else { @@ -2194,7 +2421,13 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC result) { if (ohlcBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { ohlc_ = java.util.Collections.unmodifiableList(ohlc_); @@ -2204,8 +2437,10 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC } else { result.ohlc_ = ohlcBuilder_.build(); } - onBuilt(); - return result; + } + + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -2687,11 +2922,6 @@ protected java.lang.Object newInstance( return new Quote(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_Quote_descriptor; @@ -2706,7 +2936,7 @@ protected java.lang.Object newInstance( } public static final int BIDQ_FIELD_NUMBER = 1; - private long bidQ_; + private long bidQ_ = 0L; /** * int64 bidQ = 1; * @return The bidQ. @@ -2717,7 +2947,7 @@ public long getBidQ() { } public static final int BIDP_FIELD_NUMBER = 2; - private double bidP_; + private double bidP_ = 0D; /** * double bidP = 2; * @return The bidP. @@ -2728,7 +2958,7 @@ public double getBidP() { } public static final int ASKQ_FIELD_NUMBER = 3; - private long askQ_; + private long askQ_ = 0L; /** * int64 askQ = 3; * @return The askQ. @@ -2739,7 +2969,7 @@ public long getAskQ() { } public static final int ASKP_FIELD_NUMBER = 4; - private double askP_; + private double askP_ = 0D; /** * double askP = 4; * @return The askP. @@ -2897,11 +3127,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quot return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -2976,14 +3208,11 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; bidQ_ = 0L; - bidP_ = 0D; - askQ_ = 0L; - askP_ = 0D; - return this; } @@ -3010,14 +3239,27 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote build @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote(this); - result.bidQ_ = bidQ_; - result.bidP_ = bidP_; - result.askQ_ = askQ_; - result.askP_ = askP_; + if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.bidQ_ = bidQ_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.bidP_ = bidP_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.askQ_ = askQ_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.askP_ = askP_; + } + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -3102,22 +3344,22 @@ public Builder mergeFrom( break; case 8: { bidQ_ = input.readInt64(); - + bitField0_ |= 0x00000001; break; } // case 8 case 17: { bidP_ = input.readDouble(); - + bitField0_ |= 0x00000002; break; } // case 17 case 24: { askQ_ = input.readInt64(); - + bitField0_ |= 0x00000004; break; } // case 24 case 33: { askP_ = input.readDouble(); - + bitField0_ |= 0x00000008; break; } // case 33 default: { @@ -3135,6 +3377,7 @@ public Builder mergeFrom( } // finally return this; } + private int bitField0_; private long bidQ_ ; /** @@ -3151,8 +3394,9 @@ public long getBidQ() { * @return This builder for chaining. */ public Builder setBidQ(long value) { - + bidQ_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -3161,7 +3405,7 @@ public Builder setBidQ(long value) { * @return This builder for chaining. */ public Builder clearBidQ() { - + bitField0_ = (bitField0_ & ~0x00000001); bidQ_ = 0L; onChanged(); return this; @@ -3182,8 +3426,9 @@ public double getBidP() { * @return This builder for chaining. */ public Builder setBidP(double value) { - + bidP_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -3192,7 +3437,7 @@ public Builder setBidP(double value) { * @return This builder for chaining. */ public Builder clearBidP() { - + bitField0_ = (bitField0_ & ~0x00000002); bidP_ = 0D; onChanged(); return this; @@ -3213,8 +3458,9 @@ public long getAskQ() { * @return This builder for chaining. */ public Builder setAskQ(long value) { - + askQ_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -3223,7 +3469,7 @@ public Builder setAskQ(long value) { * @return This builder for chaining. */ public Builder clearAskQ() { - + bitField0_ = (bitField0_ & ~0x00000004); askQ_ = 0L; onChanged(); return this; @@ -3244,8 +3490,9 @@ public double getAskP() { * @return This builder for chaining. */ public Builder setAskP(double value) { - + askP_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -3254,7 +3501,7 @@ public Builder setAskP(double value) { * @return This builder for chaining. */ public Builder clearAskP() { - + bitField0_ = (bitField0_ & ~0x00000008); askP_ = 0D; onChanged(); return this; @@ -3379,11 +3626,6 @@ protected java.lang.Object newInstance( return new OptionGreeks(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_OptionGreeks_descriptor; @@ -3398,7 +3640,7 @@ protected java.lang.Object newInstance( } public static final int DELTA_FIELD_NUMBER = 1; - private double delta_; + private double delta_ = 0D; /** * double delta = 1; * @return The delta. @@ -3409,7 +3651,7 @@ public double getDelta() { } public static final int THETA_FIELD_NUMBER = 2; - private double theta_; + private double theta_ = 0D; /** * double theta = 2; * @return The theta. @@ -3420,7 +3662,7 @@ public double getTheta() { } public static final int GAMMA_FIELD_NUMBER = 3; - private double gamma_; + private double gamma_ = 0D; /** * double gamma = 3; * @return The gamma. @@ -3431,7 +3673,7 @@ public double getGamma() { } public static final int VEGA_FIELD_NUMBER = 4; - private double vega_; + private double vega_ = 0D; /** * double vega = 4; * @return The vega. @@ -3442,7 +3684,7 @@ public double getVega() { } public static final int RHO_FIELD_NUMBER = 5; - private double rho_; + private double rho_ = 0D; /** * double rho = 5; * @return The rho. @@ -3615,11 +3857,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Opti return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -3694,16 +3938,12 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; delta_ = 0D; - theta_ = 0D; - gamma_ = 0D; - vega_ = 0D; - rho_ = 0D; - return this; } @@ -3730,15 +3970,30 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks(this); - result.delta_ = delta_; - result.theta_ = theta_; - result.gamma_ = gamma_; - result.vega_ = vega_; - result.rho_ = rho_; + if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.delta_ = delta_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.theta_ = theta_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.gamma_ = gamma_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.vega_ = vega_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.rho_ = rho_; + } + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -3826,27 +4081,27 @@ public Builder mergeFrom( break; case 9: { delta_ = input.readDouble(); - + bitField0_ |= 0x00000001; break; } // case 9 case 17: { theta_ = input.readDouble(); - + bitField0_ |= 0x00000002; break; } // case 17 case 25: { gamma_ = input.readDouble(); - + bitField0_ |= 0x00000004; break; } // case 25 case 33: { vega_ = input.readDouble(); - + bitField0_ |= 0x00000008; break; } // case 33 case 41: { rho_ = input.readDouble(); - + bitField0_ |= 0x00000010; break; } // case 41 default: { @@ -3864,6 +4119,7 @@ public Builder mergeFrom( } // finally return this; } + private int bitField0_; private double delta_ ; /** @@ -3880,8 +4136,9 @@ public double getDelta() { * @return This builder for chaining. */ public Builder setDelta(double value) { - + delta_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -3890,7 +4147,7 @@ public Builder setDelta(double value) { * @return This builder for chaining. */ public Builder clearDelta() { - + bitField0_ = (bitField0_ & ~0x00000001); delta_ = 0D; onChanged(); return this; @@ -3911,8 +4168,9 @@ public double getTheta() { * @return This builder for chaining. */ public Builder setTheta(double value) { - + theta_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -3921,7 +4179,7 @@ public Builder setTheta(double value) { * @return This builder for chaining. */ public Builder clearTheta() { - + bitField0_ = (bitField0_ & ~0x00000002); theta_ = 0D; onChanged(); return this; @@ -3942,8 +4200,9 @@ public double getGamma() { * @return This builder for chaining. */ public Builder setGamma(double value) { - + gamma_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -3952,7 +4211,7 @@ public Builder setGamma(double value) { * @return This builder for chaining. */ public Builder clearGamma() { - + bitField0_ = (bitField0_ & ~0x00000004); gamma_ = 0D; onChanged(); return this; @@ -3973,8 +4232,9 @@ public double getVega() { * @return This builder for chaining. */ public Builder setVega(double value) { - + vega_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -3983,7 +4243,7 @@ public Builder setVega(double value) { * @return This builder for chaining. */ public Builder clearVega() { - + bitField0_ = (bitField0_ & ~0x00000008); vega_ = 0D; onChanged(); return this; @@ -4004,8 +4264,9 @@ public double getRho() { * @return This builder for chaining. */ public Builder setRho(double value) { - + rho_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -4014,7 +4275,7 @@ public Builder setRho(double value) { * @return This builder for chaining. */ public Builder clearRho() { - + bitField0_ = (bitField0_ & ~0x00000010); rho_ = 0D; onChanged(); return this; @@ -4158,11 +4419,6 @@ protected java.lang.Object newInstance( return new OHLC(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_OHLC_descriptor; @@ -4177,7 +4433,8 @@ protected java.lang.Object newInstance( } public static final int INTERVAL_FIELD_NUMBER = 1; - private volatile java.lang.Object interval_; + @SuppressWarnings("serial") + private volatile java.lang.Object interval_ = ""; /** * string interval = 1; * @return The interval. @@ -4215,7 +4472,7 @@ public java.lang.String getInterval() { } public static final int OPEN_FIELD_NUMBER = 2; - private double open_; + private double open_ = 0D; /** * double open = 2; * @return The open. @@ -4226,7 +4483,7 @@ public double getOpen() { } public static final int HIGH_FIELD_NUMBER = 3; - private double high_; + private double high_ = 0D; /** * double high = 3; * @return The high. @@ -4237,7 +4494,7 @@ public double getHigh() { } public static final int LOW_FIELD_NUMBER = 4; - private double low_; + private double low_ = 0D; /** * double low = 4; * @return The low. @@ -4248,7 +4505,7 @@ public double getLow() { } public static final int CLOSE_FIELD_NUMBER = 5; - private double close_; + private double close_ = 0D; /** * double close = 5; * @return The close. @@ -4259,7 +4516,7 @@ public double getClose() { } public static final int VOL_FIELD_NUMBER = 6; - private long vol_; + private long vol_ = 0L; /** * int64 vol = 6; * @return The vol. @@ -4270,7 +4527,7 @@ public long getVol() { } public static final int TS_FIELD_NUMBER = 7; - private long ts_; + private long ts_ = 0L; /** * int64 ts = 7; * @return The ts. @@ -4464,11 +4721,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } + public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -4543,20 +4802,14 @@ private Builder( @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; interval_ = ""; - open_ = 0D; - high_ = 0D; - low_ = 0D; - close_ = 0D; - vol_ = 0L; - ts_ = 0L; - return this; } @@ -4583,17 +4836,36 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC build( @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC buildPartial() { com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC(this); - result.interval_ = interval_; - result.open_ = open_; - result.high_ = high_; - result.low_ = low_; - result.close_ = close_; - result.vol_ = vol_; - result.ts_ = ts_; + if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } + private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.interval_ = interval_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.open_ = open_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.high_ = high_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.low_ = low_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.close_ = close_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.vol_ = vol_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.ts_ = ts_; + } + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -4640,6 +4912,7 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData if (other == com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OHLC.getDefaultInstance()) return this; if (!other.getInterval().isEmpty()) { interval_ = other.interval_; + bitField0_ |= 0x00000001; onChanged(); } if (other.getOpen() != 0D) { @@ -4688,37 +4961,37 @@ public Builder mergeFrom( break; case 10: { interval_ = input.readStringRequireUtf8(); - + bitField0_ |= 0x00000001; break; } // case 10 case 17: { open_ = input.readDouble(); - + bitField0_ |= 0x00000002; break; } // case 17 case 25: { high_ = input.readDouble(); - + bitField0_ |= 0x00000004; break; } // case 25 case 33: { low_ = input.readDouble(); - + bitField0_ |= 0x00000008; break; } // case 33 case 41: { close_ = input.readDouble(); - + bitField0_ |= 0x00000010; break; } // case 41 case 48: { vol_ = input.readInt64(); - + bitField0_ |= 0x00000020; break; } // case 48 case 56: { ts_ = input.readInt64(); - + bitField0_ |= 0x00000040; break; } // case 56 default: { @@ -4736,6 +5009,7 @@ public Builder mergeFrom( } // finally return this; } + private int bitField0_; private java.lang.Object interval_ = ""; /** @@ -4778,11 +5052,9 @@ public java.lang.String getInterval() { */ public Builder setInterval( java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - + if (value == null) { throw new NullPointerException(); } interval_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -4791,8 +5063,8 @@ public Builder setInterval( * @return This builder for chaining. */ public Builder clearInterval() { - interval_ = getDefaultInstance().getInterval(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -4803,12 +5075,10 @@ public Builder clearInterval() { */ public Builder setIntervalBytes( com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); interval_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -4828,8 +5098,9 @@ public double getOpen() { * @return This builder for chaining. */ public Builder setOpen(double value) { - + open_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -4838,7 +5109,7 @@ public Builder setOpen(double value) { * @return This builder for chaining. */ public Builder clearOpen() { - + bitField0_ = (bitField0_ & ~0x00000002); open_ = 0D; onChanged(); return this; @@ -4859,8 +5130,9 @@ public double getHigh() { * @return This builder for chaining. */ public Builder setHigh(double value) { - + high_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -4869,7 +5141,7 @@ public Builder setHigh(double value) { * @return This builder for chaining. */ public Builder clearHigh() { - + bitField0_ = (bitField0_ & ~0x00000004); high_ = 0D; onChanged(); return this; @@ -4890,8 +5162,9 @@ public double getLow() { * @return This builder for chaining. */ public Builder setLow(double value) { - + low_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -4900,7 +5173,7 @@ public Builder setLow(double value) { * @return This builder for chaining. */ public Builder clearLow() { - + bitField0_ = (bitField0_ & ~0x00000008); low_ = 0D; onChanged(); return this; @@ -4921,8 +5194,9 @@ public double getClose() { * @return This builder for chaining. */ public Builder setClose(double value) { - + close_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -4931,7 +5205,7 @@ public Builder setClose(double value) { * @return This builder for chaining. */ public Builder clearClose() { - + bitField0_ = (bitField0_ & ~0x00000010); close_ = 0D; onChanged(); return this; @@ -4952,8 +5226,9 @@ public long getVol() { * @return This builder for chaining. */ public Builder setVol(long value) { - + vol_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } @@ -4962,7 +5237,7 @@ public Builder setVol(long value) { * @return This builder for chaining. */ public Builder clearVol() { - + bitField0_ = (bitField0_ & ~0x00000020); vol_ = 0L; onChanged(); return this; @@ -4983,8 +5258,9 @@ public long getTs() { * @return This builder for chaining. */ public Builder setTs(long value) { - + ts_ = value; + bitField0_ |= 0x00000040; onChanged(); return this; } @@ -4993,7 +5269,7 @@ public Builder setTs(long value) { * @return This builder for chaining. */ public Builder clearTs() { - + bitField0_ = (bitField0_ & ~0x00000040); ts_ = 0L; onChanged(); return this; @@ -5185,20 +5461,56 @@ public interface MarketFullFeedOrBuilder extends * @return The tsq. */ double getTsq(); - } - /** - * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.MarketFullFeed} - */ - public static final class MarketFullFeed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketFullFeed) - MarketFullFeedOrBuilder { - private static final long serialVersionUID = 0L; - // Use MarketFullFeed.newBuilder() to construct. - private MarketFullFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private MarketFullFeed() { + + /** + * double iep = 11; + * @return The iep. + */ + double getIep(); + + /** + * double rp = 12; + * @return The rp. + */ + double getRp(); + + /** + * int64 ieq = 13; + * @return The ieq. + */ + long getIeq(); + + /** + * int64 iiqTotal = 14; + * @return The iiqTotal. + */ + long getIiqTotal(); + + /** + * int64 iiqM = 15; + * @return The iiqM. + */ + long getIiqM(); + + /** + * bool casEligible = 16; + * @return The casEligible. + */ + boolean getCasEligible(); + } + /** + * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.MarketFullFeed} + */ + public static final class MarketFullFeed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketFullFeed) + MarketFullFeedOrBuilder { + private static final long serialVersionUID = 0L; + // Use MarketFullFeed.newBuilder() to construct. + private MarketFullFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MarketFullFeed() { } @java.lang.Override @@ -5208,11 +5520,6 @@ protected java.lang.Object newInstance( return new MarketFullFeed(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketFullFeed_descriptor; @@ -5226,6 +5533,7 @@ protected java.lang.Object newInstance( com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed.Builder.class); } + private int bitField0_; public static final int LTPC_FIELD_NUMBER = 1; private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_; /** @@ -5234,7 +5542,7 @@ protected java.lang.Object newInstance( */ @java.lang.Override public boolean hasLtpc() { - return ltpc_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1; @@ -5249,7 +5557,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC getLtp */ @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuilder getLtpcOrBuilder() { - return getLtpc(); + return ltpc_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance() : ltpc_; } public static final int MARKETLEVEL_FIELD_NUMBER = 2; @@ -5260,7 +5568,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild */ @java.lang.Override public boolean hasMarketLevel() { - return marketLevel_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketLevel marketLevel = 2; @@ -5275,7 +5583,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel */ @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevelOrBuilder getMarketLevelOrBuilder() { - return getMarketLevel(); + return marketLevel_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.getDefaultInstance() : marketLevel_; } public static final int OPTIONGREEKS_FIELD_NUMBER = 3; @@ -5286,7 +5594,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel */ @java.lang.Override public boolean hasOptionGreeks() { - return optionGreeks_ != null; + return ((bitField0_ & 0x00000004) != 0); } /** * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3; @@ -5301,7 +5609,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek */ @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeksOrBuilder getOptionGreeksOrBuilder() { - return getOptionGreeks(); + return optionGreeks_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.getDefaultInstance() : optionGreeks_; } public static final int MARKETOHLC_FIELD_NUMBER = 4; @@ -5312,7 +5620,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek */ @java.lang.Override public boolean hasMarketOHLC() { - return marketOHLC_ != null; + return ((bitField0_ & 0x00000008) != 0); } /** * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 4; @@ -5327,11 +5635,11 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC */ @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLCOrBuilder getMarketOHLCOrBuilder() { - return getMarketOHLC(); + return marketOHLC_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.getDefaultInstance() : marketOHLC_; } public static final int ATP_FIELD_NUMBER = 5; - private double atp_; + private double atp_ = 0D; /** *

      *avg traded price
@@ -5346,7 +5654,7 @@ public double getAtp() {
     }
 
     public static final int VTT_FIELD_NUMBER = 6;
-    private long vtt_;
+    private long vtt_ = 0L;
     /**
      * 
      *volume traded today
@@ -5361,7 +5669,7 @@ public long getVtt() {
     }
 
     public static final int OI_FIELD_NUMBER = 7;
-    private double oi_;
+    private double oi_ = 0D;
     /**
      * 
      *open interest
@@ -5376,7 +5684,7 @@ public double getOi() {
     }
 
     public static final int IV_FIELD_NUMBER = 8;
-    private double iv_;
+    private double iv_ = 0D;
     /**
      * 
      *implied volatility
@@ -5391,7 +5699,7 @@ public double getIv() {
     }
 
     public static final int TBQ_FIELD_NUMBER = 9;
-    private double tbq_;
+    private double tbq_ = 0D;
     /**
      * 
      *total buy quantity
@@ -5406,7 +5714,7 @@ public double getTbq() {
     }
 
     public static final int TSQ_FIELD_NUMBER = 10;
-    private double tsq_;
+    private double tsq_ = 0D;
     /**
      * 
      *total sell quantity
@@ -5420,6 +5728,72 @@ public double getTsq() {
       return tsq_;
     }
 
+    public static final int IEP_FIELD_NUMBER = 11;
+    private double iep_ = 0D;
+    /**
+     * double iep = 11;
+     * @return The iep.
+     */
+    @java.lang.Override
+    public double getIep() {
+      return iep_;
+    }
+
+    public static final int RP_FIELD_NUMBER = 12;
+    private double rp_ = 0D;
+    /**
+     * double rp = 12;
+     * @return The rp.
+     */
+    @java.lang.Override
+    public double getRp() {
+      return rp_;
+    }
+
+    public static final int IEQ_FIELD_NUMBER = 13;
+    private long ieq_ = 0L;
+    /**
+     * int64 ieq = 13;
+     * @return The ieq.
+     */
+    @java.lang.Override
+    public long getIeq() {
+      return ieq_;
+    }
+
+    public static final int IIQTOTAL_FIELD_NUMBER = 14;
+    private long iiqTotal_ = 0L;
+    /**
+     * int64 iiqTotal = 14;
+     * @return The iiqTotal.
+     */
+    @java.lang.Override
+    public long getIiqTotal() {
+      return iiqTotal_;
+    }
+
+    public static final int IIQM_FIELD_NUMBER = 15;
+    private long iiqM_ = 0L;
+    /**
+     * int64 iiqM = 15;
+     * @return The iiqM.
+     */
+    @java.lang.Override
+    public long getIiqM() {
+      return iiqM_;
+    }
+
+    public static final int CASELIGIBLE_FIELD_NUMBER = 16;
+    private boolean casEligible_ = false;
+    /**
+     * bool casEligible = 16;
+     * @return The casEligible.
+     */
+    @java.lang.Override
+    public boolean getCasEligible() {
+      return casEligible_;
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -5434,16 +5808,16 @@ public final boolean isInitialized() {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getLtpc());
       }
-      if (marketLevel_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getMarketLevel());
       }
-      if (optionGreeks_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         output.writeMessage(3, getOptionGreeks());
       }
-      if (marketOHLC_ != null) {
+      if (((bitField0_ & 0x00000008) != 0)) {
         output.writeMessage(4, getMarketOHLC());
       }
       if (java.lang.Double.doubleToRawLongBits(atp_) != 0) {
@@ -5464,6 +5838,24 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (java.lang.Double.doubleToRawLongBits(tsq_) != 0) {
         output.writeDouble(10, tsq_);
       }
+      if (java.lang.Double.doubleToRawLongBits(iep_) != 0) {
+        output.writeDouble(11, iep_);
+      }
+      if (java.lang.Double.doubleToRawLongBits(rp_) != 0) {
+        output.writeDouble(12, rp_);
+      }
+      if (ieq_ != 0L) {
+        output.writeInt64(13, ieq_);
+      }
+      if (iiqTotal_ != 0L) {
+        output.writeInt64(14, iiqTotal_);
+      }
+      if (iiqM_ != 0L) {
+        output.writeInt64(15, iiqM_);
+      }
+      if (casEligible_ != false) {
+        output.writeBool(16, casEligible_);
+      }
       getUnknownFields().writeTo(output);
     }
 
@@ -5473,19 +5865,19 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, getLtpc());
       }
-      if (marketLevel_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, getMarketLevel());
       }
-      if (optionGreeks_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(3, getOptionGreeks());
       }
-      if (marketOHLC_ != null) {
+      if (((bitField0_ & 0x00000008) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, getMarketOHLC());
       }
@@ -5513,6 +5905,30 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeDoubleSize(10, tsq_);
       }
+      if (java.lang.Double.doubleToRawLongBits(iep_) != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(11, iep_);
+      }
+      if (java.lang.Double.doubleToRawLongBits(rp_) != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(12, rp_);
+      }
+      if (ieq_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(13, ieq_);
+      }
+      if (iiqTotal_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(14, iiqTotal_);
+      }
+      if (iiqM_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(15, iiqM_);
+      }
+      if (casEligible_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(16, casEligible_);
+      }
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -5565,6 +5981,20 @@ public boolean equals(final java.lang.Object obj) {
       if (java.lang.Double.doubleToLongBits(getTsq())
           != java.lang.Double.doubleToLongBits(
               other.getTsq())) return false;
+      if (java.lang.Double.doubleToLongBits(getIep())
+          != java.lang.Double.doubleToLongBits(
+              other.getIep())) return false;
+      if (java.lang.Double.doubleToLongBits(getRp())
+          != java.lang.Double.doubleToLongBits(
+              other.getRp())) return false;
+      if (getIeq()
+          != other.getIeq()) return false;
+      if (getIiqTotal()
+          != other.getIiqTotal()) return false;
+      if (getIiqM()
+          != other.getIiqM()) return false;
+      if (getCasEligible()
+          != other.getCasEligible()) return false;
       if (!getUnknownFields().equals(other.getUnknownFields())) return false;
       return true;
     }
@@ -5610,6 +6040,24 @@ public int hashCode() {
       hash = (37 * hash) + TSQ_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
           java.lang.Double.doubleToLongBits(getTsq()));
+      hash = (37 * hash) + IEP_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          java.lang.Double.doubleToLongBits(getIep()));
+      hash = (37 * hash) + RP_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          java.lang.Double.doubleToLongBits(getRp()));
+      hash = (37 * hash) + IEQ_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getIeq());
+      hash = (37 * hash) + IIQTOTAL_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getIiqTotal());
+      hash = (37 * hash) + IIQM_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getIiqM());
+      hash = (37 * hash) + CASELIGIBLE_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getCasEligible());
       hash = (29 * hash) + getUnknownFields().hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -5659,11 +6107,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Mark
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -5727,53 +6177,59 @@ public static final class Builder extends
 
       // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getLtpcFieldBuilder();
+          getMarketLevelFieldBuilder();
+          getOptionGreeksFieldBuilder();
+          getMarketOHLCFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-        } else {
-          ltpc_ = null;
+        bitField0_ = 0;
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-        if (marketLevelBuilder_ == null) {
-          marketLevel_ = null;
-        } else {
-          marketLevel_ = null;
+        marketLevel_ = null;
+        if (marketLevelBuilder_ != null) {
+          marketLevelBuilder_.dispose();
           marketLevelBuilder_ = null;
         }
-        if (optionGreeksBuilder_ == null) {
-          optionGreeks_ = null;
-        } else {
-          optionGreeks_ = null;
+        optionGreeks_ = null;
+        if (optionGreeksBuilder_ != null) {
+          optionGreeksBuilder_.dispose();
           optionGreeksBuilder_ = null;
         }
-        if (marketOHLCBuilder_ == null) {
-          marketOHLC_ = null;
-        } else {
-          marketOHLC_ = null;
+        marketOHLC_ = null;
+        if (marketOHLCBuilder_ != null) {
+          marketOHLCBuilder_.dispose();
           marketOHLCBuilder_ = null;
         }
         atp_ = 0D;
-
         vtt_ = 0L;
-
         oi_ = 0D;
-
         iv_ = 0D;
-
         tbq_ = 0D;
-
         tsq_ = 0D;
-
+        iep_ = 0D;
+        rp_ = 0D;
+        ieq_ = 0L;
+        iiqTotal_ = 0L;
+        iiqM_ = 0L;
+        casEligible_ = false;
         return this;
       }
 
@@ -5800,34 +6256,75 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullF
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed(this);
-        if (ltpcBuilder_ == null) {
-          result.ltpc_ = ltpc_;
-        } else {
-          result.ltpc_ = ltpcBuilder_.build();
+        if (bitField0_ != 0) { buildPartial0(result); }
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.ltpc_ = ltpcBuilder_ == null
+              ? ltpc_
+              : ltpcBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
-        if (marketLevelBuilder_ == null) {
-          result.marketLevel_ = marketLevel_;
-        } else {
-          result.marketLevel_ = marketLevelBuilder_.build();
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.marketLevel_ = marketLevelBuilder_ == null
+              ? marketLevel_
+              : marketLevelBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
-        if (optionGreeksBuilder_ == null) {
-          result.optionGreeks_ = optionGreeks_;
-        } else {
-          result.optionGreeks_ = optionGreeksBuilder_.build();
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.optionGreeks_ = optionGreeksBuilder_ == null
+              ? optionGreeks_
+              : optionGreeksBuilder_.build();
+          to_bitField0_ |= 0x00000004;
         }
-        if (marketOHLCBuilder_ == null) {
-          result.marketOHLC_ = marketOHLC_;
-        } else {
-          result.marketOHLC_ = marketOHLCBuilder_.build();
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          result.marketOHLC_ = marketOHLCBuilder_ == null
+              ? marketOHLC_
+              : marketOHLCBuilder_.build();
+          to_bitField0_ |= 0x00000008;
         }
-        result.atp_ = atp_;
-        result.vtt_ = vtt_;
-        result.oi_ = oi_;
-        result.iv_ = iv_;
-        result.tbq_ = tbq_;
-        result.tsq_ = tsq_;
-        onBuilt();
-        return result;
+        if (((from_bitField0_ & 0x00000010) != 0)) {
+          result.atp_ = atp_;
+        }
+        if (((from_bitField0_ & 0x00000020) != 0)) {
+          result.vtt_ = vtt_;
+        }
+        if (((from_bitField0_ & 0x00000040) != 0)) {
+          result.oi_ = oi_;
+        }
+        if (((from_bitField0_ & 0x00000080) != 0)) {
+          result.iv_ = iv_;
+        }
+        if (((from_bitField0_ & 0x00000100) != 0)) {
+          result.tbq_ = tbq_;
+        }
+        if (((from_bitField0_ & 0x00000200) != 0)) {
+          result.tsq_ = tsq_;
+        }
+        if (((from_bitField0_ & 0x00000400) != 0)) {
+          result.iep_ = iep_;
+        }
+        if (((from_bitField0_ & 0x00000800) != 0)) {
+          result.rp_ = rp_;
+        }
+        if (((from_bitField0_ & 0x00001000) != 0)) {
+          result.ieq_ = ieq_;
+        }
+        if (((from_bitField0_ & 0x00002000) != 0)) {
+          result.iiqTotal_ = iiqTotal_;
+        }
+        if (((from_bitField0_ & 0x00004000) != 0)) {
+          result.iiqM_ = iiqM_;
+        }
+        if (((from_bitField0_ & 0x00008000) != 0)) {
+          result.casEligible_ = casEligible_;
+        }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -5904,6 +6401,24 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData
         if (other.getTsq() != 0D) {
           setTsq(other.getTsq());
         }
+        if (other.getIep() != 0D) {
+          setIep(other.getIep());
+        }
+        if (other.getRp() != 0D) {
+          setRp(other.getRp());
+        }
+        if (other.getIeq() != 0L) {
+          setIeq(other.getIeq());
+        }
+        if (other.getIiqTotal() != 0L) {
+          setIiqTotal(other.getIiqTotal());
+        }
+        if (other.getIiqM() != 0L) {
+          setIiqM(other.getIiqM());
+        }
+        if (other.getCasEligible() != false) {
+          setCasEligible(other.getCasEligible());
+        }
         this.mergeUnknownFields(other.getUnknownFields());
         onChanged();
         return this;
@@ -5934,60 +6449,90 @@ public Builder mergeFrom(
                 input.readMessage(
                     getLtpcFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000001;
                 break;
               } // case 10
               case 18: {
                 input.readMessage(
                     getMarketLevelFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000002;
                 break;
               } // case 18
               case 26: {
                 input.readMessage(
                     getOptionGreeksFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000004;
                 break;
               } // case 26
               case 34: {
                 input.readMessage(
                     getMarketOHLCFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000008;
                 break;
               } // case 34
               case 41: {
                 atp_ = input.readDouble();
-
+                bitField0_ |= 0x00000010;
                 break;
               } // case 41
               case 48: {
                 vtt_ = input.readInt64();
-
+                bitField0_ |= 0x00000020;
                 break;
               } // case 48
               case 57: {
                 oi_ = input.readDouble();
-
+                bitField0_ |= 0x00000040;
                 break;
               } // case 57
               case 65: {
                 iv_ = input.readDouble();
-
+                bitField0_ |= 0x00000080;
                 break;
               } // case 65
               case 73: {
                 tbq_ = input.readDouble();
-
+                bitField0_ |= 0x00000100;
                 break;
               } // case 73
               case 81: {
                 tsq_ = input.readDouble();
-
+                bitField0_ |= 0x00000200;
                 break;
               } // case 81
+              case 89: {
+                iep_ = input.readDouble();
+                bitField0_ |= 0x00000400;
+                break;
+              } // case 89
+              case 97: {
+                rp_ = input.readDouble();
+                bitField0_ |= 0x00000800;
+                break;
+              } // case 97
+              case 104: {
+                ieq_ = input.readInt64();
+                bitField0_ |= 0x00001000;
+                break;
+              } // case 104
+              case 112: {
+                iiqTotal_ = input.readInt64();
+                bitField0_ |= 0x00002000;
+                break;
+              } // case 112
+              case 120: {
+                iiqM_ = input.readInt64();
+                bitField0_ |= 0x00004000;
+                break;
+              } // case 120
+              case 128: {
+                casEligible_ = input.readBool();
+                bitField0_ |= 0x00008000;
+                break;
+              } // case 128
               default: {
                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                   done = true; // was an endgroup tag
@@ -6003,6 +6548,7 @@ public Builder mergeFrom(
         } // finally
         return this;
       }
+      private int bitField0_;
 
       private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
       private com.google.protobuf.SingleFieldBuilderV3<
@@ -6012,7 +6558,7 @@ public Builder mergeFrom(
        * @return Whether the ltpc field is set.
        */
       public boolean hasLtpc() {
-        return ltpcBuilder_ != null || ltpc_ != null;
+        return ((bitField0_ & 0x00000001) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -6034,11 +6580,11 @@ public Builder setLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
             throw new NullPointerException();
           }
           ltpc_ = value;
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -6048,11 +6594,11 @@ public Builder setLtpc(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder builderForValue) {
         if (ltpcBuilder_ == null) {
           ltpc_ = builderForValue.build();
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -6060,38 +6606,40 @@ public Builder setLtpc(
        */
       public Builder mergeLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC value) {
         if (ltpcBuilder_ == null) {
-          if (ltpc_ != null) {
-            ltpc_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.newBuilder(ltpc_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000001) != 0) &&
+            ltpc_ != null &&
+            ltpc_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance()) {
+            getLtpcBuilder().mergeFrom(value);
           } else {
             ltpc_ = value;
           }
-          onChanged();
         } else {
           ltpcBuilder_.mergeFrom(value);
         }
-
+        if (ltpc_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public Builder clearLtpc() {
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-          onChanged();
-        } else {
-          ltpc_ = null;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder getLtpcBuilder() {
-        
+        bitField0_ |= 0x00000001;
         onChanged();
         return getLtpcFieldBuilder().getBuilder();
       }
@@ -6131,7 +6679,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
        * @return Whether the marketLevel field is set.
        */
       public boolean hasMarketLevel() {
-        return marketLevelBuilder_ != null || marketLevel_ != null;
+        return ((bitField0_ & 0x00000002) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketLevel marketLevel = 2;
@@ -6153,11 +6701,11 @@ public Builder setMarketLevel(com.upstox.marketdatafeederv3udapi.rpc.proto.Marke
             throw new NullPointerException();
           }
           marketLevel_ = value;
-          onChanged();
         } else {
           marketLevelBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -6167,11 +6715,11 @@ public Builder setMarketLevel(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.Builder builderForValue) {
         if (marketLevelBuilder_ == null) {
           marketLevel_ = builderForValue.build();
-          onChanged();
         } else {
           marketLevelBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -6179,38 +6727,40 @@ public Builder setMarketLevel(
        */
       public Builder mergeMarketLevel(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel value) {
         if (marketLevelBuilder_ == null) {
-          if (marketLevel_ != null) {
-            marketLevel_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.newBuilder(marketLevel_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000002) != 0) &&
+            marketLevel_ != null &&
+            marketLevel_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.getDefaultInstance()) {
+            getMarketLevelBuilder().mergeFrom(value);
           } else {
             marketLevel_ = value;
           }
-          onChanged();
         } else {
           marketLevelBuilder_.mergeFrom(value);
         }
-
+        if (marketLevel_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketLevel marketLevel = 2;
        */
       public Builder clearMarketLevel() {
-        if (marketLevelBuilder_ == null) {
-          marketLevel_ = null;
-          onChanged();
-        } else {
-          marketLevel_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        marketLevel_ = null;
+        if (marketLevelBuilder_ != null) {
+          marketLevelBuilder_.dispose();
           marketLevelBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketLevel marketLevel = 2;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel.Builder getMarketLevelBuilder() {
-        
+        bitField0_ |= 0x00000002;
         onChanged();
         return getMarketLevelFieldBuilder().getBuilder();
       }
@@ -6250,7 +6800,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketLevel
        * @return Whether the optionGreeks field is set.
        */
       public boolean hasOptionGreeks() {
-        return optionGreeksBuilder_ != null || optionGreeks_ != null;
+        return ((bitField0_ & 0x00000004) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
@@ -6272,11 +6822,11 @@ public Builder setOptionGreeks(com.upstox.marketdatafeederv3udapi.rpc.proto.Mark
             throw new NullPointerException();
           }
           optionGreeks_ = value;
-          onChanged();
         } else {
           optionGreeksBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -6286,11 +6836,11 @@ public Builder setOptionGreeks(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.Builder builderForValue) {
         if (optionGreeksBuilder_ == null) {
           optionGreeks_ = builderForValue.build();
-          onChanged();
         } else {
           optionGreeksBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -6298,38 +6848,40 @@ public Builder setOptionGreeks(
        */
       public Builder mergeOptionGreeks(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks value) {
         if (optionGreeksBuilder_ == null) {
-          if (optionGreeks_ != null) {
-            optionGreeks_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.newBuilder(optionGreeks_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000004) != 0) &&
+            optionGreeks_ != null &&
+            optionGreeks_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.getDefaultInstance()) {
+            getOptionGreeksBuilder().mergeFrom(value);
           } else {
             optionGreeks_ = value;
           }
-          onChanged();
         } else {
           optionGreeksBuilder_.mergeFrom(value);
         }
-
+        if (optionGreeks_ != null) {
+          bitField0_ |= 0x00000004;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
        */
       public Builder clearOptionGreeks() {
-        if (optionGreeksBuilder_ == null) {
-          optionGreeks_ = null;
-          onChanged();
-        } else {
-          optionGreeks_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        optionGreeks_ = null;
+        if (optionGreeksBuilder_ != null) {
+          optionGreeksBuilder_.dispose();
           optionGreeksBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.Builder getOptionGreeksBuilder() {
-        
+        bitField0_ |= 0x00000004;
         onChanged();
         return getOptionGreeksFieldBuilder().getBuilder();
       }
@@ -6369,7 +6921,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek
        * @return Whether the marketOHLC field is set.
        */
       public boolean hasMarketOHLC() {
-        return marketOHLCBuilder_ != null || marketOHLC_ != null;
+        return ((bitField0_ & 0x00000008) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 4;
@@ -6391,11 +6943,11 @@ public Builder setMarketOHLC(com.upstox.marketdatafeederv3udapi.rpc.proto.Market
             throw new NullPointerException();
           }
           marketOHLC_ = value;
-          onChanged();
         } else {
           marketOHLCBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -6405,11 +6957,11 @@ public Builder setMarketOHLC(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.Builder builderForValue) {
         if (marketOHLCBuilder_ == null) {
           marketOHLC_ = builderForValue.build();
-          onChanged();
         } else {
           marketOHLCBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -6417,38 +6969,40 @@ public Builder setMarketOHLC(
        */
       public Builder mergeMarketOHLC(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC value) {
         if (marketOHLCBuilder_ == null) {
-          if (marketOHLC_ != null) {
-            marketOHLC_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.newBuilder(marketOHLC_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000008) != 0) &&
+            marketOHLC_ != null &&
+            marketOHLC_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.getDefaultInstance()) {
+            getMarketOHLCBuilder().mergeFrom(value);
           } else {
             marketOHLC_ = value;
           }
-          onChanged();
         } else {
           marketOHLCBuilder_.mergeFrom(value);
         }
-
+        if (marketOHLC_ != null) {
+          bitField0_ |= 0x00000008;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 4;
        */
       public Builder clearMarketOHLC() {
-        if (marketOHLCBuilder_ == null) {
-          marketOHLC_ = null;
-          onChanged();
-        } else {
-          marketOHLC_ = null;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        marketOHLC_ = null;
+        if (marketOHLCBuilder_ != null) {
+          marketOHLCBuilder_.dispose();
           marketOHLCBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 4;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.Builder getMarketOHLCBuilder() {
-        
+        bitField0_ |= 0x00000008;
         onChanged();
         return getMarketOHLCFieldBuilder().getBuilder();
       }
@@ -6503,8 +7057,9 @@ public double getAtp() {
        * @return This builder for chaining.
        */
       public Builder setAtp(double value) {
-        
+
         atp_ = value;
+        bitField0_ |= 0x00000010;
         onChanged();
         return this;
       }
@@ -6517,7 +7072,7 @@ public Builder setAtp(double value) {
        * @return This builder for chaining.
        */
       public Builder clearAtp() {
-        
+        bitField0_ = (bitField0_ & ~0x00000010);
         atp_ = 0D;
         onChanged();
         return this;
@@ -6546,8 +7101,9 @@ public long getVtt() {
        * @return This builder for chaining.
        */
       public Builder setVtt(long value) {
-        
+
         vtt_ = value;
+        bitField0_ |= 0x00000020;
         onChanged();
         return this;
       }
@@ -6560,7 +7116,7 @@ public Builder setVtt(long value) {
        * @return This builder for chaining.
        */
       public Builder clearVtt() {
-        
+        bitField0_ = (bitField0_ & ~0x00000020);
         vtt_ = 0L;
         onChanged();
         return this;
@@ -6589,8 +7145,9 @@ public double getOi() {
        * @return This builder for chaining.
        */
       public Builder setOi(double value) {
-        
+
         oi_ = value;
+        bitField0_ |= 0x00000040;
         onChanged();
         return this;
       }
@@ -6603,7 +7160,7 @@ public Builder setOi(double value) {
        * @return This builder for chaining.
        */
       public Builder clearOi() {
-        
+        bitField0_ = (bitField0_ & ~0x00000040);
         oi_ = 0D;
         onChanged();
         return this;
@@ -6632,8 +7189,9 @@ public double getIv() {
        * @return This builder for chaining.
        */
       public Builder setIv(double value) {
-        
+
         iv_ = value;
+        bitField0_ |= 0x00000080;
         onChanged();
         return this;
       }
@@ -6646,7 +7204,7 @@ public Builder setIv(double value) {
        * @return This builder for chaining.
        */
       public Builder clearIv() {
-        
+        bitField0_ = (bitField0_ & ~0x00000080);
         iv_ = 0D;
         onChanged();
         return this;
@@ -6675,8 +7233,9 @@ public double getTbq() {
        * @return This builder for chaining.
        */
       public Builder setTbq(double value) {
-        
+
         tbq_ = value;
+        bitField0_ |= 0x00000100;
         onChanged();
         return this;
       }
@@ -6689,7 +7248,7 @@ public Builder setTbq(double value) {
        * @return This builder for chaining.
        */
       public Builder clearTbq() {
-        
+        bitField0_ = (bitField0_ & ~0x00000100);
         tbq_ = 0D;
         onChanged();
         return this;
@@ -6718,8 +7277,9 @@ public double getTsq() {
        * @return This builder for chaining.
        */
       public Builder setTsq(double value) {
-        
+
         tsq_ = value;
+        bitField0_ |= 0x00000200;
         onChanged();
         return this;
       }
@@ -6732,12 +7292,204 @@ public Builder setTsq(double value) {
        * @return This builder for chaining.
        */
       public Builder clearTsq() {
-        
+        bitField0_ = (bitField0_ & ~0x00000200);
         tsq_ = 0D;
         onChanged();
         return this;
       }
-      @java.lang.Override
+
+      private double iep_ ;
+      /**
+       * double iep = 11;
+       * @return The iep.
+       */
+      @java.lang.Override
+      public double getIep() {
+        return iep_;
+      }
+      /**
+       * double iep = 11;
+       * @param value The iep to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIep(double value) {
+
+        iep_ = value;
+        bitField0_ |= 0x00000400;
+        onChanged();
+        return this;
+      }
+      /**
+       * double iep = 11;
+       * @return This builder for chaining.
+       */
+      public Builder clearIep() {
+        bitField0_ = (bitField0_ & ~0x00000400);
+        iep_ = 0D;
+        onChanged();
+        return this;
+      }
+
+      private double rp_ ;
+      /**
+       * double rp = 12;
+       * @return The rp.
+       */
+      @java.lang.Override
+      public double getRp() {
+        return rp_;
+      }
+      /**
+       * double rp = 12;
+       * @param value The rp to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRp(double value) {
+
+        rp_ = value;
+        bitField0_ |= 0x00000800;
+        onChanged();
+        return this;
+      }
+      /**
+       * double rp = 12;
+       * @return This builder for chaining.
+       */
+      public Builder clearRp() {
+        bitField0_ = (bitField0_ & ~0x00000800);
+        rp_ = 0D;
+        onChanged();
+        return this;
+      }
+
+      private long ieq_ ;
+      /**
+       * int64 ieq = 13;
+       * @return The ieq.
+       */
+      @java.lang.Override
+      public long getIeq() {
+        return ieq_;
+      }
+      /**
+       * int64 ieq = 13;
+       * @param value The ieq to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIeq(long value) {
+
+        ieq_ = value;
+        bitField0_ |= 0x00001000;
+        onChanged();
+        return this;
+      }
+      /**
+       * int64 ieq = 13;
+       * @return This builder for chaining.
+       */
+      public Builder clearIeq() {
+        bitField0_ = (bitField0_ & ~0x00001000);
+        ieq_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long iiqTotal_ ;
+      /**
+       * int64 iiqTotal = 14;
+       * @return The iiqTotal.
+       */
+      @java.lang.Override
+      public long getIiqTotal() {
+        return iiqTotal_;
+      }
+      /**
+       * int64 iiqTotal = 14;
+       * @param value The iiqTotal to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIiqTotal(long value) {
+
+        iiqTotal_ = value;
+        bitField0_ |= 0x00002000;
+        onChanged();
+        return this;
+      }
+      /**
+       * int64 iiqTotal = 14;
+       * @return This builder for chaining.
+       */
+      public Builder clearIiqTotal() {
+        bitField0_ = (bitField0_ & ~0x00002000);
+        iiqTotal_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long iiqM_ ;
+      /**
+       * int64 iiqM = 15;
+       * @return The iiqM.
+       */
+      @java.lang.Override
+      public long getIiqM() {
+        return iiqM_;
+      }
+      /**
+       * int64 iiqM = 15;
+       * @param value The iiqM to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIiqM(long value) {
+
+        iiqM_ = value;
+        bitField0_ |= 0x00004000;
+        onChanged();
+        return this;
+      }
+      /**
+       * int64 iiqM = 15;
+       * @return This builder for chaining.
+       */
+      public Builder clearIiqM() {
+        bitField0_ = (bitField0_ & ~0x00004000);
+        iiqM_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean casEligible_ ;
+      /**
+       * bool casEligible = 16;
+       * @return The casEligible.
+       */
+      @java.lang.Override
+      public boolean getCasEligible() {
+        return casEligible_;
+      }
+      /**
+       * bool casEligible = 16;
+       * @param value The casEligible to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCasEligible(boolean value) {
+
+        casEligible_ = value;
+        bitField0_ |= 0x00008000;
+        onChanged();
+        return this;
+      }
+      /**
+       * bool casEligible = 16;
+       * @return This builder for chaining.
+       */
+      public Builder clearCasEligible() {
+        bitField0_ = (bitField0_ & ~0x00008000);
+        casEligible_ = false;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
         return super.setUnknownFields(unknownFields);
@@ -6857,11 +7609,6 @@ protected java.lang.Object newInstance(
       return new IndexFullFeed();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_IndexFullFeed_descriptor;
@@ -6875,6 +7622,7 @@ protected java.lang.Object newInstance(
               com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed.Builder.class);
     }
 
+    private int bitField0_;
     public static final int LTPC_FIELD_NUMBER = 1;
     private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
     /**
@@ -6883,7 +7631,7 @@ protected java.lang.Object newInstance(
      */
     @java.lang.Override
     public boolean hasLtpc() {
-      return ltpc_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -6898,7 +7646,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC getLtp
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuilder getLtpcOrBuilder() {
-      return getLtpc();
+      return ltpc_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance() : ltpc_;
     }
 
     public static final int MARKETOHLC_FIELD_NUMBER = 2;
@@ -6909,7 +7657,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
      */
     @java.lang.Override
     public boolean hasMarketOHLC() {
-      return marketOHLC_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 2;
@@ -6924,7 +7672,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLCOrBuilder getMarketOHLCOrBuilder() {
-      return getMarketOHLC();
+      return marketOHLC_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.getDefaultInstance() : marketOHLC_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -6941,10 +7689,10 @@ public final boolean isInitialized() {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getLtpc());
       }
-      if (marketOHLC_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getMarketOHLC());
       }
       getUnknownFields().writeTo(output);
@@ -6956,11 +7704,11 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, getLtpc());
       }
-      if (marketOHLC_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, getMarketOHLC());
       }
@@ -7057,11 +7805,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Inde
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -7125,27 +7875,33 @@ public static final class Builder extends
 
       // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getLtpcFieldBuilder();
+          getMarketOHLCFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-        } else {
-          ltpc_ = null;
+        bitField0_ = 0;
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-        if (marketOHLCBuilder_ == null) {
-          marketOHLC_ = null;
-        } else {
-          marketOHLC_ = null;
+        marketOHLC_ = null;
+        if (marketOHLCBuilder_ != null) {
+          marketOHLCBuilder_.dispose();
           marketOHLCBuilder_ = null;
         }
         return this;
@@ -7174,20 +7930,29 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFe
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed(this);
-        if (ltpcBuilder_ == null) {
-          result.ltpc_ = ltpc_;
-        } else {
-          result.ltpc_ = ltpcBuilder_.build();
-        }
-        if (marketOHLCBuilder_ == null) {
-          result.marketOHLC_ = marketOHLC_;
-        } else {
-          result.marketOHLC_ = marketOHLCBuilder_.build();
-        }
+        if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeed result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.ltpc_ = ltpcBuilder_ == null
+              ? ltpc_
+              : ltpcBuilder_.build();
+          to_bitField0_ |= 0x00000001;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.marketOHLC_ = marketOHLCBuilder_ == null
+              ? marketOHLC_
+              : marketOHLCBuilder_.build();
+          to_bitField0_ |= 0x00000002;
+        }
+        result.bitField0_ |= to_bitField0_;
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -7268,14 +8033,14 @@ public Builder mergeFrom(
                 input.readMessage(
                     getLtpcFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000001;
                 break;
               } // case 10
               case 18: {
                 input.readMessage(
                     getMarketOHLCFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000002;
                 break;
               } // case 18
               default: {
@@ -7293,6 +8058,7 @@ public Builder mergeFrom(
         } // finally
         return this;
       }
+      private int bitField0_;
 
       private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
       private com.google.protobuf.SingleFieldBuilderV3<
@@ -7302,7 +8068,7 @@ public Builder mergeFrom(
        * @return Whether the ltpc field is set.
        */
       public boolean hasLtpc() {
-        return ltpcBuilder_ != null || ltpc_ != null;
+        return ((bitField0_ & 0x00000001) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -7324,11 +8090,11 @@ public Builder setLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
             throw new NullPointerException();
           }
           ltpc_ = value;
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -7338,11 +8104,11 @@ public Builder setLtpc(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder builderForValue) {
         if (ltpcBuilder_ == null) {
           ltpc_ = builderForValue.build();
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -7350,38 +8116,40 @@ public Builder setLtpc(
        */
       public Builder mergeLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC value) {
         if (ltpcBuilder_ == null) {
-          if (ltpc_ != null) {
-            ltpc_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.newBuilder(ltpc_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000001) != 0) &&
+            ltpc_ != null &&
+            ltpc_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance()) {
+            getLtpcBuilder().mergeFrom(value);
           } else {
             ltpc_ = value;
           }
-          onChanged();
         } else {
           ltpcBuilder_.mergeFrom(value);
         }
-
+        if (ltpc_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public Builder clearLtpc() {
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-          onChanged();
-        } else {
-          ltpc_ = null;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder getLtpcBuilder() {
-        
+        bitField0_ |= 0x00000001;
         onChanged();
         return getLtpcFieldBuilder().getBuilder();
       }
@@ -7421,7 +8189,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
        * @return Whether the marketOHLC field is set.
        */
       public boolean hasMarketOHLC() {
-        return marketOHLCBuilder_ != null || marketOHLC_ != null;
+        return ((bitField0_ & 0x00000002) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 2;
@@ -7443,11 +8211,11 @@ public Builder setMarketOHLC(com.upstox.marketdatafeederv3udapi.rpc.proto.Market
             throw new NullPointerException();
           }
           marketOHLC_ = value;
-          onChanged();
         } else {
           marketOHLCBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -7457,11 +8225,11 @@ public Builder setMarketOHLC(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.Builder builderForValue) {
         if (marketOHLCBuilder_ == null) {
           marketOHLC_ = builderForValue.build();
-          onChanged();
         } else {
           marketOHLCBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -7469,38 +8237,40 @@ public Builder setMarketOHLC(
        */
       public Builder mergeMarketOHLC(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC value) {
         if (marketOHLCBuilder_ == null) {
-          if (marketOHLC_ != null) {
-            marketOHLC_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.newBuilder(marketOHLC_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000002) != 0) &&
+            marketOHLC_ != null &&
+            marketOHLC_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.getDefaultInstance()) {
+            getMarketOHLCBuilder().mergeFrom(value);
           } else {
             marketOHLC_ = value;
           }
-          onChanged();
         } else {
           marketOHLCBuilder_.mergeFrom(value);
         }
-
+        if (marketOHLC_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 2;
        */
       public Builder clearMarketOHLC() {
-        if (marketOHLCBuilder_ == null) {
-          marketOHLC_ = null;
-          onChanged();
-        } else {
-          marketOHLC_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        marketOHLC_ = null;
+        if (marketOHLCBuilder_ != null) {
+          marketOHLCBuilder_.dispose();
           marketOHLCBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketOHLC marketOHLC = 2;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketOHLC.Builder getMarketOHLCBuilder() {
-        
+        bitField0_ |= 0x00000002;
         onChanged();
         return getMarketOHLCFieldBuilder().getBuilder();
       }
@@ -7629,7 +8399,7 @@ public interface FullFeedOrBuilder extends
      */
     com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFeedOrBuilder getIndexFFOrBuilder();
 
-    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed.FullFeedUnionCase getFullFeedUnionCase();
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed.FullFeedUnionCase getFullFeedUnionCase();
   }
   /**
    * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.FullFeed}
@@ -7653,11 +8423,6 @@ protected java.lang.Object newInstance(
       return new FullFeed();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FullFeed_descriptor;
@@ -7672,6 +8437,7 @@ protected java.lang.Object newInstance(
     }
 
     private int fullFeedUnionCase_ = 0;
+    @SuppressWarnings("serial")
     private java.lang.Object fullFeedUnion_;
     public enum FullFeedUnionCase
         implements com.google.protobuf.Internal.EnumLite,
@@ -7911,11 +8677,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Full
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -7990,6 +8758,7 @@ private Builder(
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         if (marketFFBuilder_ != null) {
           marketFFBuilder_.clear();
         }
@@ -8024,25 +8793,29 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed bu
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed(this);
-        if (fullFeedUnionCase_ == 1) {
-          if (marketFFBuilder_ == null) {
-            result.fullFeedUnion_ = fullFeedUnion_;
-          } else {
-            result.fullFeedUnion_ = marketFFBuilder_.build();
-          }
-        }
-        if (fullFeedUnionCase_ == 2) {
-          if (indexFFBuilder_ == null) {
-            result.fullFeedUnion_ = fullFeedUnion_;
-          } else {
-            result.fullFeedUnion_ = indexFFBuilder_.build();
-          }
-        }
-        result.fullFeedUnionCase_ = fullFeedUnionCase_;
+        if (bitField0_ != 0) { buildPartial0(result); }
+        buildPartialOneofs(result);
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed result) {
+        int from_bitField0_ = bitField0_;
+      }
+
+      private void buildPartialOneofs(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeed result) {
+        result.fullFeedUnionCase_ = fullFeedUnionCase_;
+        result.fullFeedUnion_ = this.fullFeedUnion_;
+        if (fullFeedUnionCase_ == 1 &&
+            marketFFBuilder_ != null) {
+          result.fullFeedUnion_ = marketFFBuilder_.build();
+        }
+        if (fullFeedUnionCase_ == 2 &&
+            indexFFBuilder_ != null) {
+          result.fullFeedUnion_ = indexFFBuilder_.build();
+        }
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -8170,6 +8943,7 @@ public Builder clearFullFeedUnion() {
         return this;
       }
 
+      private int bitField0_;
 
       private com.google.protobuf.SingleFieldBuilderV3<
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeed.Builder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullFeedOrBuilder> marketFFBuilder_;
@@ -8309,7 +9083,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketFullF
           fullFeedUnion_ = null;
         }
         fullFeedUnionCase_ = 1;
-        onChanged();;
+        onChanged();
         return marketFFBuilder_;
       }
 
@@ -8451,7 +9225,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.IndexFullFe
           fullFeedUnion_ = null;
         }
         fullFeedUnionCase_ = 2;
-        onChanged();;
+        onChanged();
         return indexFFBuilder_;
       }
       @java.lang.Override
@@ -8619,11 +9393,6 @@ protected java.lang.Object newInstance(
       return new FirstLevelWithGreeks();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FirstLevelWithGreeks_descriptor;
@@ -8637,6 +9406,7 @@ protected java.lang.Object newInstance(
               com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks.Builder.class);
     }
 
+    private int bitField0_;
     public static final int LTPC_FIELD_NUMBER = 1;
     private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
     /**
@@ -8645,7 +9415,7 @@ protected java.lang.Object newInstance(
      */
     @java.lang.Override
     public boolean hasLtpc() {
-      return ltpc_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -8660,7 +9430,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC getLtp
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuilder getLtpcOrBuilder() {
-      return getLtpc();
+      return ltpc_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance() : ltpc_;
     }
 
     public static final int FIRSTDEPTH_FIELD_NUMBER = 2;
@@ -8671,7 +9441,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
      */
     @java.lang.Override
     public boolean hasFirstDepth() {
-      return firstDepth_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote firstDepth = 2;
@@ -8686,7 +9456,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote getFi
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.QuoteOrBuilder getFirstDepthOrBuilder() {
-      return getFirstDepth();
+      return firstDepth_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.getDefaultInstance() : firstDepth_;
     }
 
     public static final int OPTIONGREEKS_FIELD_NUMBER = 3;
@@ -8697,7 +9467,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.QuoteOrBuil
      */
     @java.lang.Override
     public boolean hasOptionGreeks() {
-      return optionGreeks_ != null;
+      return ((bitField0_ & 0x00000004) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
@@ -8712,11 +9482,11 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreek
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeksOrBuilder getOptionGreeksOrBuilder() {
-      return getOptionGreeks();
+      return optionGreeks_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.getDefaultInstance() : optionGreeks_;
     }
 
     public static final int VTT_FIELD_NUMBER = 4;
-    private long vtt_;
+    private long vtt_ = 0L;
     /**
      * 
      *volume traded today
@@ -8731,7 +9501,7 @@ public long getVtt() {
     }
 
     public static final int OI_FIELD_NUMBER = 5;
-    private double oi_;
+    private double oi_ = 0D;
     /**
      * 
      *open interest
@@ -8746,7 +9516,7 @@ public double getOi() {
     }
 
     public static final int IV_FIELD_NUMBER = 6;
-    private double iv_;
+    private double iv_ = 0D;
     /**
      * 
      *implied volatility
@@ -8774,13 +9544,13 @@ public final boolean isInitialized() {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getLtpc());
       }
-      if (firstDepth_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getFirstDepth());
       }
-      if (optionGreeks_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         output.writeMessage(3, getOptionGreeks());
       }
       if (vtt_ != 0L) {
@@ -8801,15 +9571,15 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (ltpc_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, getLtpc());
       }
-      if (firstDepth_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, getFirstDepth());
       }
-      if (optionGreeks_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(3, getOptionGreeks());
       }
@@ -8944,11 +9714,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Firs
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -9012,41 +9784,44 @@ public static final class Builder extends
 
       // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getLtpcFieldBuilder();
+          getFirstDepthFieldBuilder();
+          getOptionGreeksFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-        } else {
-          ltpc_ = null;
+        bitField0_ = 0;
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-        if (firstDepthBuilder_ == null) {
-          firstDepth_ = null;
-        } else {
-          firstDepth_ = null;
+        firstDepth_ = null;
+        if (firstDepthBuilder_ != null) {
+          firstDepthBuilder_.dispose();
           firstDepthBuilder_ = null;
         }
-        if (optionGreeksBuilder_ == null) {
-          optionGreeks_ = null;
-        } else {
-          optionGreeks_ = null;
+        optionGreeks_ = null;
+        if (optionGreeksBuilder_ != null) {
+          optionGreeksBuilder_.dispose();
           optionGreeksBuilder_ = null;
         }
         vtt_ = 0L;
-
         oi_ = 0D;
-
         iv_ = 0D;
-
         return this;
       }
 
@@ -9073,26 +9848,42 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks(this);
-        if (ltpcBuilder_ == null) {
-          result.ltpc_ = ltpc_;
-        } else {
-          result.ltpc_ = ltpcBuilder_.build();
+        if (bitField0_ != 0) { buildPartial0(result); }
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelWithGreeks result) {
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.ltpc_ = ltpcBuilder_ == null
+              ? ltpc_
+              : ltpcBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
-        if (firstDepthBuilder_ == null) {
-          result.firstDepth_ = firstDepth_;
-        } else {
-          result.firstDepth_ = firstDepthBuilder_.build();
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.firstDepth_ = firstDepthBuilder_ == null
+              ? firstDepth_
+              : firstDepthBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
-        if (optionGreeksBuilder_ == null) {
-          result.optionGreeks_ = optionGreeks_;
-        } else {
-          result.optionGreeks_ = optionGreeksBuilder_.build();
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.optionGreeks_ = optionGreeksBuilder_ == null
+              ? optionGreeks_
+              : optionGreeksBuilder_.build();
+          to_bitField0_ |= 0x00000004;
         }
-        result.vtt_ = vtt_;
-        result.oi_ = oi_;
-        result.iv_ = iv_;
-        onBuilt();
-        return result;
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          result.vtt_ = vtt_;
+        }
+        if (((from_bitField0_ & 0x00000010) != 0)) {
+          result.oi_ = oi_;
+        }
+        if (((from_bitField0_ & 0x00000020) != 0)) {
+          result.iv_ = iv_;
+        }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -9187,36 +9978,36 @@ public Builder mergeFrom(
                 input.readMessage(
                     getLtpcFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000001;
                 break;
               } // case 10
               case 18: {
                 input.readMessage(
                     getFirstDepthFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000002;
                 break;
               } // case 18
               case 26: {
                 input.readMessage(
                     getOptionGreeksFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000004;
                 break;
               } // case 26
               case 32: {
                 vtt_ = input.readInt64();
-
+                bitField0_ |= 0x00000008;
                 break;
               } // case 32
               case 41: {
                 oi_ = input.readDouble();
-
+                bitField0_ |= 0x00000010;
                 break;
               } // case 41
               case 49: {
                 iv_ = input.readDouble();
-
+                bitField0_ |= 0x00000020;
                 break;
               } // case 49
               default: {
@@ -9234,6 +10025,7 @@ public Builder mergeFrom(
         } // finally
         return this;
       }
+      private int bitField0_;
 
       private com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC ltpc_;
       private com.google.protobuf.SingleFieldBuilderV3<
@@ -9243,7 +10035,7 @@ public Builder mergeFrom(
        * @return Whether the ltpc field is set.
        */
       public boolean hasLtpc() {
-        return ltpcBuilder_ != null || ltpc_ != null;
+        return ((bitField0_ & 0x00000001) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
@@ -9265,11 +10057,11 @@ public Builder setLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
             throw new NullPointerException();
           }
           ltpc_ = value;
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -9279,11 +10071,11 @@ public Builder setLtpc(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder builderForValue) {
         if (ltpcBuilder_ == null) {
           ltpc_ = builderForValue.build();
-          onChanged();
         } else {
           ltpcBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -9291,38 +10083,40 @@ public Builder setLtpc(
        */
       public Builder mergeLtpc(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC value) {
         if (ltpcBuilder_ == null) {
-          if (ltpc_ != null) {
-            ltpc_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.newBuilder(ltpc_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000001) != 0) &&
+            ltpc_ != null &&
+            ltpc_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.getDefaultInstance()) {
+            getLtpcBuilder().mergeFrom(value);
           } else {
             ltpc_ = value;
           }
-          onChanged();
         } else {
           ltpcBuilder_.mergeFrom(value);
         }
-
+        if (ltpc_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public Builder clearLtpc() {
-        if (ltpcBuilder_ == null) {
-          ltpc_ = null;
-          onChanged();
-        } else {
-          ltpc_ = null;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        ltpc_ = null;
+        if (ltpcBuilder_ != null) {
+          ltpcBuilder_.dispose();
           ltpcBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.LTPC ltpc = 1;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder getLtpcBuilder() {
-        
+        bitField0_ |= 0x00000001;
         onChanged();
         return getLtpcFieldBuilder().getBuilder();
       }
@@ -9362,7 +10156,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
        * @return Whether the firstDepth field is set.
        */
       public boolean hasFirstDepth() {
-        return firstDepthBuilder_ != null || firstDepth_ != null;
+        return ((bitField0_ & 0x00000002) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote firstDepth = 2;
@@ -9384,11 +10178,11 @@ public Builder setFirstDepth(com.upstox.marketdatafeederv3udapi.rpc.proto.Market
             throw new NullPointerException();
           }
           firstDepth_ = value;
-          onChanged();
         } else {
           firstDepthBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -9398,11 +10192,11 @@ public Builder setFirstDepth(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.Builder builderForValue) {
         if (firstDepthBuilder_ == null) {
           firstDepth_ = builderForValue.build();
-          onChanged();
         } else {
           firstDepthBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -9410,38 +10204,40 @@ public Builder setFirstDepth(
        */
       public Builder mergeFirstDepth(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote value) {
         if (firstDepthBuilder_ == null) {
-          if (firstDepth_ != null) {
-            firstDepth_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.newBuilder(firstDepth_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000002) != 0) &&
+            firstDepth_ != null &&
+            firstDepth_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.getDefaultInstance()) {
+            getFirstDepthBuilder().mergeFrom(value);
           } else {
             firstDepth_ = value;
           }
-          onChanged();
         } else {
           firstDepthBuilder_.mergeFrom(value);
         }
-
+        if (firstDepth_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote firstDepth = 2;
        */
       public Builder clearFirstDepth() {
-        if (firstDepthBuilder_ == null) {
-          firstDepth_ = null;
-          onChanged();
-        } else {
-          firstDepth_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        firstDepth_ = null;
+        if (firstDepthBuilder_ != null) {
+          firstDepthBuilder_.dispose();
           firstDepthBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.Quote firstDepth = 2;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Quote.Builder getFirstDepthBuilder() {
-        
+        bitField0_ |= 0x00000002;
         onChanged();
         return getFirstDepthFieldBuilder().getBuilder();
       }
@@ -9481,7 +10277,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.QuoteOrBuil
        * @return Whether the optionGreeks field is set.
        */
       public boolean hasOptionGreeks() {
-        return optionGreeksBuilder_ != null || optionGreeks_ != null;
+        return ((bitField0_ & 0x00000004) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
@@ -9503,11 +10299,11 @@ public Builder setOptionGreeks(com.upstox.marketdatafeederv3udapi.rpc.proto.Mark
             throw new NullPointerException();
           }
           optionGreeks_ = value;
-          onChanged();
         } else {
           optionGreeksBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -9517,11 +10313,11 @@ public Builder setOptionGreeks(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.Builder builderForValue) {
         if (optionGreeksBuilder_ == null) {
           optionGreeks_ = builderForValue.build();
-          onChanged();
         } else {
           optionGreeksBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -9529,38 +10325,40 @@ public Builder setOptionGreeks(
        */
       public Builder mergeOptionGreeks(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks value) {
         if (optionGreeksBuilder_ == null) {
-          if (optionGreeks_ != null) {
-            optionGreeks_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.newBuilder(optionGreeks_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000004) != 0) &&
+            optionGreeks_ != null &&
+            optionGreeks_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.getDefaultInstance()) {
+            getOptionGreeksBuilder().mergeFrom(value);
           } else {
             optionGreeks_ = value;
           }
-          onChanged();
         } else {
           optionGreeksBuilder_.mergeFrom(value);
         }
-
+        if (optionGreeks_ != null) {
+          bitField0_ |= 0x00000004;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
        */
       public Builder clearOptionGreeks() {
-        if (optionGreeksBuilder_ == null) {
-          optionGreeks_ = null;
-          onChanged();
-        } else {
-          optionGreeks_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        optionGreeks_ = null;
+        if (optionGreeksBuilder_ != null) {
+          optionGreeksBuilder_.dispose();
           optionGreeksBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.OptionGreeks optionGreeks = 3;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.OptionGreeks.Builder getOptionGreeksBuilder() {
-        
+        bitField0_ |= 0x00000004;
         onChanged();
         return getOptionGreeksFieldBuilder().getBuilder();
       }
@@ -9615,8 +10413,9 @@ public long getVtt() {
        * @return This builder for chaining.
        */
       public Builder setVtt(long value) {
-        
+
         vtt_ = value;
+        bitField0_ |= 0x00000008;
         onChanged();
         return this;
       }
@@ -9629,7 +10428,7 @@ public Builder setVtt(long value) {
        * @return This builder for chaining.
        */
       public Builder clearVtt() {
-        
+        bitField0_ = (bitField0_ & ~0x00000008);
         vtt_ = 0L;
         onChanged();
         return this;
@@ -9658,8 +10457,9 @@ public double getOi() {
        * @return This builder for chaining.
        */
       public Builder setOi(double value) {
-        
+
         oi_ = value;
+        bitField0_ |= 0x00000010;
         onChanged();
         return this;
       }
@@ -9672,7 +10472,7 @@ public Builder setOi(double value) {
        * @return This builder for chaining.
        */
       public Builder clearOi() {
-        
+        bitField0_ = (bitField0_ & ~0x00000010);
         oi_ = 0D;
         onChanged();
         return this;
@@ -9701,8 +10501,9 @@ public double getIv() {
        * @return This builder for chaining.
        */
       public Builder setIv(double value) {
-        
+
         iv_ = value;
+        bitField0_ |= 0x00000020;
         onChanged();
         return this;
       }
@@ -9715,7 +10516,7 @@ public Builder setIv(double value) {
        * @return This builder for chaining.
        */
       public Builder clearIv() {
-        
+        bitField0_ = (bitField0_ & ~0x00000020);
         iv_ = 0D;
         onChanged();
         return this;
@@ -9844,7 +10645,7 @@ public interface FeedOrBuilder extends
      */
     com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode getRequestMode();
 
-    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.FeedUnionCase getFeedUnionCase();
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.FeedUnionCase getFeedUnionCase();
   }
   /**
    * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.Feed}
@@ -9869,11 +10670,6 @@ protected java.lang.Object newInstance(
       return new Feed();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_Feed_descriptor;
@@ -9888,6 +10684,7 @@ protected java.lang.Object newInstance(
     }
 
     private int feedUnionCase_ = 0;
+    @SuppressWarnings("serial")
     private java.lang.Object feedUnion_;
     public enum FeedUnionCase
         implements com.google.protobuf.Internal.EnumLite,
@@ -10024,7 +10821,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
     }
 
     public static final int REQUESTMODE_FIELD_NUMBER = 4;
-    private int requestMode_;
+    private int requestMode_ = 0;
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.RequestMode requestMode = 4;
      * @return The enum numeric value on the wire for requestMode.
@@ -10037,8 +10834,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
      * @return The requestMode.
      */
     @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode getRequestMode() {
-      @SuppressWarnings("deprecation")
-      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.valueOf(requestMode_);
+      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.forNumber(requestMode_);
       return result == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.UNRECOGNIZED : result;
     }
 
@@ -10204,11 +11000,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -10283,6 +11081,7 @@ private Builder(
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         if (ltpcBuilder_ != null) {
           ltpcBuilder_.clear();
         }
@@ -10293,7 +11092,6 @@ public Builder clear() {
           firstLevelWithGreeksBuilder_.clear();
         }
         requestMode_ = 0;
-
         feedUnionCase_ = 0;
         feedUnion_ = null;
         return this;
@@ -10322,31 +11120,34 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed build(
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed(this);
-        if (feedUnionCase_ == 1) {
-          if (ltpcBuilder_ == null) {
-            result.feedUnion_ = feedUnion_;
-          } else {
-            result.feedUnion_ = ltpcBuilder_.build();
-          }
+        if (bitField0_ != 0) { buildPartial0(result); }
+        buildPartialOneofs(result);
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          result.requestMode_ = requestMode_;
         }
-        if (feedUnionCase_ == 2) {
-          if (fullFeedBuilder_ == null) {
-            result.feedUnion_ = feedUnion_;
-          } else {
-            result.feedUnion_ = fullFeedBuilder_.build();
-          }
+      }
+
+      private void buildPartialOneofs(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed result) {
+        result.feedUnionCase_ = feedUnionCase_;
+        result.feedUnion_ = this.feedUnion_;
+        if (feedUnionCase_ == 1 &&
+            ltpcBuilder_ != null) {
+          result.feedUnion_ = ltpcBuilder_.build();
         }
-        if (feedUnionCase_ == 3) {
-          if (firstLevelWithGreeksBuilder_ == null) {
-            result.feedUnion_ = feedUnion_;
-          } else {
-            result.feedUnion_ = firstLevelWithGreeksBuilder_.build();
-          }
+        if (feedUnionCase_ == 2 &&
+            fullFeedBuilder_ != null) {
+          result.feedUnion_ = fullFeedBuilder_.build();
+        }
+        if (feedUnionCase_ == 3 &&
+            firstLevelWithGreeksBuilder_ != null) {
+          result.feedUnion_ = firstLevelWithGreeksBuilder_.build();
         }
-        result.requestMode_ = requestMode_;
-        result.feedUnionCase_ = feedUnionCase_;
-        onBuilt();
-        return result;
       }
 
       @java.lang.Override
@@ -10462,7 +11263,7 @@ public Builder mergeFrom(
               } // case 26
               case 32: {
                 requestMode_ = input.readEnum();
-
+                bitField0_ |= 0x00000008;
                 break;
               } // case 32
               default: {
@@ -10495,6 +11296,7 @@ public Builder clearFeedUnion() {
         return this;
       }
 
+      private int bitField0_;
 
       private com.google.protobuf.SingleFieldBuilderV3<
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPC.Builder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuilder> ltpcBuilder_;
@@ -10634,7 +11436,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.LTPCOrBuild
           feedUnion_ = null;
         }
         feedUnionCase_ = 1;
-        onChanged();;
+        onChanged();
         return ltpcBuilder_;
       }
 
@@ -10776,7 +11578,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FullFeedOrB
           feedUnion_ = null;
         }
         feedUnionCase_ = 2;
-        onChanged();;
+        onChanged();
         return fullFeedBuilder_;
       }
 
@@ -10918,7 +11720,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
           feedUnion_ = null;
         }
         feedUnionCase_ = 3;
-        onChanged();;
+        onChanged();
         return firstLevelWithGreeksBuilder_;
       }
 
@@ -10936,8 +11738,8 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FirstLevelW
        * @return This builder for chaining.
        */
       public Builder setRequestModeValue(int value) {
-        
         requestMode_ = value;
+        bitField0_ |= 0x00000008;
         onChanged();
         return this;
       }
@@ -10947,8 +11749,7 @@ public Builder setRequestModeValue(int value) {
        */
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode getRequestMode() {
-        @SuppressWarnings("deprecation")
-        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.valueOf(requestMode_);
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.forNumber(requestMode_);
         return result == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.RequestMode.UNRECOGNIZED : result;
       }
       /**
@@ -10960,7 +11761,7 @@ public Builder setRequestMode(com.upstox.marketdatafeederv3udapi.rpc.proto.Marke
         if (value == null) {
           throw new NullPointerException();
         }
-        
+        bitField0_ |= 0x00000008;
         requestMode_ = value.getNumber();
         onChanged();
         return this;
@@ -10970,7 +11771,7 @@ public Builder setRequestMode(com.upstox.marketdatafeederv3udapi.rpc.proto.Marke
        * @return This builder for chaining.
        */
       public Builder clearRequestMode() {
-        
+        bitField0_ = (bitField0_ & ~0x00000008);
         requestMode_ = 0;
         onChanged();
         return this;
@@ -11039,260 +11840,1101 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getDef
 
   }
 
-  public interface MarketInfoOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo)
+  public interface StatusInfoOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    int getSegmentStatusCount();
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    boolean containsSegmentStatus(
-        java.lang.String key);
-    /**
-     * Use {@link #getSegmentStatusMap()} instead.
-     */
-    @java.lang.Deprecated
-    java.util.Map
-    getSegmentStatus();
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    java.util.Map
-    getSegmentStatusMap();
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    /* nullable */
-com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
-        java.lang.String key,
-        /* nullable */
-com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus         defaultValue);
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
-        java.lang.String key);
-    /**
-     * Use {@link #getSegmentStatusValueMap()} instead.
-     */
-    @java.lang.Deprecated
-    java.util.Map
-    getSegmentStatusValue();
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * string status = 1;
+     * @return The status.
      */
-    java.util.Map
-    getSegmentStatusValueMap();
+    java.lang.String getStatus();
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * string status = 1;
+     * @return The bytes for status.
      */
+    com.google.protobuf.ByteString
+        getStatusBytes();
 
-    int getSegmentStatusValueOrDefault(
-        java.lang.String key,
-        int defaultValue);
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * int64 updatedTime = 2;
+     * @return The updatedTime.
      */
-
-    int getSegmentStatusValueOrThrow(
-        java.lang.String key);
+    long getUpdatedTime();
   }
   /**
-   * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo}
+   * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo}
    */
-  public static final class MarketInfo extends
+  public static final class StatusInfo extends
       com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo)
-      MarketInfoOrBuilder {
+      // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
+      StatusInfoOrBuilder {
   private static final long serialVersionUID = 0L;
-    // Use MarketInfo.newBuilder() to construct.
-    private MarketInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
+    // Use StatusInfo.newBuilder() to construct.
+    private StatusInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
       super(builder);
     }
-    private MarketInfo() {
+    private StatusInfo() {
+      status_ = "";
     }
 
     @java.lang.Override
     @SuppressWarnings({"unused"})
     protected java.lang.Object newInstance(
         UnusedPrivateParameter unused) {
-      return new MarketInfo();
+      return new StatusInfo();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor;
+      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor;
     }
 
-    @SuppressWarnings({"rawtypes"})
-    @java.lang.Override
-    protected com.google.protobuf.MapField internalGetMapField(
-        int number) {
-      switch (number) {
-        case 1:
-          return internalGetSegmentStatus();
-        default:
-          throw new RuntimeException(
-              "Invalid map field number: " + number);
-      }
-    }
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_fieldAccessorTable
+      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.Builder.class);
-    }
-
-    public static final int SEGMENTSTATUS_FIELD_NUMBER = 1;
-    private static final class SegmentStatusDefaultEntryHolder {
-      static final com.google.protobuf.MapEntry<
-          java.lang.String, java.lang.Integer> defaultEntry =
-              com.google.protobuf.MapEntry
-              .newDefaultInstance(
-                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_descriptor, 
-                  com.google.protobuf.WireFormat.FieldType.STRING,
-                  "",
-                  com.google.protobuf.WireFormat.FieldType.ENUM,
-                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.PRE_OPEN_START.getNumber());
-    }
-    private com.google.protobuf.MapField<
-        java.lang.String, java.lang.Integer> segmentStatus_;
-    private com.google.protobuf.MapField
-    internalGetSegmentStatus() {
-      if (segmentStatus_ == null) {
-        return com.google.protobuf.MapField.emptyMapField(
-            SegmentStatusDefaultEntryHolder.defaultEntry);
-      }
-      return segmentStatus_;
-    }
-    private static final
-    com.google.protobuf.Internal.MapAdapter.Converter<
-        java.lang.Integer, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus> segmentStatusValueConverter =
-            com.google.protobuf.Internal.MapAdapter.newEnumConverter(
-                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.internalGetValueMap(),
-                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.UNRECOGNIZED);
-    private static final java.util.Map
-    internalGetAdaptedSegmentStatusMap(
-        java.util.Map map) {
-      return new com.google.protobuf.Internal.MapAdapter<
-          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus, java.lang.Integer>(
-              map, segmentStatusValueConverter);
+              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder.class);
     }
 
-    public int getSegmentStatusCount() {
-      return internalGetSegmentStatus().getMap().size();
-    }
+    public static final int STATUS_FIELD_NUMBER = 1;
+    @SuppressWarnings("serial")
+    private volatile java.lang.Object status_ = "";
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * string status = 1;
+     * @return The status.
      */
-
     @java.lang.Override
-    public boolean containsSegmentStatus(
-        java.lang.String key) {
-      if (key == null) { throw new NullPointerException("map key"); }
-      return internalGetSegmentStatus().getMap().containsKey(key);
+    public java.lang.String getStatus() {
+      java.lang.Object ref = status_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        status_ = s;
+        return s;
+      }
     }
     /**
-     * Use {@link #getSegmentStatusMap()} instead.
+     * string status = 1;
+     * @return The bytes for status.
      */
     @java.lang.Override
-    @java.lang.Deprecated
-    public java.util.Map
-    getSegmentStatus() {
-      return getSegmentStatusMap();
+    public com.google.protobuf.ByteString
+        getStatusBytes() {
+      java.lang.Object ref = status_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        status_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
     }
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    @java.lang.Override
 
-    public java.util.Map
-    getSegmentStatusMap() {
-      return internalGetAdaptedSegmentStatusMap(
-          internalGetSegmentStatus().getMap());}
+    public static final int UPDATEDTIME_FIELD_NUMBER = 2;
+    private long updatedTime_ = 0L;
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * int64 updatedTime = 2;
+     * @return The updatedTime.
      */
     @java.lang.Override
-
-    public /* nullable */
-com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
-        java.lang.String key,
-        /* nullable */
-com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus defaultValue) {
-      if (key == null) { throw new NullPointerException("map key"); }
-      java.util.Map map =
-          internalGetSegmentStatus().getMap();
-      return map.containsKey(key)
-             ? segmentStatusValueConverter.doForward(map.get(key))
-             : defaultValue;
+    public long getUpdatedTime() {
+      return updatedTime_;
     }
-    /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
-     */
-    @java.lang.Override
 
-    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(status_)) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, status_);
+      }
+      if (updatedTime_ != 0L) {
+        output.writeInt64(2, updatedTime_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(status_)) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, status_);
+      }
+      if (updatedTime_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, updatedTime_);
+      }
+      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 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo)) {
+        return super.equals(obj);
+      }
+      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo other = (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) obj;
+
+      if (!getStatus()
+          .equals(other.getStatus())) return false;
+      if (getUpdatedTime()
+          != other.getUpdatedTime()) 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();
+      hash = (37 * hash) + STATUS_FIELD_NUMBER;
+      hash = (53 * hash) + getStatus().hashCode();
+      hash = (37 * hash) + UPDATEDTIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getUpdatedTime());
+      hash = (29 * hash) + getUnknownFields().hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo 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 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo 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 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo 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(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo 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 com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder implements
+        // @@protoc_insertion_point(builder_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder.class);
+      }
+
+      // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.newBuilder()
+      private Builder() {
+
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        bitField0_ = 0;
+        status_ = "";
+        updatedTime_ = 0L;
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor;
+      }
+
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getDefaultInstanceForType() {
+        return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo build() {
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo buildPartial() {
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo(this);
+        if (bitField0_ != 0) { buildPartial0(result); }
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.status_ = status_;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.updatedTime_ = updatedTime_;
+        }
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) {
+          return mergeFrom((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo other) {
+        if (other == com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.getDefaultInstance()) return this;
+        if (!other.getStatus().isEmpty()) {
+          status_ = other.status_;
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
+        if (other.getUpdatedTime() != 0L) {
+          setUpdatedTime(other.getUpdatedTime());
+        }
+        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: {
+                status_ = input.readStringRequireUtf8();
+                bitField0_ |= 0x00000001;
+                break;
+              } // case 10
+              case 16: {
+                updatedTime_ = input.readInt64();
+                bitField0_ |= 0x00000002;
+                break;
+              } // case 16
+              default: {
+                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                  done = true; // was an endgroup tag
+                }
+                break;
+              } // default:
+            } // switch (tag)
+          } // while (!done)
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.unwrapIOException();
+        } finally {
+          onChanged();
+        } // finally
+        return this;
+      }
+      private int bitField0_;
+
+      private java.lang.Object status_ = "";
+      /**
+       * string status = 1;
+       * @return The status.
+       */
+      public java.lang.String getStatus() {
+        java.lang.Object ref = status_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          status_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * string status = 1;
+       * @return The bytes for status.
+       */
+      public com.google.protobuf.ByteString
+          getStatusBytes() {
+        java.lang.Object ref = status_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          status_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * string status = 1;
+       * @param value The status to set.
+       * @return This builder for chaining.
+       */
+      public Builder setStatus(
+          java.lang.String value) {
+        if (value == null) { throw new NullPointerException(); }
+        status_ = value;
+        bitField0_ |= 0x00000001;
+        onChanged();
+        return this;
+      }
+      /**
+       * string status = 1;
+       * @return This builder for chaining.
+       */
+      public Builder clearStatus() {
+        status_ = getDefaultInstance().getStatus();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+      /**
+       * string status = 1;
+       * @param value The bytes for status to set.
+       * @return This builder for chaining.
+       */
+      public Builder setStatusBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) { throw new NullPointerException(); }
+        checkByteStringIsUtf8(value);
+        status_ = value;
+        bitField0_ |= 0x00000001;
+        onChanged();
+        return this;
+      }
+
+      private long updatedTime_ ;
+      /**
+       * int64 updatedTime = 2;
+       * @return The updatedTime.
+       */
+      @java.lang.Override
+      public long getUpdatedTime() {
+        return updatedTime_;
+      }
+      /**
+       * int64 updatedTime = 2;
+       * @param value The updatedTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUpdatedTime(long value) {
+
+        updatedTime_ = value;
+        bitField0_ |= 0x00000002;
+        onChanged();
+        return this;
+      }
+      /**
+       * int64 updatedTime = 2;
+       * @return This builder for chaining.
+       */
+      public Builder clearUpdatedTime() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        updatedTime_ = 0L;
+        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:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
+    }
+
+    // @@protoc_insertion_point(class_scope:com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo)
+    private static final com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo();
+    }
+
+    public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser
+        PARSER = new com.google.protobuf.AbstractParser() {
+      @java.lang.Override
+      public StatusInfo 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 parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface MarketInfoOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    int getSegmentStatusCount();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    boolean containsSegmentStatus(
+        java.lang.String key);
+    /**
+     * Use {@link #getSegmentStatusMap()} instead.
+     */
+    @java.lang.Deprecated
+    java.util.Map
+    getSegmentStatus();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    java.util.Map
+    getSegmentStatusMap();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus         defaultValue);
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+        java.lang.String key);
+    /**
+     * Use {@link #getSegmentStatusValueMap()} instead.
+     */
+    @java.lang.Deprecated
+    java.util.Map
+    getSegmentStatusValue();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    java.util.Map
+    getSegmentStatusValueMap();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    int getSegmentStatusValueOrDefault(
+        java.lang.String key,
+        int defaultValue);
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    int getSegmentStatusValueOrThrow(
+        java.lang.String key);
+
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    int getCasMarketStatusCount();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    boolean containsCasMarketStatus(
+        java.lang.String key);
+    /**
+     * Use {@link #getCasMarketStatusMap()} instead.
+     */
+    @java.lang.Deprecated
+    java.util.Map
+    getCasMarketStatus();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    java.util.Map
+    getCasMarketStatusMap();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue);
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrThrow(
+        java.lang.String key);
+
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    int getPreOpenSessionStatusCount();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    boolean containsPreOpenSessionStatus(
+        java.lang.String key);
+    /**
+     * Use {@link #getPreOpenSessionStatusMap()} instead.
+     */
+    @java.lang.Deprecated
+    java.util.Map
+    getPreOpenSessionStatus();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    java.util.Map
+    getPreOpenSessionStatusMap();
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue);
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrThrow(
+        java.lang.String key);
+  }
+  /**
+   * Protobuf type {@code com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo}
+   */
+  public static final class MarketInfo extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo)
+      MarketInfoOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use MarketInfo.newBuilder() to construct.
+    private MarketInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
+      super(builder);
+    }
+    private MarketInfo() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new MarketInfo();
+    }
+
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor;
+    }
+
+    @SuppressWarnings({"rawtypes"})
+    @java.lang.Override
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+        int number) {
+      switch (number) {
+        case 1:
+          return internalGetSegmentStatus();
+        case 2:
+          return internalGetCasMarketStatus();
+        case 3:
+          return internalGetPreOpenSessionStatus();
+        default:
+          throw new RuntimeException(
+              "Invalid map field number: " + number);
+      }
+    }
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.Builder.class);
+    }
+
+    public static final int SEGMENTSTATUS_FIELD_NUMBER = 1;
+    private static final class SegmentStatusDefaultEntryHolder {
+      static final com.google.protobuf.MapEntry<
+          java.lang.String, java.lang.Integer> defaultEntry =
+              com.google.protobuf.MapEntry
+              .newDefaultInstance(
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_descriptor, 
+                  com.google.protobuf.WireFormat.FieldType.STRING,
+                  "",
+                  com.google.protobuf.WireFormat.FieldType.ENUM,
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.PRE_OPEN_START.getNumber());
+    }
+    @SuppressWarnings("serial")
+    private com.google.protobuf.MapField<
+        java.lang.String, java.lang.Integer> segmentStatus_;
+    private com.google.protobuf.MapField
+    internalGetSegmentStatus() {
+      if (segmentStatus_ == null) {
+        return com.google.protobuf.MapField.emptyMapField(
+            SegmentStatusDefaultEntryHolder.defaultEntry);
+      }
+      return segmentStatus_;
+    }
+    private static final
+    com.google.protobuf.Internal.MapAdapter.Converter<
+        java.lang.Integer, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus> segmentStatusValueConverter =
+            com.google.protobuf.Internal.MapAdapter.newEnumConverter(
+                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.internalGetValueMap(),
+                com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus.UNRECOGNIZED);
+    private static final java.util.Map
+    internalGetAdaptedSegmentStatusMap(
+        java.util.Map map) {
+      return new com.google.protobuf.Internal.MapAdapter<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus, java.lang.Integer>(
+              map, segmentStatusValueConverter);
+    }
+    public int getSegmentStatusCount() {
+      return internalGetSegmentStatus().getMap().size();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public boolean containsSegmentStatus(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      return internalGetSegmentStatus().getMap().containsKey(key);
+    }
+    /**
+     * Use {@link #getSegmentStatusMap()} instead.
+     */
+    @java.lang.Override
+    @java.lang.Deprecated
+    public java.util.Map
+    getSegmentStatus() {
+      return getSegmentStatusMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public java.util.Map
+    getSegmentStatusMap() {
+      return internalGetAdaptedSegmentStatusMap(
+          internalGetSegmentStatus().getMap());}
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus defaultValue) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetSegmentStatus().getMap();
+      return map.containsKey(key)
+             ? segmentStatusValueConverter.doForward(map.get(key))
+             : defaultValue;
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetSegmentStatus().getMap();
+      if (!map.containsKey(key)) {
+        throw new java.lang.IllegalArgumentException();
+      }
+      return segmentStatusValueConverter.doForward(map.get(key));
+    }
+    /**
+     * Use {@link #getSegmentStatusValueMap()} instead.
+     */
+    @java.lang.Override
+    @java.lang.Deprecated
+    public java.util.Map
+    getSegmentStatusValue() {
+      return getSegmentStatusValueMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public java.util.Map
+    getSegmentStatusValueMap() {
+      return internalGetSegmentStatus().getMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public int getSegmentStatusValueOrDefault(
+        java.lang.String key,
+        int defaultValue) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetSegmentStatus().getMap();
+      return map.containsKey(key) ? map.get(key) : defaultValue;
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     */
+    @java.lang.Override
+    public int getSegmentStatusValueOrThrow(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetSegmentStatus().getMap();
+      if (!map.containsKey(key)) {
+        throw new java.lang.IllegalArgumentException();
+      }
+      return map.get(key);
+    }
+
+    public static final int CASMARKETSTATUS_FIELD_NUMBER = 2;
+    private static final class CasMarketStatusDefaultEntryHolder {
+      static final com.google.protobuf.MapEntry<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo> defaultEntry =
+              com.google.protobuf.MapEntry
+              .newDefaultInstance(
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_descriptor, 
+                  com.google.protobuf.WireFormat.FieldType.STRING,
+                  "",
+                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.getDefaultInstance());
+    }
+    @SuppressWarnings("serial")
+    private com.google.protobuf.MapField<
+        java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo> casMarketStatus_;
+    private com.google.protobuf.MapField
+    internalGetCasMarketStatus() {
+      if (casMarketStatus_ == null) {
+        return com.google.protobuf.MapField.emptyMapField(
+            CasMarketStatusDefaultEntryHolder.defaultEntry);
+      }
+      return casMarketStatus_;
+    }
+    public int getCasMarketStatusCount() {
+      return internalGetCasMarketStatus().getMap().size();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    @java.lang.Override
+    public boolean containsCasMarketStatus(
         java.lang.String key) {
       if (key == null) { throw new NullPointerException("map key"); }
-      java.util.Map map =
-          internalGetSegmentStatus().getMap();
+      return internalGetCasMarketStatus().getMap().containsKey(key);
+    }
+    /**
+     * Use {@link #getCasMarketStatusMap()} instead.
+     */
+    @java.lang.Override
+    @java.lang.Deprecated
+    public java.util.Map getCasMarketStatus() {
+      return getCasMarketStatusMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    @java.lang.Override
+    public java.util.Map getCasMarketStatusMap() {
+      return internalGetCasMarketStatus().getMap();
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    @java.lang.Override
+    public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrDefault(
+        java.lang.String key,
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetCasMarketStatus().getMap();
+      return map.containsKey(key) ? map.get(key) : defaultValue;
+    }
+    /**
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+     */
+    @java.lang.Override
+    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrThrow(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      java.util.Map map =
+          internalGetCasMarketStatus().getMap();
       if (!map.containsKey(key)) {
         throw new java.lang.IllegalArgumentException();
       }
-      return segmentStatusValueConverter.doForward(map.get(key));
+      return map.get(key);
+    }
+
+    public static final int PREOPENSESSIONSTATUS_FIELD_NUMBER = 3;
+    private static final class PreOpenSessionStatusDefaultEntryHolder {
+      static final com.google.protobuf.MapEntry<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo> defaultEntry =
+              com.google.protobuf.MapEntry
+              .newDefaultInstance(
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_descriptor, 
+                  com.google.protobuf.WireFormat.FieldType.STRING,
+                  "",
+                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
+                  com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.getDefaultInstance());
+    }
+    @SuppressWarnings("serial")
+    private com.google.protobuf.MapField<
+        java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo> preOpenSessionStatus_;
+    private com.google.protobuf.MapField
+    internalGetPreOpenSessionStatus() {
+      if (preOpenSessionStatus_ == null) {
+        return com.google.protobuf.MapField.emptyMapField(
+            PreOpenSessionStatusDefaultEntryHolder.defaultEntry);
+      }
+      return preOpenSessionStatus_;
+    }
+    public int getPreOpenSessionStatusCount() {
+      return internalGetPreOpenSessionStatus().getMap().size();
     }
     /**
-     * Use {@link #getSegmentStatusValueMap()} instead.
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+     */
+    @java.lang.Override
+    public boolean containsPreOpenSessionStatus(
+        java.lang.String key) {
+      if (key == null) { throw new NullPointerException("map key"); }
+      return internalGetPreOpenSessionStatus().getMap().containsKey(key);
+    }
+    /**
+     * Use {@link #getPreOpenSessionStatusMap()} instead.
      */
     @java.lang.Override
     @java.lang.Deprecated
-    public java.util.Map
-    getSegmentStatusValue() {
-      return getSegmentStatusValueMap();
+    public java.util.Map getPreOpenSessionStatus() {
+      return getPreOpenSessionStatusMap();
     }
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
      */
     @java.lang.Override
-
-    public java.util.Map
-    getSegmentStatusValueMap() {
-      return internalGetSegmentStatus().getMap();
+    public java.util.Map getPreOpenSessionStatusMap() {
+      return internalGetPreOpenSessionStatus().getMap();
     }
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
      */
     @java.lang.Override
-
-    public int getSegmentStatusValueOrDefault(
+    public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrDefault(
         java.lang.String key,
-        int defaultValue) {
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue) {
       if (key == null) { throw new NullPointerException("map key"); }
-      java.util.Map map =
-          internalGetSegmentStatus().getMap();
+      java.util.Map map =
+          internalGetPreOpenSessionStatus().getMap();
       return map.containsKey(key) ? map.get(key) : defaultValue;
     }
     /**
-     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+     * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
      */
     @java.lang.Override
-
-    public int getSegmentStatusValueOrThrow(
+    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrThrow(
         java.lang.String key) {
       if (key == null) { throw new NullPointerException("map key"); }
-      java.util.Map map =
-          internalGetSegmentStatus().getMap();
+      java.util.Map map =
+          internalGetPreOpenSessionStatus().getMap();
       if (!map.containsKey(key)) {
         throw new java.lang.IllegalArgumentException();
       }
@@ -11319,6 +12961,18 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
           internalGetSegmentStatus(),
           SegmentStatusDefaultEntryHolder.defaultEntry,
           1);
+      com.google.protobuf.GeneratedMessageV3
+        .serializeStringMapTo(
+          output,
+          internalGetCasMarketStatus(),
+          CasMarketStatusDefaultEntryHolder.defaultEntry,
+          2);
+      com.google.protobuf.GeneratedMessageV3
+        .serializeStringMapTo(
+          output,
+          internalGetPreOpenSessionStatus(),
+          PreOpenSessionStatusDefaultEntryHolder.defaultEntry,
+          3);
       getUnknownFields().writeTo(output);
     }
 
@@ -11338,6 +12992,26 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
             .computeMessageSize(1, segmentStatus__);
       }
+      for (java.util.Map.Entry entry
+           : internalGetCasMarketStatus().getMap().entrySet()) {
+        com.google.protobuf.MapEntry
+        casMarketStatus__ = CasMarketStatusDefaultEntryHolder.defaultEntry.newBuilderForType()
+            .setKey(entry.getKey())
+            .setValue(entry.getValue())
+            .build();
+        size += com.google.protobuf.CodedOutputStream
+            .computeMessageSize(2, casMarketStatus__);
+      }
+      for (java.util.Map.Entry entry
+           : internalGetPreOpenSessionStatus().getMap().entrySet()) {
+        com.google.protobuf.MapEntry
+        preOpenSessionStatus__ = PreOpenSessionStatusDefaultEntryHolder.defaultEntry.newBuilderForType()
+            .setKey(entry.getKey())
+            .setValue(entry.getValue())
+            .build();
+        size += com.google.protobuf.CodedOutputStream
+            .computeMessageSize(3, preOpenSessionStatus__);
+      }
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -11355,6 +13029,10 @@ public boolean equals(final java.lang.Object obj) {
 
       if (!internalGetSegmentStatus().equals(
           other.internalGetSegmentStatus())) return false;
+      if (!internalGetCasMarketStatus().equals(
+          other.internalGetCasMarketStatus())) return false;
+      if (!internalGetPreOpenSessionStatus().equals(
+          other.internalGetPreOpenSessionStatus())) return false;
       if (!getUnknownFields().equals(other.getUnknownFields())) return false;
       return true;
     }
@@ -11370,6 +13048,14 @@ public int hashCode() {
         hash = (37 * hash) + SEGMENTSTATUS_FIELD_NUMBER;
         hash = (53 * hash) + internalGetSegmentStatus().hashCode();
       }
+      if (!internalGetCasMarketStatus().getMap().isEmpty()) {
+        hash = (37 * hash) + CASMARKETSTATUS_FIELD_NUMBER;
+        hash = (53 * hash) + internalGetCasMarketStatus().hashCode();
+      }
+      if (!internalGetPreOpenSessionStatus().getMap().isEmpty()) {
+        hash = (37 * hash) + PREOPENSESSIONSTATUS_FIELD_NUMBER;
+        hash = (53 * hash) + internalGetPreOpenSessionStatus().hashCode();
+      }
       hash = (29 * hash) + getUnknownFields().hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -11419,11 +13105,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Mark
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -11478,22 +13166,30 @@ public static final class Builder extends
       }
 
       @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMapField(
+      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
           int number) {
         switch (number) {
           case 1:
             return internalGetSegmentStatus();
+          case 2:
+            return internalGetCasMarketStatus();
+          case 3:
+            return internalGetPreOpenSessionStatus();
           default:
             throw new RuntimeException(
                 "Invalid map field number: " + number);
         }
       }
       @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMutableMapField(
+      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
           int number) {
         switch (number) {
           case 1:
             return internalGetMutableSegmentStatus();
+          case 2:
+            return internalGetMutableCasMarketStatus();
+          case 3:
+            return internalGetMutablePreOpenSessionStatus();
           default:
             throw new RuntimeException(
                 "Invalid map field number: " + number);
@@ -11520,7 +13216,10 @@ private Builder(
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         internalGetMutableSegmentStatus().clear();
+        internalGetMutableCasMarketStatus().clear();
+        internalGetMutablePreOpenSessionStatus().clear();
         return this;
       }
 
@@ -11547,13 +13246,25 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo(this);
-        int from_bitField0_ = bitField0_;
-        result.segmentStatus_ = internalGetSegmentStatus();
-        result.segmentStatus_.makeImmutable();
+        if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.segmentStatus_ = internalGetSegmentStatus();
+          result.segmentStatus_.makeImmutable();
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.casMarketStatus_ = internalGetCasMarketStatus().build(CasMarketStatusDefaultEntryHolder.defaultEntry);
+        }
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.preOpenSessionStatus_ = internalGetPreOpenSessionStatus().build(PreOpenSessionStatusDefaultEntryHolder.defaultEntry);
+        }
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -11600,6 +13311,13 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData
         if (other == com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.getDefaultInstance()) return this;
         internalGetMutableSegmentStatus().mergeFrom(
             other.internalGetSegmentStatus());
+        bitField0_ |= 0x00000001;
+        internalGetMutableCasMarketStatus().mergeFrom(
+            other.internalGetCasMarketStatus());
+        bitField0_ |= 0x00000002;
+        internalGetMutablePreOpenSessionStatus().mergeFrom(
+            other.internalGetPreOpenSessionStatus());
+        bitField0_ |= 0x00000004;
         this.mergeUnknownFields(other.getUnknownFields());
         onChanged();
         return this;
@@ -11632,8 +13350,27 @@ public Builder mergeFrom(
                     SegmentStatusDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                 internalGetMutableSegmentStatus().getMutableMap().put(
                     segmentStatus__.getKey(), segmentStatus__.getValue());
+                bitField0_ |= 0x00000001;
                 break;
               } // case 10
+              case 18: {
+                com.google.protobuf.MapEntry
+                casMarketStatus__ = input.readMessage(
+                    CasMarketStatusDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
+                internalGetMutableCasMarketStatus().ensureBuilderMap().put(
+                    casMarketStatus__.getKey(), casMarketStatus__.getValue());
+                bitField0_ |= 0x00000002;
+                break;
+              } // case 18
+              case 26: {
+                com.google.protobuf.MapEntry
+                preOpenSessionStatus__ = input.readMessage(
+                    PreOpenSessionStatusDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
+                internalGetMutablePreOpenSessionStatus().ensureBuilderMap().put(
+                    preOpenSessionStatus__.getKey(), preOpenSessionStatus__.getValue());
+                bitField0_ |= 0x00000004;
+                break;
+              } // case 26
               default: {
                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                   done = true; // was an endgroup tag
@@ -11654,7 +13391,7 @@ public Builder mergeFrom(
       private com.google.protobuf.MapField<
           java.lang.String, java.lang.Integer> segmentStatus_;
       private com.google.protobuf.MapField
-      internalGetSegmentStatus() {
+          internalGetSegmentStatus() {
         if (segmentStatus_ == null) {
           return com.google.protobuf.MapField.emptyMapField(
               SegmentStatusDefaultEntryHolder.defaultEntry);
@@ -11662,8 +13399,7 @@ public Builder mergeFrom(
         return segmentStatus_;
       }
       private com.google.protobuf.MapField
-      internalGetMutableSegmentStatus() {
-        onChanged();;
+          internalGetMutableSegmentStatus() {
         if (segmentStatus_ == null) {
           segmentStatus_ = com.google.protobuf.MapField.newMapField(
               SegmentStatusDefaultEntryHolder.defaultEntry);
@@ -11671,16 +13407,16 @@ public Builder mergeFrom(
         if (!segmentStatus_.isMutable()) {
           segmentStatus_ = segmentStatus_.copy();
         }
+        bitField0_ |= 0x00000001;
+        onChanged();
         return segmentStatus_;
       }
-
       public int getSegmentStatusCount() {
         return internalGetSegmentStatus().getMap().size();
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
        */
-
       @java.lang.Override
       public boolean containsSegmentStatus(
           java.lang.String key) {
@@ -11700,7 +13436,6 @@ public boolean containsSegmentStatus(
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
        */
       @java.lang.Override
-
       public java.util.Map
       getSegmentStatusMap() {
         return internalGetAdaptedSegmentStatusMap(
@@ -11709,7 +13444,6 @@ public boolean containsSegmentStatus(
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
        */
       @java.lang.Override
-
       public /* nullable */
 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrDefault(
           java.lang.String key,
@@ -11723,80 +13457,242 @@ com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSe
                : defaultValue;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map =
+            internalGetSegmentStatus().getMap();
+        if (!map.containsKey(key)) {
+          throw new java.lang.IllegalArgumentException();
+        }
+        return segmentStatusValueConverter.doForward(map.get(key));
+      }
+      /**
+       * Use {@link #getSegmentStatusValueMap()} instead.
+       */
+      @java.lang.Override
+      @java.lang.Deprecated
+      public java.util.Map
+      getSegmentStatusValue() {
+        return getSegmentStatusValueMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      @java.lang.Override
+      public java.util.Map
+      getSegmentStatusValueMap() {
+        return internalGetSegmentStatus().getMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      @java.lang.Override
+      public int getSegmentStatusValueOrDefault(
+          java.lang.String key,
+          int defaultValue) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map =
+            internalGetSegmentStatus().getMap();
+        return map.containsKey(key) ? map.get(key) : defaultValue;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      @java.lang.Override
+      public int getSegmentStatusValueOrThrow(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map =
+            internalGetSegmentStatus().getMap();
+        if (!map.containsKey(key)) {
+          throw new java.lang.IllegalArgumentException();
+        }
+        return map.get(key);
+      }
+      public Builder clearSegmentStatus() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        internalGetMutableSegmentStatus().getMutableMap()
+            .clear();
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder removeSegmentStatus(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        internalGetMutableSegmentStatus().getMutableMap()
+            .remove(key);
+        return this;
+      }
+      /**
+       * Use alternate mutation accessors instead.
+       */
+      @java.lang.Deprecated
+      public java.util.Map
+          getMutableSegmentStatus() {
+        bitField0_ |= 0x00000001;
+        return internalGetAdaptedSegmentStatusMap(
+             internalGetMutableSegmentStatus().getMutableMap());
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder putSegmentStatus(
+          java.lang.String key,
+          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus value) {
+        if (key == null) { throw new NullPointerException("map key"); }
+
+        internalGetMutableSegmentStatus().getMutableMap()
+            .put(key, segmentStatusValueConverter.doBackward(value));
+        bitField0_ |= 0x00000001;
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder putAllSegmentStatus(
+          java.util.Map values) {
+        internalGetAdaptedSegmentStatusMap(
+            internalGetMutableSegmentStatus().getMutableMap())
+                .putAll(values);
+        bitField0_ |= 0x00000001;
+        return this;
+      }
+      /**
+       * Use alternate mutation accessors instead.
+       */
+      @java.lang.Deprecated
+      public java.util.Map
+      getMutableSegmentStatusValue() {
+        bitField0_ |= 0x00000001;
+        return internalGetMutableSegmentStatus().getMutableMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder putSegmentStatusValue(
+          java.lang.String key,
+          int value) {
+        if (key == null) { throw new NullPointerException("map key"); }
+
+        internalGetMutableSegmentStatus().getMutableMap()
+            .put(key, value);
+        bitField0_ |= 0x00000001;
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       */
+      public Builder putAllSegmentStatusValue(
+          java.util.Map values) {
+        internalGetMutableSegmentStatus().getMutableMap()
+            .putAll(values);
+        bitField0_ |= 0x00000001;
+        return this;
+      }
+
+      private static final class CasMarketStatusConverter implements com.google.protobuf.MapFieldBuilder.Converter {
+        @java.lang.Override
+        public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo build(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder val) {
+          if (val instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) { return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) val; }
+          return ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder) val).build();
+        }
+
+        @java.lang.Override
+        public com.google.protobuf.MapEntry defaultEntry() {
+          return CasMarketStatusDefaultEntryHolder.defaultEntry;
+        }
+      };
+      private static final CasMarketStatusConverter casMarketStatusConverter = new CasMarketStatusConverter();
+
+      private com.google.protobuf.MapFieldBuilder<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder> casMarketStatus_;
+      private com.google.protobuf.MapFieldBuilder
+          internalGetCasMarketStatus() {
+        if (casMarketStatus_ == null) {
+          return new com.google.protobuf.MapFieldBuilder<>(casMarketStatusConverter);
+        }
+        return casMarketStatus_;
+      }
+      private com.google.protobuf.MapFieldBuilder
+          internalGetMutableCasMarketStatus() {
+        if (casMarketStatus_ == null) {
+          casMarketStatus_ = new com.google.protobuf.MapFieldBuilder<>(casMarketStatusConverter);
+        }
+        bitField0_ |= 0x00000002;
+        onChanged();
+        return casMarketStatus_;
+      }
+      public int getCasMarketStatusCount() {
+        return internalGetCasMarketStatus().ensureBuilderMap().size();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
       @java.lang.Override
-
-      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus getSegmentStatusOrThrow(
+      public boolean containsCasMarketStatus(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetSegmentStatus().getMap();
-        if (!map.containsKey(key)) {
-          throw new java.lang.IllegalArgumentException();
-        }
-        return segmentStatusValueConverter.doForward(map.get(key));
+        return internalGetCasMarketStatus().ensureBuilderMap().containsKey(key);
       }
       /**
-       * Use {@link #getSegmentStatusValueMap()} instead.
+       * Use {@link #getCasMarketStatusMap()} instead.
        */
       @java.lang.Override
       @java.lang.Deprecated
-      public java.util.Map
-      getSegmentStatusValue() {
-        return getSegmentStatusValueMap();
+      public java.util.Map getCasMarketStatus() {
+        return getCasMarketStatusMap();
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
       @java.lang.Override
-
-      public java.util.Map
-      getSegmentStatusValueMap() {
-        return internalGetSegmentStatus().getMap();
+      public java.util.Map getCasMarketStatusMap() {
+        return internalGetCasMarketStatus().getImmutableMap();
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
       @java.lang.Override
-
-      public int getSegmentStatusValueOrDefault(
+      public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrDefault(
           java.lang.String key,
-          int defaultValue) {
+          /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetSegmentStatus().getMap();
-        return map.containsKey(key) ? map.get(key) : defaultValue;
+        java.util.Map map = internalGetMutableCasMarketStatus().ensureBuilderMap();
+        return map.containsKey(key) ? casMarketStatusConverter.build(map.get(key)) : defaultValue;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
       @java.lang.Override
-
-      public int getSegmentStatusValueOrThrow(
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getCasMarketStatusOrThrow(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetSegmentStatus().getMap();
+        java.util.Map map = internalGetMutableCasMarketStatus().ensureBuilderMap();
         if (!map.containsKey(key)) {
           throw new java.lang.IllegalArgumentException();
         }
-        return map.get(key);
+        return casMarketStatusConverter.build(map.get(key));
       }
-
-      public Builder clearSegmentStatus() {
-        internalGetMutableSegmentStatus().getMutableMap()
-            .clear();
+      public Builder clearCasMarketStatus() {
+        bitField0_ = (bitField0_ & ~0x00000002);
+        internalGetMutableCasMarketStatus().clear();
         return this;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
-
-      public Builder removeSegmentStatus(
+      public Builder removeCasMarketStatus(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        internalGetMutableSegmentStatus().getMutableMap()
+        internalGetMutableCasMarketStatus().ensureBuilderMap()
             .remove(key);
         return this;
       }
@@ -11804,62 +13700,211 @@ public Builder removeSegmentStatus(
        * Use alternate mutation accessors instead.
        */
       @java.lang.Deprecated
-      public java.util.Map
-      getMutableSegmentStatus() {
-        return internalGetAdaptedSegmentStatusMap(
-             internalGetMutableSegmentStatus().getMutableMap());
+      public java.util.Map
+          getMutableCasMarketStatus() {
+        bitField0_ |= 0x00000002;
+        return internalGetMutableCasMarketStatus().ensureMessageMap();
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
-      public Builder putSegmentStatus(
+      public Builder putCasMarketStatus(
           java.lang.String key,
-          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketStatus value) {
+          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo value) {
         if (key == null) { throw new NullPointerException("map key"); }
-        
-        internalGetMutableSegmentStatus().getMutableMap()
-            .put(key, segmentStatusValueConverter.doBackward(value));
+        if (value == null) { throw new NullPointerException("map value"); }
+        internalGetMutableCasMarketStatus().ensureBuilderMap()
+            .put(key, value);
+        bitField0_ |= 0x00000002;
         return this;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
        */
-      public Builder putAllSegmentStatus(
-          java.util.Map values) {
-        internalGetAdaptedSegmentStatusMap(
-            internalGetMutableSegmentStatus().getMutableMap())
-                .putAll(values);
+      public Builder putAllCasMarketStatus(
+          java.util.Map values) {
+        for (java.util.Map.Entry e : values.entrySet()) {
+          if (e.getKey() == null || e.getValue() == null) {
+            throw new NullPointerException();
+          }
+        }
+        internalGetMutableCasMarketStatus().ensureBuilderMap()
+            .putAll(values);
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> casMarketStatus = 2;
+       */
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder putCasMarketStatusBuilderIfAbsent(
+          java.lang.String key) {
+        java.util.Map builderMap = internalGetMutableCasMarketStatus().ensureBuilderMap();
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder entry = builderMap.get(key);
+        if (entry == null) {
+          entry = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.newBuilder();
+          builderMap.put(key, entry);
+        }
+        if (entry instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) {
+          entry = ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) entry).toBuilder();
+          builderMap.put(key, entry);
+        }
+        return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder) entry;
+      }
+
+      private static final class PreOpenSessionStatusConverter implements com.google.protobuf.MapFieldBuilder.Converter {
+        @java.lang.Override
+        public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo build(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder val) {
+          if (val instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) { return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) val; }
+          return ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder) val).build();
+        }
+
+        @java.lang.Override
+        public com.google.protobuf.MapEntry defaultEntry() {
+          return PreOpenSessionStatusDefaultEntryHolder.defaultEntry;
+        }
+      };
+      private static final PreOpenSessionStatusConverter preOpenSessionStatusConverter = new PreOpenSessionStatusConverter();
+
+      private com.google.protobuf.MapFieldBuilder<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder> preOpenSessionStatus_;
+      private com.google.protobuf.MapFieldBuilder
+          internalGetPreOpenSessionStatus() {
+        if (preOpenSessionStatus_ == null) {
+          return new com.google.protobuf.MapFieldBuilder<>(preOpenSessionStatusConverter);
+        }
+        return preOpenSessionStatus_;
+      }
+      private com.google.protobuf.MapFieldBuilder
+          internalGetMutablePreOpenSessionStatus() {
+        if (preOpenSessionStatus_ == null) {
+          preOpenSessionStatus_ = new com.google.protobuf.MapFieldBuilder<>(preOpenSessionStatusConverter);
+        }
+        bitField0_ |= 0x00000004;
+        onChanged();
+        return preOpenSessionStatus_;
+      }
+      public int getPreOpenSessionStatusCount() {
+        return internalGetPreOpenSessionStatus().ensureBuilderMap().size();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      @java.lang.Override
+      public boolean containsPreOpenSessionStatus(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        return internalGetPreOpenSessionStatus().ensureBuilderMap().containsKey(key);
+      }
+      /**
+       * Use {@link #getPreOpenSessionStatusMap()} instead.
+       */
+      @java.lang.Override
+      @java.lang.Deprecated
+      public java.util.Map getPreOpenSessionStatus() {
+        return getPreOpenSessionStatusMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      @java.lang.Override
+      public java.util.Map getPreOpenSessionStatusMap() {
+        return internalGetPreOpenSessionStatus().getImmutableMap();
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      @java.lang.Override
+      public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrDefault(
+          java.lang.String key,
+          /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo defaultValue) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map = internalGetMutablePreOpenSessionStatus().ensureBuilderMap();
+        return map.containsKey(key) ? preOpenSessionStatusConverter.build(map.get(key)) : defaultValue;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      @java.lang.Override
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo getPreOpenSessionStatusOrThrow(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        java.util.Map map = internalGetMutablePreOpenSessionStatus().ensureBuilderMap();
+        if (!map.containsKey(key)) {
+          throw new java.lang.IllegalArgumentException();
+        }
+        return preOpenSessionStatusConverter.build(map.get(key));
+      }
+      public Builder clearPreOpenSessionStatus() {
+        bitField0_ = (bitField0_ & ~0x00000004);
+        internalGetMutablePreOpenSessionStatus().clear();
+        return this;
+      }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      public Builder removePreOpenSessionStatus(
+          java.lang.String key) {
+        if (key == null) { throw new NullPointerException("map key"); }
+        internalGetMutablePreOpenSessionStatus().ensureBuilderMap()
+            .remove(key);
         return this;
       }
       /**
        * Use alternate mutation accessors instead.
        */
       @java.lang.Deprecated
-      public java.util.Map
-      getMutableSegmentStatusValue() {
-        return internalGetMutableSegmentStatus().getMutableMap();
+      public java.util.Map
+          getMutablePreOpenSessionStatus() {
+        bitField0_ |= 0x00000004;
+        return internalGetMutablePreOpenSessionStatus().ensureMessageMap();
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
        */
-      public Builder putSegmentStatusValue(
+      public Builder putPreOpenSessionStatus(
           java.lang.String key,
-          int value) {
+          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo value) {
         if (key == null) { throw new NullPointerException("map key"); }
-        
-        internalGetMutableSegmentStatus().getMutableMap()
+        if (value == null) { throw new NullPointerException("map value"); }
+        internalGetMutablePreOpenSessionStatus().ensureBuilderMap()
             .put(key, value);
+        bitField0_ |= 0x00000004;
         return this;
       }
       /**
-       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketStatus> segmentStatus = 1;
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
        */
-      public Builder putAllSegmentStatusValue(
-          java.util.Map values) {
-        internalGetMutableSegmentStatus().getMutableMap()
+      public Builder putAllPreOpenSessionStatus(
+          java.util.Map values) {
+        for (java.util.Map.Entry e : values.entrySet()) {
+          if (e.getKey() == null || e.getValue() == null) {
+            throw new NullPointerException();
+          }
+        }
+        internalGetMutablePreOpenSessionStatus().ensureBuilderMap()
             .putAll(values);
+        bitField0_ |= 0x00000004;
         return this;
       }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.StatusInfo> preOpenSessionStatus = 3;
+       */
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder putPreOpenSessionStatusBuilderIfAbsent(
+          java.lang.String key) {
+        java.util.Map builderMap = internalGetMutablePreOpenSessionStatus().ensureBuilderMap();
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfoOrBuilder entry = builderMap.get(key);
+        if (entry == null) {
+          entry = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.newBuilder();
+          builderMap.put(key, entry);
+        }
+        if (entry instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) {
+          entry = ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo) entry).toBuilder();
+          builderMap.put(key, entry);
+        }
+        return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.StatusInfo.Builder) entry;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -11962,7 +14007,6 @@ boolean containsFeeds(
     /**
      * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
-
     /* nullable */
 com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
         java.lang.String key,
@@ -11971,7 +14015,6 @@ com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDef
     /**
      * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
-
     com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrThrow(
         java.lang.String key);
 
@@ -12019,11 +14062,6 @@ protected java.lang.Object newInstance(
       return new FeedResponse();
     }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_descriptor;
@@ -12031,7 +14069,7 @@ protected java.lang.Object newInstance(
 
     @SuppressWarnings({"rawtypes"})
     @java.lang.Override
-    protected com.google.protobuf.MapField internalGetMapField(
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
         int number) {
       switch (number) {
         case 2:
@@ -12049,8 +14087,9 @@ protected com.google.protobuf.MapField internalGetMapField(
               com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse.class, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse.Builder.class);
     }
 
+    private int bitField0_;
     public static final int TYPE_FIELD_NUMBER = 1;
-    private int type_;
+    private int type_ = 0;
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.Type type = 1;
      * @return The enum numeric value on the wire for type.
@@ -12063,8 +14102,7 @@ protected com.google.protobuf.MapField internalGetMapField(
      * @return The type.
      */
     @java.lang.Override public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type getType() {
-      @SuppressWarnings("deprecation")
-      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.valueOf(type_);
+      com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.forNumber(type_);
       return result == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.UNRECOGNIZED : result;
     }
 
@@ -12080,6 +14118,7 @@ private static final class FeedsDefaultEntryHolder {
                   com.google.protobuf.WireFormat.FieldType.MESSAGE,
                   com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.getDefaultInstance());
     }
+    @SuppressWarnings("serial")
     private com.google.protobuf.MapField<
         java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed> feeds_;
     private com.google.protobuf.MapField
@@ -12090,14 +14129,12 @@ private static final class FeedsDefaultEntryHolder {
       }
       return feeds_;
     }
-
     public int getFeedsCount() {
       return internalGetFeeds().getMap().size();
     }
     /**
      * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
-
     @java.lang.Override
     public boolean containsFeeds(
         java.lang.String key) {
@@ -12116,7 +14153,6 @@ public java.util.Mapmap<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
     @java.lang.Override
-
     public java.util.Map getFeedsMap() {
       return internalGetFeeds().getMap();
     }
@@ -12124,10 +14160,11 @@ public java.util.Mapmap<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
     @java.lang.Override
-
-    public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
+    public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
         java.lang.String key,
-        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed defaultValue) {
+        /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed defaultValue) {
       if (key == null) { throw new NullPointerException("map key"); }
       java.util.Map map =
           internalGetFeeds().getMap();
@@ -12137,7 +14174,6 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFee
      * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
      */
     @java.lang.Override
-
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrThrow(
         java.lang.String key) {
       if (key == null) { throw new NullPointerException("map key"); }
@@ -12150,7 +14186,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFee
     }
 
     public static final int CURRENTTS_FIELD_NUMBER = 3;
-    private long currentTs_;
+    private long currentTs_ = 0L;
     /**
      * int64 currentTs = 3;
      * @return The currentTs.
@@ -12168,7 +14204,7 @@ public long getCurrentTs() {
      */
     @java.lang.Override
     public boolean hasMarketInfo() {
-      return marketInfo_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo marketInfo = 4;
@@ -12183,7 +14219,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo
      */
     @java.lang.Override
     public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfoOrBuilder getMarketInfoOrBuilder() {
-      return getMarketInfo();
+      return marketInfo_ == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.getDefaultInstance() : marketInfo_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -12212,7 +14248,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (currentTs_ != 0L) {
         output.writeInt64(3, currentTs_);
       }
-      if (marketInfo_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(4, getMarketInfo());
       }
       getUnknownFields().writeTo(output);
@@ -12242,7 +14278,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeInt64Size(3, currentTs_);
       }
-      if (marketInfo_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, getMarketInfo());
       }
@@ -12344,11 +14380,13 @@ public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed
       return com.google.protobuf.GeneratedMessageV3
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessageV3
           .parseDelimitedWithIOException(PARSER, input);
     }
+
     public static com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -12403,7 +14441,7 @@ public static final class Builder extends
       }
 
       @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMapField(
+      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
           int number) {
         switch (number) {
           case 2:
@@ -12414,7 +14452,7 @@ protected com.google.protobuf.MapField internalGetMapField(
         }
       }
       @SuppressWarnings({"rawtypes"})
-      protected com.google.protobuf.MapField internalGetMutableMapField(
+      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
           int number) {
         switch (number) {
           case 2:
@@ -12434,26 +14472,30 @@ protected com.google.protobuf.MapField internalGetMutableMapField(
 
       // Construct using com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse.newBuilder()
       private Builder() {
-
+        maybeForceBuilderInitialization();
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getMarketInfoFieldBuilder();
+        }
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         type_ = 0;
-
         internalGetMutableFeeds().clear();
         currentTs_ = 0L;
-
-        if (marketInfoBuilder_ == null) {
-          marketInfo_ = null;
-        } else {
-          marketInfo_ = null;
+        marketInfo_ = null;
+        if (marketInfoBuilder_ != null) {
+          marketInfoBuilder_.dispose();
           marketInfoBuilder_ = null;
         }
         return this;
@@ -12482,20 +14524,32 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse buildPartial() {
         com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse result = new com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse(this);
-        int from_bitField0_ = bitField0_;
-        result.type_ = type_;
-        result.feeds_ = internalGetFeeds();
-        result.feeds_.makeImmutable();
-        result.currentTs_ = currentTs_;
-        if (marketInfoBuilder_ == null) {
-          result.marketInfo_ = marketInfo_;
-        } else {
-          result.marketInfo_ = marketInfoBuilder_.build();
-        }
+        if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedResponse result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.type_ = type_;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.feeds_ = internalGetFeeds().build(FeedsDefaultEntryHolder.defaultEntry);
+        }
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.currentTs_ = currentTs_;
+        }
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          result.marketInfo_ = marketInfoBuilder_ == null
+              ? marketInfo_
+              : marketInfoBuilder_.build();
+          to_bitField0_ |= 0x00000001;
+        }
+        result.bitField0_ |= to_bitField0_;
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -12545,6 +14599,7 @@ public Builder mergeFrom(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketData
         }
         internalGetMutableFeeds().mergeFrom(
             other.internalGetFeeds());
+        bitField0_ |= 0x00000002;
         if (other.getCurrentTs() != 0L) {
           setCurrentTs(other.getCurrentTs());
         }
@@ -12579,27 +14634,28 @@ public Builder mergeFrom(
                 break;
               case 8: {
                 type_ = input.readEnum();
-
+                bitField0_ |= 0x00000001;
                 break;
               } // case 8
               case 18: {
                 com.google.protobuf.MapEntry
                 feeds__ = input.readMessage(
                     FeedsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
-                internalGetMutableFeeds().getMutableMap().put(
+                internalGetMutableFeeds().ensureBuilderMap().put(
                     feeds__.getKey(), feeds__.getValue());
+                bitField0_ |= 0x00000002;
                 break;
               } // case 18
               case 24: {
                 currentTs_ = input.readInt64();
-
+                bitField0_ |= 0x00000004;
                 break;
               } // case 24
               case 34: {
                 input.readMessage(
                     getMarketInfoFieldBuilder().getBuilder(),
                     extensionRegistry);
-
+                bitField0_ |= 0x00000008;
                 break;
               } // case 34
               default: {
@@ -12633,8 +14689,8 @@ public Builder mergeFrom(
        * @return This builder for chaining.
        */
       public Builder setTypeValue(int value) {
-        
         type_ = value;
+        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -12644,8 +14700,7 @@ public Builder setTypeValue(int value) {
        */
       @java.lang.Override
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type getType() {
-        @SuppressWarnings("deprecation")
-        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.valueOf(type_);
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type result = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.forNumber(type_);
         return result == null ? com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Type.UNRECOGNIZED : result;
       }
       /**
@@ -12657,7 +14712,7 @@ public Builder setType(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
         if (value == null) {
           throw new NullPointerException();
         }
-        
+        bitField0_ |= 0x00000001;
         type_ = value.getNumber();
         onChanged();
         return this;
@@ -12667,47 +14722,55 @@ public Builder setType(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFe
        * @return This builder for chaining.
        */
       public Builder clearType() {
-        
+        bitField0_ = (bitField0_ & ~0x00000001);
         type_ = 0;
         onChanged();
         return this;
       }
 
-      private com.google.protobuf.MapField<
-          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed> feeds_;
-      private com.google.protobuf.MapField
-      internalGetFeeds() {
+      private static final class FeedsConverter implements com.google.protobuf.MapFieldBuilder.Converter {
+        @java.lang.Override
+        public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed build(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedOrBuilder val) {
+          if (val instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed) { return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed) val; }
+          return ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.Builder) val).build();
+        }
+
+        @java.lang.Override
+        public com.google.protobuf.MapEntry defaultEntry() {
+          return FeedsDefaultEntryHolder.defaultEntry;
+        }
+      };
+      private static final FeedsConverter feedsConverter = new FeedsConverter();
+
+      private com.google.protobuf.MapFieldBuilder<
+          java.lang.String, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedOrBuilder, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed, com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.Builder> feeds_;
+      private com.google.protobuf.MapFieldBuilder
+          internalGetFeeds() {
         if (feeds_ == null) {
-          return com.google.protobuf.MapField.emptyMapField(
-              FeedsDefaultEntryHolder.defaultEntry);
+          return new com.google.protobuf.MapFieldBuilder<>(feedsConverter);
         }
         return feeds_;
       }
-      private com.google.protobuf.MapField
-      internalGetMutableFeeds() {
-        onChanged();;
+      private com.google.protobuf.MapFieldBuilder
+          internalGetMutableFeeds() {
         if (feeds_ == null) {
-          feeds_ = com.google.protobuf.MapField.newMapField(
-              FeedsDefaultEntryHolder.defaultEntry);
-        }
-        if (!feeds_.isMutable()) {
-          feeds_ = feeds_.copy();
+          feeds_ = new com.google.protobuf.MapFieldBuilder<>(feedsConverter);
         }
+        bitField0_ |= 0x00000002;
+        onChanged();
         return feeds_;
       }
-
       public int getFeedsCount() {
-        return internalGetFeeds().getMap().size();
+        return internalGetFeeds().ensureBuilderMap().size();
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
-
       @java.lang.Override
       public boolean containsFeeds(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        return internalGetFeeds().getMap().containsKey(key);
+        return internalGetFeeds().ensureBuilderMap().containsKey(key);
       }
       /**
        * Use {@link #getFeedsMap()} instead.
@@ -12721,52 +14784,47 @@ public java.util.Mapmap<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
       @java.lang.Override
-
       public java.util.Map getFeedsMap() {
-        return internalGetFeeds().getMap();
+        return internalGetFeeds().getImmutableMap();
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
       @java.lang.Override
-
-      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
+      public /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrDefault(
           java.lang.String key,
-          com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed defaultValue) {
+          /* nullable */
+com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed defaultValue) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetFeeds().getMap();
-        return map.containsKey(key) ? map.get(key) : defaultValue;
+        java.util.Map map = internalGetMutableFeeds().ensureBuilderMap();
+        return map.containsKey(key) ? feedsConverter.build(map.get(key)) : defaultValue;
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
       @java.lang.Override
-
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed getFeedsOrThrow(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        java.util.Map map =
-            internalGetFeeds().getMap();
+        java.util.Map map = internalGetMutableFeeds().ensureBuilderMap();
         if (!map.containsKey(key)) {
           throw new java.lang.IllegalArgumentException();
         }
-        return map.get(key);
+        return feedsConverter.build(map.get(key));
       }
-
       public Builder clearFeeds() {
-        internalGetMutableFeeds().getMutableMap()
-            .clear();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        internalGetMutableFeeds().clear();
         return this;
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
-
       public Builder removeFeeds(
           java.lang.String key) {
         if (key == null) { throw new NullPointerException("map key"); }
-        internalGetMutableFeeds().getMutableMap()
+        internalGetMutableFeeds().ensureBuilderMap()
             .remove(key);
         return this;
       }
@@ -12775,8 +14833,9 @@ public Builder removeFeeds(
        */
       @java.lang.Deprecated
       public java.util.Map
-      getMutableFeeds() {
-        return internalGetMutableFeeds().getMutableMap();
+          getMutableFeeds() {
+        bitField0_ |= 0x00000002;
+        return internalGetMutableFeeds().ensureMessageMap();
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
@@ -12785,24 +14844,44 @@ public Builder putFeeds(
           java.lang.String key,
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed value) {
         if (key == null) { throw new NullPointerException("map key"); }
-        if (value == null) {
-  throw new NullPointerException("map value");
-}
-
-        internalGetMutableFeeds().getMutableMap()
+        if (value == null) { throw new NullPointerException("map value"); }
+        internalGetMutableFeeds().ensureBuilderMap()
             .put(key, value);
+        bitField0_ |= 0x00000002;
         return this;
       }
       /**
        * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
        */
-
       public Builder putAllFeeds(
           java.util.Map values) {
-        internalGetMutableFeeds().getMutableMap()
+        for (java.util.Map.Entry e : values.entrySet()) {
+          if (e.getKey() == null || e.getValue() == null) {
+            throw new NullPointerException();
+          }
+        }
+        internalGetMutableFeeds().ensureBuilderMap()
             .putAll(values);
+        bitField0_ |= 0x00000002;
         return this;
       }
+      /**
+       * map<string, .com.upstox.marketdatafeederv3udapi.rpc.proto.Feed> feeds = 2;
+       */
+      public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.Builder putFeedsBuilderIfAbsent(
+          java.lang.String key) {
+        java.util.Map builderMap = internalGetMutableFeeds().ensureBuilderMap();
+        com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedOrBuilder entry = builderMap.get(key);
+        if (entry == null) {
+          entry = com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.newBuilder();
+          builderMap.put(key, entry);
+        }
+        if (entry instanceof com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed) {
+          entry = ((com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed) entry).toBuilder();
+          builderMap.put(key, entry);
+        }
+        return (com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.Feed.Builder) entry;
+      }
 
       private long currentTs_ ;
       /**
@@ -12819,8 +14898,9 @@ public long getCurrentTs() {
        * @return This builder for chaining.
        */
       public Builder setCurrentTs(long value) {
-        
+
         currentTs_ = value;
+        bitField0_ |= 0x00000004;
         onChanged();
         return this;
       }
@@ -12829,7 +14909,7 @@ public Builder setCurrentTs(long value) {
        * @return This builder for chaining.
        */
       public Builder clearCurrentTs() {
-        
+        bitField0_ = (bitField0_ & ~0x00000004);
         currentTs_ = 0L;
         onChanged();
         return this;
@@ -12843,7 +14923,7 @@ public Builder clearCurrentTs() {
        * @return Whether the marketInfo field is set.
        */
       public boolean hasMarketInfo() {
-        return marketInfoBuilder_ != null || marketInfo_ != null;
+        return ((bitField0_ & 0x00000008) != 0);
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo marketInfo = 4;
@@ -12865,11 +14945,11 @@ public Builder setMarketInfo(com.upstox.marketdatafeederv3udapi.rpc.proto.Market
             throw new NullPointerException();
           }
           marketInfo_ = value;
-          onChanged();
         } else {
           marketInfoBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -12879,11 +14959,11 @@ public Builder setMarketInfo(
           com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.Builder builderForValue) {
         if (marketInfoBuilder_ == null) {
           marketInfo_ = builderForValue.build();
-          onChanged();
         } else {
           marketInfoBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -12891,38 +14971,40 @@ public Builder setMarketInfo(
        */
       public Builder mergeMarketInfo(com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo value) {
         if (marketInfoBuilder_ == null) {
-          if (marketInfo_ != null) {
-            marketInfo_ =
-              com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.newBuilder(marketInfo_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000008) != 0) &&
+            marketInfo_ != null &&
+            marketInfo_ != com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.getDefaultInstance()) {
+            getMarketInfoBuilder().mergeFrom(value);
           } else {
             marketInfo_ = value;
           }
-          onChanged();
         } else {
           marketInfoBuilder_.mergeFrom(value);
         }
-
+        if (marketInfo_ != null) {
+          bitField0_ |= 0x00000008;
+          onChanged();
+        }
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo marketInfo = 4;
        */
       public Builder clearMarketInfo() {
-        if (marketInfoBuilder_ == null) {
-          marketInfo_ = null;
-          onChanged();
-        } else {
-          marketInfo_ = null;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        marketInfo_ = null;
+        if (marketInfoBuilder_ != null) {
+          marketInfoBuilder_.dispose();
           marketInfoBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
        * .com.upstox.marketdatafeederv3udapi.rpc.proto.MarketInfo marketInfo = 4;
        */
       public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.MarketInfo.Builder getMarketInfoBuilder() {
-        
+        bitField0_ |= 0x00000008;
         onChanged();
         return getMarketInfoFieldBuilder().getBuilder();
       }
@@ -13072,6 +15154,11 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
   private static final 
     com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_Feed_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_fieldAccessorTable;
   private static final com.google.protobuf.Descriptors.Descriptor
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor;
   private static final 
@@ -13082,6 +15169,16 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
   private static final 
     com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_fieldAccessorTable;
   private static final com.google.protobuf.Descriptors.Descriptor
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_descriptor;
   private static final 
@@ -13102,86 +15199,104 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
   static {
     java.lang.String[] descriptorData = {
       "\n\026MarketDataFeedV3.proto\022,com.upstox.mar" +
-      "ketdatafeederv3udapi.rpc.proto\"9\n\004LTPC\022\013" +
-      "\n\003ltp\030\001 \001(\001\022\013\n\003ltt\030\002 \001(\003\022\013\n\003ltq\030\003 \001(\003\022\n\n" +
-      "\002cp\030\004 \001(\001\"W\n\013MarketLevel\022H\n\013bidAskQuote\030" +
-      "\001 \003(\01323.com.upstox.marketdatafeederv3uda" +
-      "pi.rpc.proto.Quote\"N\n\nMarketOHLC\022@\n\004ohlc" +
-      "\030\001 \003(\01322.com.upstox.marketdatafeederv3ud" +
-      "api.rpc.proto.OHLC\"?\n\005Quote\022\014\n\004bidQ\030\001 \001(" +
-      "\003\022\014\n\004bidP\030\002 \001(\001\022\014\n\004askQ\030\003 \001(\003\022\014\n\004askP\030\004 " +
-      "\001(\001\"V\n\014OptionGreeks\022\r\n\005delta\030\001 \001(\001\022\r\n\005th" +
-      "eta\030\002 \001(\001\022\r\n\005gamma\030\003 \001(\001\022\014\n\004vega\030\004 \001(\001\022\013" +
-      "\n\003rho\030\005 \001(\001\"i\n\004OHLC\022\020\n\010interval\030\001 \001(\t\022\014\n" +
-      "\004open\030\002 \001(\001\022\014\n\004high\030\003 \001(\001\022\013\n\003low\030\004 \001(\001\022\r" +
-      "\n\005close\030\005 \001(\001\022\013\n\003vol\030\006 \001(\003\022\n\n\002ts\030\007 \001(\003\"\216" +
-      "\003\n\016MarketFullFeed\022@\n\004ltpc\030\001 \001(\01322.com.up" +
-      "stox.marketdatafeederv3udapi.rpc.proto.L" +
-      "TPC\022N\n\013marketLevel\030\002 \001(\01329.com.upstox.ma" +
-      "rketdatafeederv3udapi.rpc.proto.MarketLe" +
-      "vel\022P\n\014optionGreeks\030\003 \001(\0132:.com.upstox.m" +
+      "ketdatafeederv3udapi.rpc.proto\032\036google/p" +
+      "rotobuf/wrappers.proto\"d\n\004LTPC\022\013\n\003ltp\030\001 " +
+      "\001(\001\022\013\n\003ltt\030\002 \001(\003\022\013\n\003ltq\030\003 \001(\003\022\n\n\002cp\030\004 \001(" +
+      "\001\022)\n\003iep\030\005 \001(\0132\034.google.protobuf.DoubleV" +
+      "alue\"W\n\013MarketLevel\022H\n\013bidAskQuote\030\001 \003(\013" +
+      "23.com.upstox.marketdatafeederv3udapi.rp" +
+      "c.proto.Quote\"N\n\nMarketOHLC\022@\n\004ohlc\030\001 \003(" +
+      "\01322.com.upstox.marketdatafeederv3udapi.r" +
+      "pc.proto.OHLC\"?\n\005Quote\022\014\n\004bidQ\030\001 \001(\003\022\014\n\004" +
+      "bidP\030\002 \001(\001\022\014\n\004askQ\030\003 \001(\003\022\014\n\004askP\030\004 \001(\001\"V" +
+      "\n\014OptionGreeks\022\r\n\005delta\030\001 \001(\001\022\r\n\005theta\030\002" +
+      " \001(\001\022\r\n\005gamma\030\003 \001(\001\022\014\n\004vega\030\004 \001(\001\022\013\n\003rho" +
+      "\030\005 \001(\001\"i\n\004OHLC\022\020\n\010interval\030\001 \001(\t\022\014\n\004open" +
+      "\030\002 \001(\001\022\014\n\004high\030\003 \001(\001\022\013\n\003low\030\004 \001(\001\022\r\n\005clo" +
+      "se\030\005 \001(\001\022\013\n\003vol\030\006 \001(\003\022\n\n\002ts\030\007 \001(\003\"\351\003\n\016Ma" +
+      "rketFullFeed\022@\n\004ltpc\030\001 \001(\01322.com.upstox." +
+      "marketdatafeederv3udapi.rpc.proto.LTPC\022N" +
+      "\n\013marketLevel\030\002 \001(\01329.com.upstox.marketd" +
+      "atafeederv3udapi.rpc.proto.MarketLevel\022P" +
+      "\n\014optionGreeks\030\003 \001(\0132:.com.upstox.market" +
+      "datafeederv3udapi.rpc.proto.OptionGreeks" +
+      "\022L\n\nmarketOHLC\030\004 \001(\01328.com.upstox.market" +
+      "datafeederv3udapi.rpc.proto.MarketOHLC\022\013" +
+      "\n\003atp\030\005 \001(\001\022\013\n\003vtt\030\006 \001(\003\022\n\n\002oi\030\007 \001(\001\022\n\n\002" +
+      "iv\030\010 \001(\001\022\013\n\003tbq\030\t \001(\001\022\013\n\003tsq\030\n \001(\001\022\013\n\003ie" +
+      "p\030\013 \001(\001\022\n\n\002rp\030\014 \001(\001\022\013\n\003ieq\030\r \001(\003\022\020\n\010iiqT" +
+      "otal\030\016 \001(\003\022\014\n\004iiqM\030\017 \001(\003\022\023\n\013casEligible\030" +
+      "\020 \001(\010\"\237\001\n\rIndexFullFeed\022@\n\004ltpc\030\001 \001(\01322." +
+      "com.upstox.marketdatafeederv3udapi.rpc.p" +
+      "roto.LTPC\022L\n\nmarketOHLC\030\002 \001(\01328.com.upst" +
+      "ox.marketdatafeederv3udapi.rpc.proto.Mar" +
+      "ketOHLC\"\275\001\n\010FullFeed\022P\n\010marketFF\030\001 \001(\0132<" +
+      ".com.upstox.marketdatafeederv3udapi.rpc." +
+      "proto.MarketFullFeedH\000\022N\n\007indexFF\030\002 \001(\0132" +
+      ";.com.upstox.marketdatafeederv3udapi.rpc" +
+      ".proto.IndexFullFeedH\000B\017\n\rFullFeedUnion\"" +
+      "\230\002\n\024FirstLevelWithGreeks\022@\n\004ltpc\030\001 \001(\01322" +
+      ".com.upstox.marketdatafeederv3udapi.rpc." +
+      "proto.LTPC\022G\n\nfirstDepth\030\002 \001(\01323.com.ups" +
+      "tox.marketdatafeederv3udapi.rpc.proto.Qu" +
+      "ote\022P\n\014optionGreeks\030\003 \001(\0132:.com.upstox.m" +
       "arketdatafeederv3udapi.rpc.proto.OptionG" +
-      "reeks\022L\n\nmarketOHLC\030\004 \001(\01328.com.upstox.m" +
-      "arketdatafeederv3udapi.rpc.proto.MarketO" +
-      "HLC\022\013\n\003atp\030\005 \001(\001\022\013\n\003vtt\030\006 \001(\003\022\n\n\002oi\030\007 \001(" +
-      "\001\022\n\n\002iv\030\010 \001(\001\022\013\n\003tbq\030\t \001(\001\022\013\n\003tsq\030\n \001(\001\"" +
-      "\237\001\n\rIndexFullFeed\022@\n\004ltpc\030\001 \001(\01322.com.up" +
-      "stox.marketdatafeederv3udapi.rpc.proto.L" +
-      "TPC\022L\n\nmarketOHLC\030\002 \001(\01328.com.upstox.mar" +
-      "ketdatafeederv3udapi.rpc.proto.MarketOHL" +
-      "C\"\275\001\n\010FullFeed\022P\n\010marketFF\030\001 \001(\0132<.com.u" +
-      "pstox.marketdatafeederv3udapi.rpc.proto." +
-      "MarketFullFeedH\000\022N\n\007indexFF\030\002 \001(\0132;.com." +
-      "upstox.marketdatafeederv3udapi.rpc.proto" +
-      ".IndexFullFeedH\000B\017\n\rFullFeedUnion\"\230\002\n\024Fi" +
-      "rstLevelWithGreeks\022@\n\004ltpc\030\001 \001(\01322.com.u" +
-      "pstox.marketdatafeederv3udapi.rpc.proto." +
-      "LTPC\022G\n\nfirstDepth\030\002 \001(\01323.com.upstox.ma" +
-      "rketdatafeederv3udapi.rpc.proto.Quote\022P\n" +
-      "\014optionGreeks\030\003 \001(\0132:.com.upstox.marketd" +
-      "atafeederv3udapi.rpc.proto.OptionGreeks\022" +
-      "\013\n\003vtt\030\004 \001(\003\022\n\n\002oi\030\005 \001(\001\022\n\n\002iv\030\006 \001(\001\"\327\002\n" +
-      "\004Feed\022B\n\004ltpc\030\001 \001(\01322.com.upstox.marketd" +
-      "atafeederv3udapi.rpc.proto.LTPCH\000\022J\n\010ful" +
-      "lFeed\030\002 \001(\01326.com.upstox.marketdatafeede" +
-      "rv3udapi.rpc.proto.FullFeedH\000\022b\n\024firstLe" +
-      "velWithGreeks\030\003 \001(\0132B.com.upstox.marketd" +
-      "atafeederv3udapi.rpc.proto.FirstLevelWit" +
-      "hGreeksH\000\022N\n\013requestMode\030\004 \001(\01629.com.ups" +
-      "tox.marketdatafeederv3udapi.rpc.proto.Re" +
-      "questModeB\013\n\tFeedUnion\"\342\001\n\nMarketInfo\022b\n" +
-      "\rsegmentStatus\030\001 \003(\0132K.com.upstox.market" +
-      "datafeederv3udapi.rpc.proto.MarketInfo.S" +
-      "egmentStatusEntry\032p\n\022SegmentStatusEntry\022" +
-      "\013\n\003key\030\001 \001(\t\022I\n\005value\030\002 \001(\0162:.com.upstox" +
-      ".marketdatafeederv3udapi.rpc.proto.Marke" +
-      "tStatus:\0028\001\"\351\002\n\014FeedResponse\022@\n\004type\030\001 \001" +
-      "(\01622.com.upstox.marketdatafeederv3udapi." +
-      "rpc.proto.Type\022T\n\005feeds\030\002 \003(\0132E.com.upst" +
-      "ox.marketdatafeederv3udapi.rpc.proto.Fee" +
-      "dResponse.FeedsEntry\022\021\n\tcurrentTs\030\003 \001(\003\022" +
-      "L\n\nmarketInfo\030\004 \001(\01328.com.upstox.marketd" +
-      "atafeederv3udapi.rpc.proto.MarketInfo\032`\n" +
-      "\nFeedsEntry\022\013\n\003key\030\001 \001(\t\022A\n\005value\030\002 \001(\0132" +
-      "2.com.upstox.marketdatafeederv3udapi.rpc" +
-      ".proto.Feed:\0028\001*8\n\004Type\022\020\n\014initial_feed\020" +
-      "\000\022\r\n\tlive_feed\020\001\022\017\n\013market_info\020\002*E\n\013Req" +
-      "uestMode\022\010\n\004ltpc\020\000\022\013\n\007full_d5\020\001\022\021\n\roptio" +
-      "n_greeks\020\002\022\014\n\010full_d30\020\003*{\n\014MarketStatus" +
-      "\022\022\n\016PRE_OPEN_START\020\000\022\020\n\014PRE_OPEN_END\020\001\022\017" +
-      "\n\013NORMAL_OPEN\020\002\022\020\n\014NORMAL_CLOSE\020\003\022\021\n\rCLO" +
-      "SING_START\020\004\022\017\n\013CLOSING_END\020\005b\006proto3"
+      "reeks\022\013\n\003vtt\030\004 \001(\003\022\n\n\002oi\030\005 \001(\001\022\n\n\002iv\030\006 \001" +
+      "(\001\"\327\002\n\004Feed\022B\n\004ltpc\030\001 \001(\01322.com.upstox.m" +
+      "arketdatafeederv3udapi.rpc.proto.LTPCH\000\022" +
+      "J\n\010fullFeed\030\002 \001(\01326.com.upstox.marketdat" +
+      "afeederv3udapi.rpc.proto.FullFeedH\000\022b\n\024f" +
+      "irstLevelWithGreeks\030\003 \001(\0132B.com.upstox.m" +
+      "arketdatafeederv3udapi.rpc.proto.FirstLe" +
+      "velWithGreeksH\000\022N\n\013requestMode\030\004 \001(\01629.c" +
+      "om.upstox.marketdatafeederv3udapi.rpc.pr" +
+      "oto.RequestModeB\013\n\tFeedUnion\"1\n\nStatusIn" +
+      "fo\022\016\n\006status\030\001 \001(\t\022\023\n\013updatedTime\030\002 \001(\003\"" +
+      "\245\005\n\nMarketInfo\022b\n\rsegmentStatus\030\001 \003(\0132K." +
+      "com.upstox.marketdatafeederv3udapi.rpc.p" +
+      "roto.MarketInfo.SegmentStatusEntry\022f\n\017ca" +
+      "sMarketStatus\030\002 \003(\0132M.com.upstox.marketd" +
+      "atafeederv3udapi.rpc.proto.MarketInfo.Ca" +
+      "sMarketStatusEntry\022p\n\024preOpenSessionStat" +
+      "us\030\003 \003(\0132R.com.upstox.marketdatafeederv3" +
+      "udapi.rpc.proto.MarketInfo.PreOpenSessio" +
+      "nStatusEntry\032p\n\022SegmentStatusEntry\022\013\n\003ke" +
+      "y\030\001 \001(\t\022I\n\005value\030\002 \001(\0162:.com.upstox.mark" +
+      "etdatafeederv3udapi.rpc.proto.MarketStat" +
+      "us:\0028\001\032p\n\024CasMarketStatusEntry\022\013\n\003key\030\001 " +
+      "\001(\t\022G\n\005value\030\002 \001(\01328.com.upstox.marketda" +
+      "tafeederv3udapi.rpc.proto.StatusInfo:\0028\001" +
+      "\032u\n\031PreOpenSessionStatusEntry\022\013\n\003key\030\001 \001" +
+      "(\t\022G\n\005value\030\002 \001(\01328.com.upstox.marketdat" +
+      "afeederv3udapi.rpc.proto.StatusInfo:\0028\001\"" +
+      "\351\002\n\014FeedResponse\022@\n\004type\030\001 \001(\01622.com.ups" +
+      "tox.marketdatafeederv3udapi.rpc.proto.Ty" +
+      "pe\022T\n\005feeds\030\002 \003(\0132E.com.upstox.marketdat" +
+      "afeederv3udapi.rpc.proto.FeedResponse.Fe" +
+      "edsEntry\022\021\n\tcurrentTs\030\003 \001(\003\022L\n\nmarketInf" +
+      "o\030\004 \001(\01328.com.upstox.marketdatafeederv3u" +
+      "dapi.rpc.proto.MarketInfo\032`\n\nFeedsEntry\022" +
+      "\013\n\003key\030\001 \001(\t\022A\n\005value\030\002 \001(\01322.com.upstox" +
+      ".marketdatafeederv3udapi.rpc.proto.Feed:" +
+      "\0028\001*8\n\004Type\022\020\n\014initial_feed\020\000\022\r\n\tlive_fe" +
+      "ed\020\001\022\017\n\013market_info\020\002*E\n\013RequestMode\022\010\n\004" +
+      "ltpc\020\000\022\013\n\007full_d5\020\001\022\021\n\roption_greeks\020\002\022\014" +
+      "\n\010full_d30\020\003*{\n\014MarketStatus\022\022\n\016PRE_OPEN" +
+      "_START\020\000\022\020\n\014PRE_OPEN_END\020\001\022\017\n\013NORMAL_OPE" +
+      "N\020\002\022\020\n\014NORMAL_CLOSE\020\003\022\021\n\rCLOSING_START\020\004" +
+      "\022\017\n\013CLOSING_END\020\005b\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
         new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.protobuf.WrappersProto.getDescriptor(),
         });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_LTPC_descriptor =
       getDescriptor().getMessageTypes().get(0);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_LTPC_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_LTPC_descriptor,
-        new java.lang.String[] { "Ltp", "Ltt", "Ltq", "Cp", });
+        new java.lang.String[] { "Ltp", "Ltt", "Ltq", "Cp", "Iep", });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketLevel_descriptor =
       getDescriptor().getMessageTypes().get(1);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketLevel_fieldAccessorTable = new
@@ -13217,7 +15332,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketFullFeed_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketFullFeed_descriptor,
-        new java.lang.String[] { "Ltpc", "MarketLevel", "OptionGreeks", "MarketOHLC", "Atp", "Vtt", "Oi", "Iv", "Tbq", "Tsq", });
+        new java.lang.String[] { "Ltpc", "MarketLevel", "OptionGreeks", "MarketOHLC", "Atp", "Vtt", "Oi", "Iv", "Tbq", "Tsq", "Iep", "Rp", "Ieq", "IiqTotal", "IiqM", "CasEligible", });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_IndexFullFeed_descriptor =
       getDescriptor().getMessageTypes().get(7);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_IndexFullFeed_fieldAccessorTable = new
@@ -13242,20 +15357,38 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_Feed_descriptor,
         new java.lang.String[] { "Ltpc", "FullFeed", "FirstLevelWithGreeks", "RequestMode", "FeedUnion", });
-    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor =
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor =
       getDescriptor().getMessageTypes().get(11);
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_StatusInfo_descriptor,
+        new java.lang.String[] { "Status", "UpdatedTime", });
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor =
+      getDescriptor().getMessageTypes().get(12);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor,
-        new java.lang.String[] { "SegmentStatus", });
+        new java.lang.String[] { "SegmentStatus", "CasMarketStatus", "PreOpenSessionStatus", });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_descriptor =
       internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor.getNestedTypes().get(0);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_SegmentStatusEntry_descriptor,
         new java.lang.String[] { "Key", "Value", });
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_descriptor =
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor.getNestedTypes().get(1);
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_CasMarketStatusEntry_descriptor,
+        new java.lang.String[] { "Key", "Value", });
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_descriptor =
+      internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_descriptor.getNestedTypes().get(2);
+    internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_MarketInfo_PreOpenSessionStatusEntry_descriptor,
+        new java.lang.String[] { "Key", "Value", });
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_descriptor =
-      getDescriptor().getMessageTypes().get(12);
+      getDescriptor().getMessageTypes().get(13);
     internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_descriptor,
@@ -13266,6 +15399,7 @@ public com.upstox.marketdatafeederv3udapi.rpc.proto.MarketDataFeedV3.FeedRespons
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_com_upstox_marketdatafeederv3udapi_rpc_proto_FeedResponse_FeedsEntry_descriptor,
         new java.lang.String[] { "Key", "Value", });
+    com.google.protobuf.WrappersProto.getDescriptor();
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/src/main/java/io/swagger/client/api/MarketQuoteV3Api.java b/src/main/java/io/swagger/client/api/MarketQuoteV3Api.java
index 64b85f3..6488a1f 100644
--- a/src/main/java/io/swagger/client/api/MarketQuoteV3Api.java
+++ b/src/main/java/io/swagger/client/api/MarketQuoteV3Api.java
@@ -26,6 +26,8 @@
 import java.io.IOException;
 
 
+import com.upstox.api.ApiGatewayErrorResponse;
+import com.upstox.api.GetFullMarketQuoteResponseV3;
 import com.upstox.api.GetMarketQuoteLastTradedPriceResponseV3;
 import com.upstox.api.GetMarketQuoteOHLCResponseV3;
 import com.upstox.api.GetMarketQuoteOptionGreekResponseV3;
@@ -60,6 +62,131 @@ public void setHeadersOverrides(Map headers) {
         this.headers = headers;
     }
 
+    /**
+     * Build call for getFullMarketQuoteV3
+     * @param instrumentKey Comma separated list of instrument keys (optional)
+     * @param progressListener Progress listener
+     * @param progressRequestListener Progress request listener
+     * @return Call to execute
+     * @throws ApiException If fail to serialize the request body object
+     */
+    public com.squareup.okhttp.Call getFullMarketQuoteV3Call(String instrumentKey, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
+        Object localVarPostBody = null;
+        
+        // create path and map variables
+        String localVarPath = "/v3/market-quote/quotes";
+
+        List localVarQueryParams = new ArrayList();
+        List localVarCollectionQueryParams = new ArrayList();
+        if (instrumentKey != null)
+        localVarQueryParams.addAll(apiClient.parameterToPair("instrument_key", instrumentKey));
+
+        Map localVarHeaderParams = new HashMap();
+
+        Map localVarFormParams = new HashMap();
+
+        final String[] localVarAccepts = {
+            "*/*", "application/json"
+        };
+        final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+        if (localVarAccept != null) localVarHeaderParams.put("Accept", localVarAccept);
+
+        final String[] localVarContentTypes = {
+            
+        };
+        final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+        localVarHeaderParams.put("Content-Type", localVarContentType);
+
+        if(progressListener != null) {
+            apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() {
+                @Override
+                public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException {
+                    com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request());
+                    return originalResponse.newBuilder()
+                    .body(new ProgressResponseBody(originalResponse.body(), progressListener))
+                    .build();
+                }
+            });
+        }
+
+        String[] localVarAuthNames = new String[] { "OAUTH2" };
+        if (headers != null) {
+            localVarHeaderParams.putAll(headers);
+        }
+        return apiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, progressRequestListener);
+    }
+    
+    @SuppressWarnings("rawtypes")
+    private com.squareup.okhttp.Call getFullMarketQuoteV3ValidateBeforeCall(String instrumentKey, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
+        
+        com.squareup.okhttp.Call call = getFullMarketQuoteV3Call(instrumentKey, progressListener, progressRequestListener);
+        return call;
+
+        
+        
+        
+        
+    }
+
+    /**
+     * Market quotes and instruments - Full market quotes
+     * This API provides the functionality to retrieve the full market quotes for one or more instruments.This API returns the complete market data snapshot of up to 500 instruments in one go, widened to carry every field published on the upstream extended feed.
+     * @param instrumentKey Comma separated list of instrument keys (optional)
+     * @return GetFullMarketQuoteResponseV3
+     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+     */
+    public GetFullMarketQuoteResponseV3 getFullMarketQuoteV3(String instrumentKey) throws ApiException {
+        ApiResponse resp = getFullMarketQuoteV3WithHttpInfo(instrumentKey);
+        return resp.getData();
+    }
+
+    /**
+     * Market quotes and instruments - Full market quotes
+     * This API provides the functionality to retrieve the full market quotes for one or more instruments.This API returns the complete market data snapshot of up to 500 instruments in one go, widened to carry every field published on the upstream extended feed.
+     * @param instrumentKey Comma separated list of instrument keys (optional)
+     * @return ApiResponse<GetFullMarketQuoteResponseV3>
+     * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+     */
+    public ApiResponse getFullMarketQuoteV3WithHttpInfo(String instrumentKey) throws ApiException {
+        com.squareup.okhttp.Call call = getFullMarketQuoteV3ValidateBeforeCall(instrumentKey, null, null);
+        Type localVarReturnType = new TypeToken(){}.getType();
+        return apiClient.execute(call, localVarReturnType);
+    }
+
+    /**
+     * Market quotes and instruments - Full market quotes (asynchronously)
+     * This API provides the functionality to retrieve the full market quotes for one or more instruments.This API returns the complete market data snapshot of up to 500 instruments in one go, widened to carry every field published on the upstream extended feed.
+     * @param instrumentKey Comma separated list of instrument keys (optional)
+     * @param callback The callback to be executed when the API call finishes
+     * @return The request call
+     * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+     */
+    public com.squareup.okhttp.Call getFullMarketQuoteV3Async(String instrumentKey, final ApiCallback callback) throws ApiException {
+
+        ProgressResponseBody.ProgressListener progressListener = null;
+        ProgressRequestBody.ProgressRequestListener progressRequestListener = null;
+
+        if (callback != null) {
+            progressListener = new ProgressResponseBody.ProgressListener() {
+                @Override
+                public void update(long bytesRead, long contentLength, boolean done) {
+                    callback.onDownloadProgress(bytesRead, contentLength, done);
+                }
+            };
+
+            progressRequestListener = new ProgressRequestBody.ProgressRequestListener() {
+                @Override
+                public void onRequestProgress(long bytesWritten, long contentLength, boolean done) {
+                    callback.onUploadProgress(bytesWritten, contentLength, done);
+                }
+            };
+        }
+
+        com.squareup.okhttp.Call call = getFullMarketQuoteV3ValidateBeforeCall(instrumentKey, progressListener, progressRequestListener);
+        Type localVarReturnType = new TypeToken(){}.getType();
+        apiClient.executeAsync(call, localVarReturnType, callback);
+        return call;
+    }
     /**
      * Build call for getLtp
      * @param instrumentKey Comma separated list of instrument keys (optional)
diff --git a/src/test/java/com/upstox/sanity/MarketQuoteV3ApiTest.java b/src/test/java/com/upstox/sanity/MarketQuoteV3ApiTest.java
new file mode 100644
index 0000000..788ea8c
--- /dev/null
+++ b/src/test/java/com/upstox/sanity/MarketQuoteV3ApiTest.java
@@ -0,0 +1,79 @@
+package com.upstox.sanity;
+
+import com.upstox.ApiClient;
+import com.upstox.ApiException;
+import com.upstox.Configuration;
+import com.upstox.api.GetFullMarketQuoteResponseV3;
+import com.upstox.api.MarketQuoteSymbolV3;
+import com.upstox.auth.OAuth;
+import io.swagger.client.api.MarketQuoteV3Api;
+
+import java.util.Map;
+
+public class MarketQuoteV3ApiTest {
+    public static void main(String[] args) {
+        ApiClient defaultClient = Configuration.getDefaultApiClient();
+
+        OAuth OAUTH2 = (OAuth) defaultClient.getAuthentication("OAUTH2");
+        OAUTH2.setAccessToken(DataToken.accessToken);
+
+        MarketQuoteV3Api apiInstance = new MarketQuoteV3Api();
+
+        // Single instrument
+        try {
+            GetFullMarketQuoteResponseV3 result = apiInstance.getFullMarketQuoteV3("NSE_EQ|INE160A01022");
+            System.out.println(result);
+            printQuotes(result);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling MarketQuoteV3Api#getFullMarketQuoteV3 (single instrument)"
+                    + " status=" + e.getCode());
+            System.out.println(e.getResponseBody());
+        }
+
+        // Multiple instruments (comma separated)
+        try {
+            GetFullMarketQuoteResponseV3 result =
+                    apiInstance.getFullMarketQuoteV3("NSE_EQ|INE160A01022,NSE_INDEX|Nifty 50");
+            System.out.println(result);
+            printQuotes(result);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling MarketQuoteV3Api#getFullMarketQuoteV3 (multiple instruments)"
+                    + " status=" + e.getCode());
+            System.out.println(e.getResponseBody());
+        }
+
+        // Invalid instrument key - exercises the partial_success / error status path
+        try {
+            GetFullMarketQuoteResponseV3 result =
+                    apiInstance.getFullMarketQuoteV3("NSE_EQ|INE160A01022,NSE_EQ|INVALID");
+            System.out.println("status: " + result.getStatus());
+            printQuotes(result);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling MarketQuoteV3Api#getFullMarketQuoteV3 (invalid instrument)"
+                    + " status=" + e.getCode());
+            System.out.println(e.getResponseBody());
+        }
+    }
+
+    private static void printQuotes(GetFullMarketQuoteResponseV3 result) {
+        if (result == null || result.getData() == null) {
+            System.out.println("No data returned");
+            return;
+        }
+        for (Map.Entry entry : result.getData().entrySet()) {
+            MarketQuoteSymbolV3 quote = entry.getValue();
+            // Typed accessors - these must compile as real types, not Object
+            String symbol = quote.getSymbol();
+            Double lastPrice = quote.getLastPrice();
+            Long volume = quote.getVolume();
+            Boolean casEligible = quote.getCasEligible();
+            System.out.println(entry.getKey()
+                    + " symbol=" + symbol
+                    + " lastPrice=" + lastPrice
+                    + " volume=" + volume
+                    + " casEligible=" + casEligible
+                    + " ohlc=" + quote.getOhlc()
+                    + " depth=" + quote.getDepth());
+        }
+    }
+}
diff --git a/src/test/java/com/upstox/sanity/SanityTest.java b/src/test/java/com/upstox/sanity/SanityTest.java
index 549647c..177f2e8 100644
--- a/src/test/java/com/upstox/sanity/SanityTest.java
+++ b/src/test/java/com/upstox/sanity/SanityTest.java
@@ -84,6 +84,7 @@ public static void main(String[] args) throws ApiException {
             IpoApiTest.main(null);
             SmartlistApiTest.main(null);
             PayoutApiTest.main(null);
+            MarketQuoteV3ApiTest.main(null);
         }
         catch (ApiException e){
             e.printStackTrace();