public void MergeFrom(Environment other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Name.Length != 0)
            {
                Name = other.Name;
            }
            if (other.DisplayName.Length != 0)
            {
                DisplayName = other.DisplayName;
            }
            if (other.Description.Length != 0)
            {
                Description = other.Description;
            }
            if (other.PostStartupScript.Length != 0)
            {
                PostStartupScript = other.PostStartupScript;
            }
            if (other.createTime_ != null)
            {
                if (createTime_ == null)
                {
                    CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
                }
                CreateTime.MergeFrom(other.CreateTime);
            }
            switch (other.ImageTypeCase)
            {
            case ImageTypeOneofCase.VmImage:
                if (VmImage == null)
                {
                    VmImage = new global::Google.Cloud.Notebooks.V1.VmImage();
                }
                VmImage.MergeFrom(other.VmImage);
                break;

            case ImageTypeOneofCase.ContainerImage:
                if (ContainerImage == null)
                {
                    ContainerImage = new global::Google.Cloud.Notebooks.V1.ContainerImage();
                }
                ContainerImage.MergeFrom(other.ContainerImage);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input)
        {
            uint tag;

            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                    break;

                case 10: {
                    Name = input.ReadString();
                    break;
                }

                case 18: {
                    DisplayName = input.ReadString();
                    break;
                }

                case 26: {
                    Description = input.ReadString();
                    break;
                }

                case 50: {
                    global::Google.Cloud.Notebooks.V1.VmImage subBuilder = new global::Google.Cloud.Notebooks.V1.VmImage();
                    if (imageTypeCase_ == ImageTypeOneofCase.VmImage)
                    {
                        subBuilder.MergeFrom(VmImage);
                    }
                    input.ReadMessage(subBuilder);
                    VmImage = subBuilder;
                    break;
                }

                case 58: {
                    global::Google.Cloud.Notebooks.V1.ContainerImage subBuilder = new global::Google.Cloud.Notebooks.V1.ContainerImage();
                    if (imageTypeCase_ == ImageTypeOneofCase.ContainerImage)
                    {
                        subBuilder.MergeFrom(ContainerImage);
                    }
                    input.ReadMessage(subBuilder);
                    ContainerImage = subBuilder;
                    break;
                }

                case 66: {
                    PostStartupScript = input.ReadString();
                    break;
                }

                case 74: {
                    if (createTime_ == null)
                    {
                        CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
                    }
                    input.ReadMessage(CreateTime);
                    break;
                }
                }
            }
        }
        public void MergeFrom(pb::CodedInputStream input)
        {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            input.ReadRawMessage(this);
    #else
            uint tag;
            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;

                case 10: {
                    Name = input.ReadString();
                    break;
                }

                case 18: {
                    DisplayName = input.ReadString();
                    break;
                }

                case 26: {
                    Description = input.ReadString();
                    break;
                }

                case 50: {
                    global::Google.Cloud.Notebooks.V1.VmImage subBuilder = new global::Google.Cloud.Notebooks.V1.VmImage();
                    if (imageTypeCase_ == ImageTypeOneofCase.VmImage)
                    {
                        subBuilder.MergeFrom(VmImage);
                    }
                    input.ReadMessage(subBuilder);
                    VmImage = subBuilder;
                    break;
                }

                case 58: {
                    global::Google.Cloud.Notebooks.V1.ContainerImage subBuilder = new global::Google.Cloud.Notebooks.V1.ContainerImage();
                    if (imageTypeCase_ == ImageTypeOneofCase.ContainerImage)
                    {
                        subBuilder.MergeFrom(ContainerImage);
                    }
                    input.ReadMessage(subBuilder);
                    ContainerImage = subBuilder;
                    break;
                }

                case 66: {
                    PostStartupScript = input.ReadString();
                    break;
                }

                case 74: {
                    if (createTime_ == null)
                    {
                        CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
                    }
                    input.ReadMessage(CreateTime);
                    break;
                }
                }
            }
    #endif
        }