File: artifacts\obj\Aspire.Dashboard\Debug\net8.0\ResourceService.cs
Project: src\src\Aspire.Dashboard\Aspire.Dashboard.csproj (Aspire.Dashboard)
// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: resource_service.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Aspire.ResourceService.Proto.V1 {

  /// <summary>Holder for reflection information generated from resource_service.proto</summary>
  internal static partial class ResourceServiceReflection {

    #region Descriptor
    /// <summary>File descriptor for resource_service.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static ResourceServiceReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChZyZXNvdXJjZV9zZXJ2aWNlLnByb3RvEglhc3BpcmUudjEaHGdvb2dsZS9w",
            "cm90b2J1Zi9zdHJ1Y3QucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3Rh",
            "bXAucHJvdG8iHwodQXBwbGljYXRpb25JbmZvcm1hdGlvblJlcXVlc3QiOgoe",
            "QXBwbGljYXRpb25JbmZvcm1hdGlvblJlc3BvbnNlEhgKEGFwcGxpY2F0aW9u",
            "X25hbWUYASABKAkimwMKD1Jlc291cmNlQ29tbWFuZBIMCgRuYW1lGAEgASgJ",
            "EhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIhChRjb25maXJtYXRpb25fbWVzc2Fn",
            "ZRgDIAEoCUgAiAEBEi4KCXBhcmFtZXRlchgEIAEoCzIWLmdvb2dsZS5wcm90",
            "b2J1Zi5WYWx1ZUgBiAEBEhYKDmlzX2hpZ2hsaWdodGVkGAUgASgIEhYKCWlj",
            "b25fbmFtZRgGIAEoCUgCiAEBEjEKDGljb25fdmFyaWFudBgHIAEoDjIWLmFz",
            "cGlyZS52MS5JY29uVmFyaWFudEgDiAEBEiAKE2Rpc3BsYXlfZGVzY3JpcHRp",
            "b24YCCABKAlIBIgBARIuCgVzdGF0ZRgJIAEoDjIfLmFzcGlyZS52MS5SZXNv",
            "dXJjZUNvbW1hbmRTdGF0ZUIXChVfY29uZmlybWF0aW9uX21lc3NhZ2VCDAoK",
            "X3BhcmFtZXRlckIMCgpfaWNvbl9uYW1lQg8KDV9pY29uX3ZhcmlhbnRCFgoU",
            "X2Rpc3BsYXlfZGVzY3JpcHRpb24imgEKFlJlc291cmNlQ29tbWFuZFJlcXVl",
            "c3QSFAoMY29tbWFuZF9uYW1lGAEgASgJEhUKDXJlc291cmNlX25hbWUYAiAB",
            "KAkSFQoNcmVzb3VyY2VfdHlwZRgDIAEoCRIuCglwYXJhbWV0ZXIYBCABKAsy",
            "Fi5nb29nbGUucHJvdG9idWYuVmFsdWVIAIgBAUIMCgpfcGFyYW1ldGVyIn0K",
            "F1Jlc291cmNlQ29tbWFuZFJlc3BvbnNlEjQKBGtpbmQYASABKA4yJi5hc3Bp",
            "cmUudjEuUmVzb3VyY2VDb21tYW5kUmVzcG9uc2VLaW5kEhoKDWVycm9yX21l",
            "c3NhZ2UYAiABKAlIAIgBAUIQCg5fZXJyb3JfbWVzc2FnZSJ9CgxSZXNvdXJj",
            "ZVR5cGUSEwoLdW5pcXVlX25hbWUYASABKAkSGQoMZGlzcGxheV9uYW1lGAIg",
            "ASgJSACIAQESLAoIY29tbWFuZHMYAyADKAsyGi5hc3BpcmUudjEuUmVzb3Vy",
            "Y2VDb21tYW5kQg8KDV9kaXNwbGF5X25hbWUiVwoTRW52aXJvbm1lbnRWYXJp",
            "YWJsZRIMCgRuYW1lGAEgASgJEhIKBXZhbHVlGAIgASgJSACIAQESFAoMaXNf",
            "ZnJvbV9zcGVjGAMgASgIQggKBl92YWx1ZSKsAQoDVXJsEhoKDWVuZHBvaW50",
            "X25hbWUYASABKAlIAIgBARIQCghmdWxsX3VybBgCIAEoCRITCgtpc19pbnRl",
            "cm5hbBgDIAEoCBITCgtpc19pbmFjdGl2ZRgEIAEoCBI7ChJkaXNwbGF5X3By",
            "b3BlcnRpZXMYBSABKAsyHy5hc3BpcmUudjEuVXJsRGlzcGxheVByb3BlcnRp",
            "ZXNCEAoOX2VuZHBvaW50X25hbWUiQAoUVXJsRGlzcGxheVByb3BlcnRpZXMS",
            "EgoKc29ydF9vcmRlchgBIAEoBRIUCgxkaXNwbGF5X25hbWUYAiABKAkiUgoG",
            "Vm9sdW1lEg4KBnNvdXJjZRgBIAEoCRIOCgZ0YXJnZXQYAiABKAkSEgoKbW91",
            "bnRfdHlwZRgDIAEoCRIUCgxpc19yZWFkX29ubHkYBCABKAgifAoMSGVhbHRo",
            "UmVwb3J0EiwKBnN0YXR1cxgBIAEoDjIXLmFzcGlyZS52MS5IZWFsdGhTdGF0",
            "dXNIAIgBARILCgNrZXkYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSEQoJ",
            "ZXhjZXB0aW9uGAQgASgJQgkKB19zdGF0dXMiOwoUUmVzb3VyY2VSZWxhdGlv",
            "bnNoaXASFQoNcmVzb3VyY2VfbmFtZRgBIAEoCRIMCgR0eXBlGAIgASgJIp8B",
            "ChBSZXNvdXJjZVByb3BlcnR5EgwKBG5hbWUYASABKAkSGQoMZGlzcGxheV9u",
            "YW1lGAIgASgJSACIAQESJQoFdmFsdWUYAyABKAsyFi5nb29nbGUucHJvdG9i",
            "dWYuVmFsdWUSGQoMaXNfc2Vuc2l0aXZlGAQgASgISAGIAQFCDwoNX2Rpc3Bs",
            "YXlfbmFtZUIPCg1faXNfc2Vuc2l0aXZlIr0FCghSZXNvdXJjZRIMCgRuYW1l",
            "GAEgASgJEhUKDXJlc291cmNlX3R5cGUYAiABKAkSFAoMZGlzcGxheV9uYW1l",
            "GAMgASgJEgsKA3VpZBgEIAEoCRISCgVzdGF0ZRgFIAEoCUgAiAEBEjMKCmNy",
            "ZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGI",
            "AQESMwoLZW52aXJvbm1lbnQYByADKAsyHi5hc3BpcmUudjEuRW52aXJvbm1l",
            "bnRWYXJpYWJsZRIsCghjb21tYW5kcxgLIAMoCzIaLmFzcGlyZS52MS5SZXNv",
            "dXJjZUNvbW1hbmQSLwoKcHJvcGVydGllcxgMIAMoCzIbLmFzcGlyZS52MS5S",
            "ZXNvdXJjZVByb3BlcnR5EhwKBHVybHMYDSADKAsyDi5hc3BpcmUudjEuVXJs",
            "EhgKC3N0YXRlX3N0eWxlGA4gASgJSAKIAQESIgoHdm9sdW1lcxgPIAMoCzIR",
            "LmFzcGlyZS52MS5Wb2x1bWUSLwoOaGVhbHRoX3JlcG9ydHMYESADKAsyFy5h",
            "c3BpcmUudjEuSGVhbHRoUmVwb3J0EjMKCnN0YXJ0ZWRfYXQYEiABKAsyGi5n",
            "b29nbGUucHJvdG9idWYuVGltZXN0YW1wSAOIAQESMwoKc3RvcHBlZF9hdBgT",
            "IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARI2Cg1yZWxh",
            "dGlvbnNoaXBzGBQgAygLMh8uYXNwaXJlLnYxLlJlc291cmNlUmVsYXRpb25z",
            "aGlwQggKBl9zdGF0ZUINCgtfY3JlYXRlZF9hdEIOCgxfc3RhdGVfc3R5bGVC",
            "DQoLX3N0YXJ0ZWRfYXRCDQoLX3N0b3BwZWRfYXRKBAgIEAlKBAgJEApKBAgK",
            "EAtKBAgQEBEibgoTSW5pdGlhbFJlc291cmNlRGF0YRImCglyZXNvdXJjZXMY",
            "ASADKAsyEy5hc3BpcmUudjEuUmVzb3VyY2USLwoOcmVzb3VyY2VfdHlwZXMY",
            "AiADKAsyFy5hc3BpcmUudjEuUmVzb3VyY2VUeXBlIkAKEFJlc291cmNlRGVs",
            "ZXRpb24SFQoNcmVzb3VyY2VfbmFtZRgBIAEoCRIVCg1yZXNvdXJjZV90eXBl",
            "GAIgASgJInQKFFdhdGNoUmVzb3VyY2VzQ2hhbmdlEi0KBmRlbGV0ZRgBIAEo",
            "CzIbLmFzcGlyZS52MS5SZXNvdXJjZURlbGV0aW9uSAASJQoGdXBzZXJ0GAIg",
            "ASgLMhMuYXNwaXJlLnYxLlJlc291cmNlSABCBgoEa2luZCJHChVXYXRjaFJl",
            "c291cmNlc0NoYW5nZXMSLgoFdmFsdWUYASADKAsyHy5hc3BpcmUudjEuV2F0",
            "Y2hSZXNvdXJjZXNDaGFuZ2UiQwoVV2F0Y2hSZXNvdXJjZXNSZXF1ZXN0EhkK",
            "DGlzX3JlY29ubmVjdBgBIAEoCEgAiAEBQg8KDV9pc19yZWNvbm5lY3QiiwEK",
            "FFdhdGNoUmVzb3VyY2VzVXBkYXRlEjYKDGluaXRpYWxfZGF0YRgBIAEoCzIe",
            "LmFzcGlyZS52MS5Jbml0aWFsUmVzb3VyY2VEYXRhSAASMwoHY2hhbmdlcxgC",
            "IAEoCzIgLmFzcGlyZS52MS5XYXRjaFJlc291cmNlc0NoYW5nZXNIAEIGCgRr",
            "aW5kIlsKDkNvbnNvbGVMb2dMaW5lEgwKBHRleHQYASABKAkSFwoKaXNfc3Rk",
            "X2VychgCIAEoCEgAiAEBEhMKC2xpbmVfbnVtYmVyGAMgASgFQg0KC19pc19z",
            "dGRfZXJyIjgKH1dhdGNoUmVzb3VyY2VDb25zb2xlTG9nc1JlcXVlc3QSFQoN",
            "cmVzb3VyY2VfbmFtZRgBIAEoCSJOCh5XYXRjaFJlc291cmNlQ29uc29sZUxv",
            "Z3NVcGRhdGUSLAoJbG9nX2xpbmVzGAEgAygLMhkuYXNwaXJlLnYxLkNvbnNv",
            "bGVMb2dMaW5lKiYKC0ljb25WYXJpYW50EgsKB1JFR1VMQVIQABIKCgZGSUxM",
            "RUQQASo9ChRSZXNvdXJjZUNvbW1hbmRTdGF0ZRILCgdFTkFCTEVEEAASDAoI",
            "RElTQUJMRUQQARIKCgZISURERU4QAipWChtSZXNvdXJjZUNvbW1hbmRSZXNw",
            "b25zZUtpbmQSDQoJVU5ERUZJTkVEEAASDQoJU1VDQ0VFREVEEAESCgoGRkFJ",
            "TEVEEAISDQoJQ0FOQ0VMTEVEEAMqOAoMSGVhbHRoU3RhdHVzEgsKB0hFQUxU",
            "SFkQABINCglVTkhFQUxUSFkQARIMCghERUdSQURFRBACMrEDChBEYXNoYm9h",
            "cmRTZXJ2aWNlEnAKGUdldEFwcGxpY2F0aW9uSW5mb3JtYXRpb24SKC5hc3Bp",
            "cmUudjEuQXBwbGljYXRpb25JbmZvcm1hdGlvblJlcXVlc3QaKS5hc3BpcmUu",
            "djEuQXBwbGljYXRpb25JbmZvcm1hdGlvblJlc3BvbnNlElUKDldhdGNoUmVz",
            "b3VyY2VzEiAuYXNwaXJlLnYxLldhdGNoUmVzb3VyY2VzUmVxdWVzdBofLmFz",
            "cGlyZS52MS5XYXRjaFJlc291cmNlc1VwZGF0ZTABEnMKGFdhdGNoUmVzb3Vy",
            "Y2VDb25zb2xlTG9ncxIqLmFzcGlyZS52MS5XYXRjaFJlc291cmNlQ29uc29s",
            "ZUxvZ3NSZXF1ZXN0GikuYXNwaXJlLnYxLldhdGNoUmVzb3VyY2VDb25zb2xl",
            "TG9nc1VwZGF0ZTABEl8KFkV4ZWN1dGVSZXNvdXJjZUNvbW1hbmQSIS5hc3Bp",
            "cmUudjEuUmVzb3VyY2VDb21tYW5kUmVxdWVzdBoiLmFzcGlyZS52MS5SZXNv",
            "dXJjZUNvbW1hbmRSZXNwb25zZUIiqgIfQXNwaXJlLlJlc291cmNlU2Vydmlj",
            "ZS5Qcm90by5WMWIGcHJvdG8z"));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Aspire.ResourceService.Proto.V1.IconVariant), typeof(global::Aspire.ResourceService.Proto.V1.ResourceCommandState), typeof(global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind), typeof(global::Aspire.ResourceService.Proto.V1.HealthStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ApplicationInformationRequest), global::Aspire.ResourceService.Proto.V1.ApplicationInformationRequest.Parser, null, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ApplicationInformationResponse), global::Aspire.ResourceService.Proto.V1.ApplicationInformationResponse.Parser, new[]{ "ApplicationName" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ResourceCommand), global::Aspire.ResourceService.Proto.V1.ResourceCommand.Parser, new[]{ "Name", "DisplayName", "ConfirmationMessage", "Parameter", "IsHighlighted", "IconName", "IconVariant", "DisplayDescription", "State" }, new[]{ "ConfirmationMessage", "Parameter", "IconName", "IconVariant", "DisplayDescription" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ResourceCommandRequest), global::Aspire.ResourceService.Proto.V1.ResourceCommandRequest.Parser, new[]{ "CommandName", "ResourceName", "ResourceType", "Parameter" }, new[]{ "Parameter" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ResourceCommandResponse), global::Aspire.ResourceService.Proto.V1.ResourceCommandResponse.Parser, new[]{ "Kind", "ErrorMessage" }, new[]{ "ErrorMessage" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ResourceType), global::Aspire.ResourceService.Proto.V1.ResourceType.Parser, new[]{ "UniqueName", "DisplayName", "Commands" }, new[]{ "DisplayName" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.EnvironmentVariable), global::Aspire.ResourceService.Proto.V1.EnvironmentVariable.Parser, new[]{ "Name", "Value", "IsFromSpec" }, new[]{ "Value" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.Url), global::Aspire.ResourceService.Proto.V1.Url.Parser, new[]{ "EndpointName", "FullUrl", "IsInternal", "IsInactive", "DisplayProperties" }, new[]{ "EndpointName" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.UrlDisplayProperties), global::Aspire.ResourceService.Proto.V1.UrlDisplayProperties.Parser, new[]{ "SortOrder", "DisplayName" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.Volume), global::Aspire.ResourceService.Proto.V1.Volume.Parser, new[]{ "Source", "Target", "MountType", "IsReadOnly" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.HealthReport), global::Aspire.ResourceService.Proto.V1.HealthReport.Parser, new[]{ "Status", "Key", "Description", "Exception" }, new[]{ "Status" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ResourceRelationship), global::Aspire.ResourceService.Proto.V1.ResourceRelationship.Parser, new[]{ "ResourceName", "Type" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ResourceProperty), global::Aspire.ResourceService.Proto.V1.ResourceProperty.Parser, new[]{ "Name", "DisplayName", "Value", "IsSensitive" }, new[]{ "DisplayName", "IsSensitive" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.Resource), global::Aspire.ResourceService.Proto.V1.Resource.Parser, new[]{ "Name", "ResourceType", "DisplayName", "Uid", "State", "CreatedAt", "Environment", "Commands", "Properties", "Urls", "StateStyle", "Volumes", "HealthReports", "StartedAt", "StoppedAt", "Relationships" }, new[]{ "State", "CreatedAt", "StateStyle", "StartedAt", "StoppedAt" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.InitialResourceData), global::Aspire.ResourceService.Proto.V1.InitialResourceData.Parser, new[]{ "Resources", "ResourceTypes" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ResourceDeletion), global::Aspire.ResourceService.Proto.V1.ResourceDeletion.Parser, new[]{ "ResourceName", "ResourceType" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.WatchResourcesChange), global::Aspire.ResourceService.Proto.V1.WatchResourcesChange.Parser, new[]{ "Delete", "Upsert" }, new[]{ "Kind" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.WatchResourcesChanges), global::Aspire.ResourceService.Proto.V1.WatchResourcesChanges.Parser, new[]{ "Value" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.WatchResourcesRequest), global::Aspire.ResourceService.Proto.V1.WatchResourcesRequest.Parser, new[]{ "IsReconnect" }, new[]{ "IsReconnect" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.WatchResourcesUpdate), global::Aspire.ResourceService.Proto.V1.WatchResourcesUpdate.Parser, new[]{ "InitialData", "Changes" }, new[]{ "Kind" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.ConsoleLogLine), global::Aspire.ResourceService.Proto.V1.ConsoleLogLine.Parser, new[]{ "Text", "IsStdErr", "LineNumber" }, new[]{ "IsStdErr" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.WatchResourceConsoleLogsRequest), global::Aspire.ResourceService.Proto.V1.WatchResourceConsoleLogsRequest.Parser, new[]{ "ResourceName" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Aspire.ResourceService.Proto.V1.WatchResourceConsoleLogsUpdate), global::Aspire.ResourceService.Proto.V1.WatchResourceConsoleLogsUpdate.Parser, new[]{ "LogLines" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Enums
  internal enum IconVariant {
    [pbr::OriginalName("REGULAR")] Regular = 0,
    [pbr::OriginalName("FILLED")] Filled = 1,
  }

  internal enum ResourceCommandState {
    [pbr::OriginalName("ENABLED")] Enabled = 0,
    [pbr::OriginalName("DISABLED")] Disabled = 1,
    [pbr::OriginalName("HIDDEN")] Hidden = 2,
  }

  internal enum ResourceCommandResponseKind {
    [pbr::OriginalName("UNDEFINED")] Undefined = 0,
    [pbr::OriginalName("SUCCEEDED")] Succeeded = 1,
    [pbr::OriginalName("FAILED")] Failed = 2,
    [pbr::OriginalName("CANCELLED")] Cancelled = 3,
  }

  internal enum HealthStatus {
    [pbr::OriginalName("HEALTHY")] Healthy = 0,
    [pbr::OriginalName("UNHEALTHY")] Unhealthy = 1,
    [pbr::OriginalName("DEGRADED")] Degraded = 2,
  }

  #endregion

  #region Messages
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ApplicationInformationRequest : pb::IMessage<ApplicationInformationRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ApplicationInformationRequest> _parser = new pb::MessageParser<ApplicationInformationRequest>(() => new ApplicationInformationRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ApplicationInformationRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ApplicationInformationRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ApplicationInformationRequest(ApplicationInformationRequest other) : this() {
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ApplicationInformationRequest Clone() {
      return new ApplicationInformationRequest(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ApplicationInformationRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ApplicationInformationRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ApplicationInformationRequest other) {
      if (other == null) {
        return;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ApplicationInformationResponse : pb::IMessage<ApplicationInformationResponse>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ApplicationInformationResponse> _parser = new pb::MessageParser<ApplicationInformationResponse>(() => new ApplicationInformationResponse());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ApplicationInformationResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ApplicationInformationResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ApplicationInformationResponse(ApplicationInformationResponse other) : this() {
      applicationName_ = other.applicationName_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ApplicationInformationResponse Clone() {
      return new ApplicationInformationResponse(this);
    }

    /// <summary>Field number for the "application_name" field.</summary>
    public const int ApplicationNameFieldNumber = 1;
    private string applicationName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ApplicationName {
      get { return applicationName_; }
      set {
        applicationName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ApplicationInformationResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ApplicationInformationResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ApplicationName != other.ApplicationName) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (ApplicationName.Length != 0) hash ^= ApplicationName.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (ApplicationName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ApplicationName);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (ApplicationName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ApplicationName);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (ApplicationName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ApplicationName);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ApplicationInformationResponse other) {
      if (other == null) {
        return;
      }
      if (other.ApplicationName.Length != 0) {
        ApplicationName = other.ApplicationName;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            ApplicationName = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            ApplicationName = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  /// Defines a command that may be invoked on a resource.
  /// Defined by the resource service and sent to the dashboard.
  /// When a command is to be executed, an instance of ResourceCommandRequest is constructed
  /// using data from this message.
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ResourceCommand : pb::IMessage<ResourceCommand>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ResourceCommand> _parser = new pb::MessageParser<ResourceCommand>(() => new ResourceCommand());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ResourceCommand> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceCommand() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceCommand(ResourceCommand other) : this() {
      _hasBits0 = other._hasBits0;
      name_ = other.name_;
      displayName_ = other.displayName_;
      confirmationMessage_ = other.confirmationMessage_;
      parameter_ = other.parameter_ != null ? other.parameter_.Clone() : null;
      isHighlighted_ = other.isHighlighted_;
      iconName_ = other.iconName_;
      iconVariant_ = other.iconVariant_;
      displayDescription_ = other.displayDescription_;
      state_ = other.state_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceCommand Clone() {
      return new ResourceCommand(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    /// <summary>
    /// Unique identifier for the command. Not intended for display.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "display_name" field.</summary>
    public const int DisplayNameFieldNumber = 2;
    private string displayName_ = "";
    /// <summary>
    /// The display name of the command, to be shown in the UI. May be localized.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DisplayName {
      get { return displayName_; }
      set {
        displayName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "confirmation_message" field.</summary>
    public const int ConfirmationMessageFieldNumber = 3;
    private readonly static string ConfirmationMessageDefaultValue = "";

    private string confirmationMessage_;
    /// <summary>
    /// When present, this message must be shown to the user and their confirmation obtained
    /// before sending the request for this command to be executed.
    /// The user will be presented with Ok/Cancel options.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ConfirmationMessage {
      get { return confirmationMessage_ ?? ConfirmationMessageDefaultValue; }
      set {
        confirmationMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "confirmation_message" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasConfirmationMessage {
      get { return confirmationMessage_ != null; }
    }
    /// <summary>Clears the value of the "confirmation_message" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearConfirmationMessage() {
      confirmationMessage_ = null;
    }

    /// <summary>Field number for the "parameter" field.</summary>
    public const int ParameterFieldNumber = 4;
    private global::Google.Protobuf.WellKnownTypes.Value parameter_;
    /// <summary>
    /// Optional parameter that configures the command in some way.
    /// Clients must return any value provided by the server when invoking
    /// the command.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Value Parameter {
      get { return parameter_; }
      set {
        parameter_ = value;
      }
    }

    /// <summary>Field number for the "is_highlighted" field.</summary>
    public const int IsHighlightedFieldNumber = 5;
    private bool isHighlighted_;
    /// <summary>
    /// A flag that indicates whether the command is highlighted in the UI.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsHighlighted {
      get { return isHighlighted_; }
      set {
        isHighlighted_ = value;
      }
    }

    /// <summary>Field number for the "icon_name" field.</summary>
    public const int IconNameFieldNumber = 6;
    private readonly static string IconNameDefaultValue = "";

    private string iconName_;
    /// <summary>
    /// Optional icon name. This name should be a valid FluentUI icon name.
    /// https://aka.ms/fluentui-system-icons
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string IconName {
      get { return iconName_ ?? IconNameDefaultValue; }
      set {
        iconName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "icon_name" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasIconName {
      get { return iconName_ != null; }
    }
    /// <summary>Clears the value of the "icon_name" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearIconName() {
      iconName_ = null;
    }

    /// <summary>Field number for the "icon_variant" field.</summary>
    public const int IconVariantFieldNumber = 7;
    private readonly static global::Aspire.ResourceService.Proto.V1.IconVariant IconVariantDefaultValue = global::Aspire.ResourceService.Proto.V1.IconVariant.Regular;

    private global::Aspire.ResourceService.Proto.V1.IconVariant iconVariant_;
    /// <summary>
    /// Optional icon variant.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Aspire.ResourceService.Proto.V1.IconVariant IconVariant {
      get { if ((_hasBits0 & 1) != 0) { return iconVariant_; } else { return IconVariantDefaultValue; } }
      set {
        _hasBits0 |= 1;
        iconVariant_ = value;
      }
    }
    /// <summary>Gets whether the "icon_variant" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasIconVariant {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "icon_variant" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearIconVariant() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "display_description" field.</summary>
    public const int DisplayDescriptionFieldNumber = 8;
    private readonly static string DisplayDescriptionDefaultValue = "";

    private string displayDescription_;
    /// <summary>
    /// Optional description of the command, to be shown in the UI.
    /// Could be used as a tooltip. May be localized.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DisplayDescription {
      get { return displayDescription_ ?? DisplayDescriptionDefaultValue; }
      set {
        displayDescription_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "display_description" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDisplayDescription {
      get { return displayDescription_ != null; }
    }
    /// <summary>Clears the value of the "display_description" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDisplayDescription() {
      displayDescription_ = null;
    }

    /// <summary>Field number for the "state" field.</summary>
    public const int StateFieldNumber = 9;
    private global::Aspire.ResourceService.Proto.V1.ResourceCommandState state_ = global::Aspire.ResourceService.Proto.V1.ResourceCommandState.Enabled;
    /// <summary>
    /// The state of the command. Controls whether the command is enabled, disabled,
    /// or hidden in the UI.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Aspire.ResourceService.Proto.V1.ResourceCommandState State {
      get { return state_; }
      set {
        state_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ResourceCommand);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ResourceCommand other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (DisplayName != other.DisplayName) return false;
      if (ConfirmationMessage != other.ConfirmationMessage) return false;
      if (!object.Equals(Parameter, other.Parameter)) return false;
      if (IsHighlighted != other.IsHighlighted) return false;
      if (IconName != other.IconName) return false;
      if (IconVariant != other.IconVariant) return false;
      if (DisplayDescription != other.DisplayDescription) return false;
      if (State != other.State) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (DisplayName.Length != 0) hash ^= DisplayName.GetHashCode();
      if (HasConfirmationMessage) hash ^= ConfirmationMessage.GetHashCode();
      if (parameter_ != null) hash ^= Parameter.GetHashCode();
      if (IsHighlighted != false) hash ^= IsHighlighted.GetHashCode();
      if (HasIconName) hash ^= IconName.GetHashCode();
      if (HasIconVariant) hash ^= IconVariant.GetHashCode();
      if (HasDisplayDescription) hash ^= DisplayDescription.GetHashCode();
      if (State != global::Aspire.ResourceService.Proto.V1.ResourceCommandState.Enabled) hash ^= State.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (DisplayName.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(DisplayName);
      }
      if (HasConfirmationMessage) {
        output.WriteRawTag(26);
        output.WriteString(ConfirmationMessage);
      }
      if (parameter_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Parameter);
      }
      if (IsHighlighted != false) {
        output.WriteRawTag(40);
        output.WriteBool(IsHighlighted);
      }
      if (HasIconName) {
        output.WriteRawTag(50);
        output.WriteString(IconName);
      }
      if (HasIconVariant) {
        output.WriteRawTag(56);
        output.WriteEnum((int) IconVariant);
      }
      if (HasDisplayDescription) {
        output.WriteRawTag(66);
        output.WriteString(DisplayDescription);
      }
      if (State != global::Aspire.ResourceService.Proto.V1.ResourceCommandState.Enabled) {
        output.WriteRawTag(72);
        output.WriteEnum((int) State);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (DisplayName.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(DisplayName);
      }
      if (HasConfirmationMessage) {
        output.WriteRawTag(26);
        output.WriteString(ConfirmationMessage);
      }
      if (parameter_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Parameter);
      }
      if (IsHighlighted != false) {
        output.WriteRawTag(40);
        output.WriteBool(IsHighlighted);
      }
      if (HasIconName) {
        output.WriteRawTag(50);
        output.WriteString(IconName);
      }
      if (HasIconVariant) {
        output.WriteRawTag(56);
        output.WriteEnum((int) IconVariant);
      }
      if (HasDisplayDescription) {
        output.WriteRawTag(66);
        output.WriteString(DisplayDescription);
      }
      if (State != global::Aspire.ResourceService.Proto.V1.ResourceCommandState.Enabled) {
        output.WriteRawTag(72);
        output.WriteEnum((int) State);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (DisplayName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DisplayName);
      }
      if (HasConfirmationMessage) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ConfirmationMessage);
      }
      if (parameter_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Parameter);
      }
      if (IsHighlighted != false) {
        size += 1 + 1;
      }
      if (HasIconName) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(IconName);
      }
      if (HasIconVariant) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) IconVariant);
      }
      if (HasDisplayDescription) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DisplayDescription);
      }
      if (State != global::Aspire.ResourceService.Proto.V1.ResourceCommandState.Enabled) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) State);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ResourceCommand other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.DisplayName.Length != 0) {
        DisplayName = other.DisplayName;
      }
      if (other.HasConfirmationMessage) {
        ConfirmationMessage = other.ConfirmationMessage;
      }
      if (other.parameter_ != null) {
        if (parameter_ == null) {
          Parameter = new global::Google.Protobuf.WellKnownTypes.Value();
        }
        Parameter.MergeFrom(other.Parameter);
      }
      if (other.IsHighlighted != false) {
        IsHighlighted = other.IsHighlighted;
      }
      if (other.HasIconName) {
        IconName = other.IconName;
      }
      if (other.HasIconVariant) {
        IconVariant = other.IconVariant;
      }
      if (other.HasDisplayDescription) {
        DisplayDescription = other.DisplayDescription;
      }
      if (other.State != global::Aspire.ResourceService.Proto.V1.ResourceCommandState.Enabled) {
        State = other.State;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            DisplayName = input.ReadString();
            break;
          }
          case 26: {
            ConfirmationMessage = input.ReadString();
            break;
          }
          case 34: {
            if (parameter_ == null) {
              Parameter = new global::Google.Protobuf.WellKnownTypes.Value();
            }
            input.ReadMessage(Parameter);
            break;
          }
          case 40: {
            IsHighlighted = input.ReadBool();
            break;
          }
          case 50: {
            IconName = input.ReadString();
            break;
          }
          case 56: {
            IconVariant = (global::Aspire.ResourceService.Proto.V1.IconVariant) input.ReadEnum();
            break;
          }
          case 66: {
            DisplayDescription = input.ReadString();
            break;
          }
          case 72: {
            State = (global::Aspire.ResourceService.Proto.V1.ResourceCommandState) input.ReadEnum();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      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: {
            ConfirmationMessage = input.ReadString();
            break;
          }
          case 34: {
            if (parameter_ == null) {
              Parameter = new global::Google.Protobuf.WellKnownTypes.Value();
            }
            input.ReadMessage(Parameter);
            break;
          }
          case 40: {
            IsHighlighted = input.ReadBool();
            break;
          }
          case 50: {
            IconName = input.ReadString();
            break;
          }
          case 56: {
            IconVariant = (global::Aspire.ResourceService.Proto.V1.IconVariant) input.ReadEnum();
            break;
          }
          case 66: {
            DisplayDescription = input.ReadString();
            break;
          }
          case 72: {
            State = (global::Aspire.ResourceService.Proto.V1.ResourceCommandState) input.ReadEnum();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  /// Represents a request to execute a command.
  /// Sent by the dashboard to DashboardService.ExecuteResourceCommand.
  /// Constructed with data from a corresponding ResourceCommand.
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ResourceCommandRequest : pb::IMessage<ResourceCommandRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ResourceCommandRequest> _parser = new pb::MessageParser<ResourceCommandRequest>(() => new ResourceCommandRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ResourceCommandRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceCommandRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceCommandRequest(ResourceCommandRequest other) : this() {
      commandName_ = other.commandName_;
      resourceName_ = other.resourceName_;
      resourceType_ = other.resourceType_;
      parameter_ = other.parameter_ != null ? other.parameter_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceCommandRequest Clone() {
      return new ResourceCommandRequest(this);
    }

    /// <summary>Field number for the "command_name" field.</summary>
    public const int CommandNameFieldNumber = 1;
    private string commandName_ = "";
    /// <summary>
    /// Unique identifier for the command.
    /// Copied from the ResourceCommand that this request object is initialized from.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string CommandName {
      get { return commandName_; }
      set {
        commandName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "resource_name" field.</summary>
    public const int ResourceNameFieldNumber = 2;
    private string resourceName_ = "";
    /// <summary>
    /// The name of the resource to apply the command to. Matches Resource.name.
    /// Copied from the ResourceCommand that this request object is initialized from.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ResourceName {
      get { return resourceName_; }
      set {
        resourceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "resource_type" field.</summary>
    public const int ResourceTypeFieldNumber = 3;
    private string resourceType_ = "";
    /// <summary>
    /// The unique name of the resource type. Matches ResourceType.unique_name and Resource.resource_type.
    /// Copied from the ResourceCommand that this request object is initialized from.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ResourceType {
      get { return resourceType_; }
      set {
        resourceType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "parameter" field.</summary>
    public const int ParameterFieldNumber = 4;
    private global::Google.Protobuf.WellKnownTypes.Value parameter_;
    /// <summary>
    /// An optional parameter to accompany the command.
    /// Copied from the ResourceCommand that this request object is initialized from.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Value Parameter {
      get { return parameter_; }
      set {
        parameter_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ResourceCommandRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ResourceCommandRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CommandName != other.CommandName) return false;
      if (ResourceName != other.ResourceName) return false;
      if (ResourceType != other.ResourceType) return false;
      if (!object.Equals(Parameter, other.Parameter)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (CommandName.Length != 0) hash ^= CommandName.GetHashCode();
      if (ResourceName.Length != 0) hash ^= ResourceName.GetHashCode();
      if (ResourceType.Length != 0) hash ^= ResourceType.GetHashCode();
      if (parameter_ != null) hash ^= Parameter.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (CommandName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(CommandName);
      }
      if (ResourceName.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ResourceName);
      }
      if (ResourceType.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(ResourceType);
      }
      if (parameter_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Parameter);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (CommandName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(CommandName);
      }
      if (ResourceName.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ResourceName);
      }
      if (ResourceType.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(ResourceType);
      }
      if (parameter_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Parameter);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (CommandName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CommandName);
      }
      if (ResourceName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ResourceName);
      }
      if (ResourceType.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ResourceType);
      }
      if (parameter_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Parameter);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ResourceCommandRequest other) {
      if (other == null) {
        return;
      }
      if (other.CommandName.Length != 0) {
        CommandName = other.CommandName;
      }
      if (other.ResourceName.Length != 0) {
        ResourceName = other.ResourceName;
      }
      if (other.ResourceType.Length != 0) {
        ResourceType = other.ResourceType;
      }
      if (other.parameter_ != null) {
        if (parameter_ == null) {
          Parameter = new global::Google.Protobuf.WellKnownTypes.Value();
        }
        Parameter.MergeFrom(other.Parameter);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            CommandName = input.ReadString();
            break;
          }
          case 18: {
            ResourceName = input.ReadString();
            break;
          }
          case 26: {
            ResourceType = input.ReadString();
            break;
          }
          case 34: {
            if (parameter_ == null) {
              Parameter = new global::Google.Protobuf.WellKnownTypes.Value();
            }
            input.ReadMessage(Parameter);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            CommandName = input.ReadString();
            break;
          }
          case 18: {
            ResourceName = input.ReadString();
            break;
          }
          case 26: {
            ResourceType = input.ReadString();
            break;
          }
          case 34: {
            if (parameter_ == null) {
              Parameter = new global::Google.Protobuf.WellKnownTypes.Value();
            }
            input.ReadMessage(Parameter);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ResourceCommandResponse : pb::IMessage<ResourceCommandResponse>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ResourceCommandResponse> _parser = new pb::MessageParser<ResourceCommandResponse>(() => new ResourceCommandResponse());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ResourceCommandResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceCommandResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceCommandResponse(ResourceCommandResponse other) : this() {
      kind_ = other.kind_;
      errorMessage_ = other.errorMessage_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceCommandResponse Clone() {
      return new ResourceCommandResponse(this);
    }

    /// <summary>Field number for the "kind" field.</summary>
    public const int KindFieldNumber = 1;
    private global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind kind_ = global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind.Undefined;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind Kind {
      get { return kind_; }
      set {
        kind_ = value;
      }
    }

    /// <summary>Field number for the "error_message" field.</summary>
    public const int ErrorMessageFieldNumber = 2;
    private readonly static string ErrorMessageDefaultValue = "";

    private string errorMessage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ErrorMessage {
      get { return errorMessage_ ?? ErrorMessageDefaultValue; }
      set {
        errorMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "error_message" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasErrorMessage {
      get { return errorMessage_ != null; }
    }
    /// <summary>Clears the value of the "error_message" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearErrorMessage() {
      errorMessage_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ResourceCommandResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ResourceCommandResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Kind != other.Kind) return false;
      if (ErrorMessage != other.ErrorMessage) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Kind != global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind.Undefined) hash ^= Kind.GetHashCode();
      if (HasErrorMessage) hash ^= ErrorMessage.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Kind != global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind.Undefined) {
        output.WriteRawTag(8);
        output.WriteEnum((int) Kind);
      }
      if (HasErrorMessage) {
        output.WriteRawTag(18);
        output.WriteString(ErrorMessage);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Kind != global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind.Undefined) {
        output.WriteRawTag(8);
        output.WriteEnum((int) Kind);
      }
      if (HasErrorMessage) {
        output.WriteRawTag(18);
        output.WriteString(ErrorMessage);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Kind != global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind.Undefined) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Kind);
      }
      if (HasErrorMessage) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ErrorMessage);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ResourceCommandResponse other) {
      if (other == null) {
        return;
      }
      if (other.Kind != global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind.Undefined) {
        Kind = other.Kind;
      }
      if (other.HasErrorMessage) {
        ErrorMessage = other.ErrorMessage;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Kind = (global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind) input.ReadEnum();
            break;
          }
          case 18: {
            ErrorMessage = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Kind = (global::Aspire.ResourceService.Proto.V1.ResourceCommandResponseKind) input.ReadEnum();
            break;
          }
          case 18: {
            ErrorMessage = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ResourceType : pb::IMessage<ResourceType>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ResourceType> _parser = new pb::MessageParser<ResourceType>(() => new ResourceType());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ResourceType> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceType() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceType(ResourceType other) : this() {
      uniqueName_ = other.uniqueName_;
      displayName_ = other.displayName_;
      commands_ = other.commands_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceType Clone() {
      return new ResourceType(this);
    }

    /// <summary>Field number for the "unique_name" field.</summary>
    public const int UniqueNameFieldNumber = 1;
    private string uniqueName_ = "";
    /// <summary>
    /// Unique name for the resource type. Equivalent to Resource.resource_type
    /// If "display_name" is omitted, this value will be used in UIs.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string UniqueName {
      get { return uniqueName_; }
      set {
        uniqueName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "display_name" field.</summary>
    public const int DisplayNameFieldNumber = 2;
    private readonly static string DisplayNameDefaultValue = "";

    private string displayName_;
    /// <summary>
    /// Display string for references to this type in UI. May be localized.
    /// If this value is omitted, UIs will show "unique_name" instead.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DisplayName {
      get { return displayName_ ?? DisplayNameDefaultValue; }
      set {
        displayName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "display_name" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDisplayName {
      get { return displayName_ != null; }
    }
    /// <summary>Clears the value of the "display_name" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDisplayName() {
      displayName_ = null;
    }

    /// <summary>Field number for the "commands" field.</summary>
    public const int CommandsFieldNumber = 3;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.ResourceCommand> _repeated_commands_codec
        = pb::FieldCodec.ForMessage(26, global::Aspire.ResourceService.Proto.V1.ResourceCommand.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceCommand> commands_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceCommand>();
    /// <summary>
    /// Any commands that may be executed against resources of this type, avoiding
    /// the need to copy the value to every Resource instance.
    ///
    /// Note that these commands must apply to matching resources at any time.
    ///
    /// If the set of commands changes over time, use the "commands" property
    /// of the Resource itself.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceCommand> Commands {
      get { return commands_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ResourceType);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ResourceType other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (UniqueName != other.UniqueName) return false;
      if (DisplayName != other.DisplayName) return false;
      if(!commands_.Equals(other.commands_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (UniqueName.Length != 0) hash ^= UniqueName.GetHashCode();
      if (HasDisplayName) hash ^= DisplayName.GetHashCode();
      hash ^= commands_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (UniqueName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(UniqueName);
      }
      if (HasDisplayName) {
        output.WriteRawTag(18);
        output.WriteString(DisplayName);
      }
      commands_.WriteTo(output, _repeated_commands_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (UniqueName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(UniqueName);
      }
      if (HasDisplayName) {
        output.WriteRawTag(18);
        output.WriteString(DisplayName);
      }
      commands_.WriteTo(ref output, _repeated_commands_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (UniqueName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(UniqueName);
      }
      if (HasDisplayName) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DisplayName);
      }
      size += commands_.CalculateSize(_repeated_commands_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ResourceType other) {
      if (other == null) {
        return;
      }
      if (other.UniqueName.Length != 0) {
        UniqueName = other.UniqueName;
      }
      if (other.HasDisplayName) {
        DisplayName = other.DisplayName;
      }
      commands_.Add(other.commands_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            UniqueName = input.ReadString();
            break;
          }
          case 18: {
            DisplayName = input.ReadString();
            break;
          }
          case 26: {
            commands_.AddEntriesFrom(input, _repeated_commands_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            UniqueName = input.ReadString();
            break;
          }
          case 18: {
            DisplayName = input.ReadString();
            break;
          }
          case 26: {
            commands_.AddEntriesFrom(ref input, _repeated_commands_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class EnvironmentVariable : pb::IMessage<EnvironmentVariable>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<EnvironmentVariable> _parser = new pb::MessageParser<EnvironmentVariable>(() => new EnvironmentVariable());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<EnvironmentVariable> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[6]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public EnvironmentVariable() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public EnvironmentVariable(EnvironmentVariable other) : this() {
      name_ = other.name_;
      value_ = other.value_;
      isFromSpec_ = other.isFromSpec_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public EnvironmentVariable Clone() {
      return new EnvironmentVariable(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "value" field.</summary>
    public const int ValueFieldNumber = 2;
    private readonly static string ValueDefaultValue = "";

    private string value_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Value {
      get { return value_ ?? ValueDefaultValue; }
      set {
        value_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "value" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasValue {
      get { return value_ != null; }
    }
    /// <summary>Clears the value of the "value" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearValue() {
      value_ = null;
    }

    /// <summary>Field number for the "is_from_spec" field.</summary>
    public const int IsFromSpecFieldNumber = 3;
    private bool isFromSpec_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsFromSpec {
      get { return isFromSpec_; }
      set {
        isFromSpec_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as EnvironmentVariable);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(EnvironmentVariable other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (Value != other.Value) return false;
      if (IsFromSpec != other.IsFromSpec) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (HasValue) hash ^= Value.GetHashCode();
      if (IsFromSpec != false) hash ^= IsFromSpec.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (HasValue) {
        output.WriteRawTag(18);
        output.WriteString(Value);
      }
      if (IsFromSpec != false) {
        output.WriteRawTag(24);
        output.WriteBool(IsFromSpec);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (HasValue) {
        output.WriteRawTag(18);
        output.WriteString(Value);
      }
      if (IsFromSpec != false) {
        output.WriteRawTag(24);
        output.WriteBool(IsFromSpec);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (HasValue) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Value);
      }
      if (IsFromSpec != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(EnvironmentVariable other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.HasValue) {
        Value = other.Value;
      }
      if (other.IsFromSpec != false) {
        IsFromSpec = other.IsFromSpec;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            Value = input.ReadString();
            break;
          }
          case 24: {
            IsFromSpec = input.ReadBool();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            Value = input.ReadString();
            break;
          }
          case 24: {
            IsFromSpec = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class Url : pb::IMessage<Url>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Url> _parser = new pb::MessageParser<Url>(() => new Url());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Url> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[7]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Url() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Url(Url other) : this() {
      endpointName_ = other.endpointName_;
      fullUrl_ = other.fullUrl_;
      isInternal_ = other.isInternal_;
      isInactive_ = other.isInactive_;
      displayProperties_ = other.displayProperties_ != null ? other.displayProperties_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Url Clone() {
      return new Url(this);
    }

    /// <summary>Field number for the "endpoint_name" field.</summary>
    public const int EndpointNameFieldNumber = 1;
    private readonly static string EndpointNameDefaultValue = "";

    private string endpointName_;
    /// <summary>
    /// The name of endpoint associated with the url
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string EndpointName {
      get { return endpointName_ ?? EndpointNameDefaultValue; }
      set {
        endpointName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "endpoint_name" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasEndpointName {
      get { return endpointName_ != null; }
    }
    /// <summary>Clears the value of the "endpoint_name" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearEndpointName() {
      endpointName_ = null;
    }

    /// <summary>Field number for the "full_url" field.</summary>
    public const int FullUrlFieldNumber = 2;
    private string fullUrl_ = "";
    /// <summary>
    /// The uri of the url. Format is scheme://host:port/{*path}
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string FullUrl {
      get { return fullUrl_; }
      set {
        fullUrl_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "is_internal" field.</summary>
    public const int IsInternalFieldNumber = 3;
    private bool isInternal_;
    /// <summary>
    /// Determines if this url shows up in the details view only by default.
    /// If true, the url will not be shown in the list of urls in the top level resources view.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsInternal {
      get { return isInternal_; }
      set {
        isInternal_ = value;
      }
    }

    /// <summary>Field number for the "is_inactive" field.</summary>
    public const int IsInactiveFieldNumber = 4;
    private bool isInactive_;
    /// <summary>
    /// Indicates if this URL is inactive. A non-running resource may still return inactive URLs.
    /// If true, the inactive url will not be shown in the dashboard.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsInactive {
      get { return isInactive_; }
      set {
        isInactive_ = value;
      }
    }

    /// <summary>Field number for the "display_properties" field.</summary>
    public const int DisplayPropertiesFieldNumber = 5;
    private global::Aspire.ResourceService.Proto.V1.UrlDisplayProperties displayProperties_;
    /// <summary>
    /// Display properties of the Url
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Aspire.ResourceService.Proto.V1.UrlDisplayProperties DisplayProperties {
      get { return displayProperties_; }
      set {
        displayProperties_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Url);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Url other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (EndpointName != other.EndpointName) return false;
      if (FullUrl != other.FullUrl) return false;
      if (IsInternal != other.IsInternal) return false;
      if (IsInactive != other.IsInactive) return false;
      if (!object.Equals(DisplayProperties, other.DisplayProperties)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (HasEndpointName) hash ^= EndpointName.GetHashCode();
      if (FullUrl.Length != 0) hash ^= FullUrl.GetHashCode();
      if (IsInternal != false) hash ^= IsInternal.GetHashCode();
      if (IsInactive != false) hash ^= IsInactive.GetHashCode();
      if (displayProperties_ != null) hash ^= DisplayProperties.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (HasEndpointName) {
        output.WriteRawTag(10);
        output.WriteString(EndpointName);
      }
      if (FullUrl.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(FullUrl);
      }
      if (IsInternal != false) {
        output.WriteRawTag(24);
        output.WriteBool(IsInternal);
      }
      if (IsInactive != false) {
        output.WriteRawTag(32);
        output.WriteBool(IsInactive);
      }
      if (displayProperties_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(DisplayProperties);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (HasEndpointName) {
        output.WriteRawTag(10);
        output.WriteString(EndpointName);
      }
      if (FullUrl.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(FullUrl);
      }
      if (IsInternal != false) {
        output.WriteRawTag(24);
        output.WriteBool(IsInternal);
      }
      if (IsInactive != false) {
        output.WriteRawTag(32);
        output.WriteBool(IsInactive);
      }
      if (displayProperties_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(DisplayProperties);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (HasEndpointName) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(EndpointName);
      }
      if (FullUrl.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(FullUrl);
      }
      if (IsInternal != false) {
        size += 1 + 1;
      }
      if (IsInactive != false) {
        size += 1 + 1;
      }
      if (displayProperties_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(DisplayProperties);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Url other) {
      if (other == null) {
        return;
      }
      if (other.HasEndpointName) {
        EndpointName = other.EndpointName;
      }
      if (other.FullUrl.Length != 0) {
        FullUrl = other.FullUrl;
      }
      if (other.IsInternal != false) {
        IsInternal = other.IsInternal;
      }
      if (other.IsInactive != false) {
        IsInactive = other.IsInactive;
      }
      if (other.displayProperties_ != null) {
        if (displayProperties_ == null) {
          DisplayProperties = new global::Aspire.ResourceService.Proto.V1.UrlDisplayProperties();
        }
        DisplayProperties.MergeFrom(other.DisplayProperties);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            EndpointName = input.ReadString();
            break;
          }
          case 18: {
            FullUrl = input.ReadString();
            break;
          }
          case 24: {
            IsInternal = input.ReadBool();
            break;
          }
          case 32: {
            IsInactive = input.ReadBool();
            break;
          }
          case 42: {
            if (displayProperties_ == null) {
              DisplayProperties = new global::Aspire.ResourceService.Proto.V1.UrlDisplayProperties();
            }
            input.ReadMessage(DisplayProperties);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            EndpointName = input.ReadString();
            break;
          }
          case 18: {
            FullUrl = input.ReadString();
            break;
          }
          case 24: {
            IsInternal = input.ReadBool();
            break;
          }
          case 32: {
            IsInactive = input.ReadBool();
            break;
          }
          case 42: {
            if (displayProperties_ == null) {
              DisplayProperties = new global::Aspire.ResourceService.Proto.V1.UrlDisplayProperties();
            }
            input.ReadMessage(DisplayProperties);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class UrlDisplayProperties : pb::IMessage<UrlDisplayProperties>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<UrlDisplayProperties> _parser = new pb::MessageParser<UrlDisplayProperties>(() => new UrlDisplayProperties());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<UrlDisplayProperties> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[8]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UrlDisplayProperties() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UrlDisplayProperties(UrlDisplayProperties other) : this() {
      sortOrder_ = other.sortOrder_;
      displayName_ = other.displayName_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UrlDisplayProperties Clone() {
      return new UrlDisplayProperties(this);
    }

    /// <summary>Field number for the "sort_order" field.</summary>
    public const int SortOrderFieldNumber = 1;
    private int sortOrder_;
    /// <summary>
    /// The sort order of the url. Lower values are displayed first in the UI. The absence of a value is treated as lowest order.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int SortOrder {
      get { return sortOrder_; }
      set {
        sortOrder_ = value;
      }
    }

    /// <summary>Field number for the "display_name" field.</summary>
    public const int DisplayNameFieldNumber = 2;
    private string displayName_ = "";
    /// <summary>
    /// The display name of the url, to appear in the UI.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DisplayName {
      get { return displayName_; }
      set {
        displayName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as UrlDisplayProperties);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(UrlDisplayProperties other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (SortOrder != other.SortOrder) return false;
      if (DisplayName != other.DisplayName) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (SortOrder != 0) hash ^= SortOrder.GetHashCode();
      if (DisplayName.Length != 0) hash ^= DisplayName.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (SortOrder != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(SortOrder);
      }
      if (DisplayName.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(DisplayName);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (SortOrder != 0) {
        output.WriteRawTag(8);
        output.WriteInt32(SortOrder);
      }
      if (DisplayName.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(DisplayName);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (SortOrder != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(SortOrder);
      }
      if (DisplayName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DisplayName);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(UrlDisplayProperties other) {
      if (other == null) {
        return;
      }
      if (other.SortOrder != 0) {
        SortOrder = other.SortOrder;
      }
      if (other.DisplayName.Length != 0) {
        DisplayName = other.DisplayName;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            SortOrder = input.ReadInt32();
            break;
          }
          case 18: {
            DisplayName = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            SortOrder = input.ReadInt32();
            break;
          }
          case 18: {
            DisplayName = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  /// Data about a volume mounted to a container.
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class Volume : pb::IMessage<Volume>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Volume> _parser = new pb::MessageParser<Volume>(() => new Volume());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Volume> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[9]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Volume() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Volume(Volume other) : this() {
      source_ = other.source_;
      target_ = other.target_;
      mountType_ = other.mountType_;
      isReadOnly_ = other.isReadOnly_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Volume Clone() {
      return new Volume(this);
    }

    /// <summary>Field number for the "source" field.</summary>
    public const int SourceFieldNumber = 1;
    private string source_ = "";
    /// <summary>
    /// The source of the volume, such as "TestShop.AppHost-postgres-data".
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Source {
      get { return source_; }
      set {
        source_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "target" field.</summary>
    public const int TargetFieldNumber = 2;
    private string target_ = "";
    /// <summary>
    /// The target path in the container, such as "/var/lib/postgresql/data".
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Target {
      get { return target_; }
      set {
        target_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "mount_type" field.</summary>
    public const int MountTypeFieldNumber = 3;
    private string mountType_ = "";
    /// <summary>
    /// The type of the mount, such as "bind" or "volume".
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string MountType {
      get { return mountType_; }
      set {
        mountType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "is_read_only" field.</summary>
    public const int IsReadOnlyFieldNumber = 4;
    private bool isReadOnly_;
    /// <summary>
    /// Whether the volume is mounted as read-only or not.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsReadOnly {
      get { return isReadOnly_; }
      set {
        isReadOnly_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Volume);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Volume other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Source != other.Source) return false;
      if (Target != other.Target) return false;
      if (MountType != other.MountType) return false;
      if (IsReadOnly != other.IsReadOnly) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Source.Length != 0) hash ^= Source.GetHashCode();
      if (Target.Length != 0) hash ^= Target.GetHashCode();
      if (MountType.Length != 0) hash ^= MountType.GetHashCode();
      if (IsReadOnly != false) hash ^= IsReadOnly.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Source.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Source);
      }
      if (Target.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Target);
      }
      if (MountType.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(MountType);
      }
      if (IsReadOnly != false) {
        output.WriteRawTag(32);
        output.WriteBool(IsReadOnly);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Source.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Source);
      }
      if (Target.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Target);
      }
      if (MountType.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(MountType);
      }
      if (IsReadOnly != false) {
        output.WriteRawTag(32);
        output.WriteBool(IsReadOnly);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Source.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Source);
      }
      if (Target.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Target);
      }
      if (MountType.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MountType);
      }
      if (IsReadOnly != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Volume other) {
      if (other == null) {
        return;
      }
      if (other.Source.Length != 0) {
        Source = other.Source;
      }
      if (other.Target.Length != 0) {
        Target = other.Target;
      }
      if (other.MountType.Length != 0) {
        MountType = other.MountType;
      }
      if (other.IsReadOnly != false) {
        IsReadOnly = other.IsReadOnly;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Source = input.ReadString();
            break;
          }
          case 18: {
            Target = input.ReadString();
            break;
          }
          case 26: {
            MountType = input.ReadString();
            break;
          }
          case 32: {
            IsReadOnly = input.ReadBool();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Source = input.ReadString();
            break;
          }
          case 18: {
            Target = input.ReadString();
            break;
          }
          case 26: {
            MountType = input.ReadString();
            break;
          }
          case 32: {
            IsReadOnly = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class HealthReport : pb::IMessage<HealthReport>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<HealthReport> _parser = new pb::MessageParser<HealthReport>(() => new HealthReport());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<HealthReport> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[10]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HealthReport() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HealthReport(HealthReport other) : this() {
      _hasBits0 = other._hasBits0;
      status_ = other.status_;
      key_ = other.key_;
      description_ = other.description_;
      exception_ = other.exception_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HealthReport Clone() {
      return new HealthReport(this);
    }

    /// <summary>Field number for the "status" field.</summary>
    public const int StatusFieldNumber = 1;
    private readonly static global::Aspire.ResourceService.Proto.V1.HealthStatus StatusDefaultValue = global::Aspire.ResourceService.Proto.V1.HealthStatus.Healthy;

    private global::Aspire.ResourceService.Proto.V1.HealthStatus status_;
    /// <summary>
    /// The health status of the resource. Not provided if we have not yet received an initial report from the check.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Aspire.ResourceService.Proto.V1.HealthStatus Status {
      get { if ((_hasBits0 & 1) != 0) { return status_; } else { return StatusDefaultValue; } }
      set {
        _hasBits0 |= 1;
        status_ = value;
      }
    }
    /// <summary>Gets whether the "status" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasStatus {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "status" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearStatus() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "key" field.</summary>
    public const int KeyFieldNumber = 2;
    private string key_ = "";
    /// <summary>
    /// Identifies the health check that produced this report.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Key {
      get { return key_; }
      set {
        key_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "description" field.</summary>
    public const int DescriptionFieldNumber = 3;
    private string description_ = "";
    /// <summary>
    /// The reason for the health status.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Description {
      get { return description_; }
      set {
        description_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "exception" field.</summary>
    public const int ExceptionFieldNumber = 4;
    private string exception_ = "";
    /// <summary>
    /// Any exception details.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Exception {
      get { return exception_; }
      set {
        exception_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as HealthReport);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(HealthReport other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Status != other.Status) return false;
      if (Key != other.Key) return false;
      if (Description != other.Description) return false;
      if (Exception != other.Exception) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (HasStatus) hash ^= Status.GetHashCode();
      if (Key.Length != 0) hash ^= Key.GetHashCode();
      if (Description.Length != 0) hash ^= Description.GetHashCode();
      if (Exception.Length != 0) hash ^= Exception.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (HasStatus) {
        output.WriteRawTag(8);
        output.WriteEnum((int) Status);
      }
      if (Key.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Key);
      }
      if (Description.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Description);
      }
      if (Exception.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Exception);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (HasStatus) {
        output.WriteRawTag(8);
        output.WriteEnum((int) Status);
      }
      if (Key.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Key);
      }
      if (Description.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Description);
      }
      if (Exception.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Exception);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (HasStatus) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
      }
      if (Key.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Key);
      }
      if (Description.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Description);
      }
      if (Exception.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Exception);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(HealthReport other) {
      if (other == null) {
        return;
      }
      if (other.HasStatus) {
        Status = other.Status;
      }
      if (other.Key.Length != 0) {
        Key = other.Key;
      }
      if (other.Description.Length != 0) {
        Description = other.Description;
      }
      if (other.Exception.Length != 0) {
        Exception = other.Exception;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Status = (global::Aspire.ResourceService.Proto.V1.HealthStatus) input.ReadEnum();
            break;
          }
          case 18: {
            Key = input.ReadString();
            break;
          }
          case 26: {
            Description = input.ReadString();
            break;
          }
          case 34: {
            Exception = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Status = (global::Aspire.ResourceService.Proto.V1.HealthStatus) input.ReadEnum();
            break;
          }
          case 18: {
            Key = input.ReadString();
            break;
          }
          case 26: {
            Description = input.ReadString();
            break;
          }
          case 34: {
            Exception = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ResourceRelationship : pb::IMessage<ResourceRelationship>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ResourceRelationship> _parser = new pb::MessageParser<ResourceRelationship>(() => new ResourceRelationship());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ResourceRelationship> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[11]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceRelationship() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceRelationship(ResourceRelationship other) : this() {
      resourceName_ = other.resourceName_;
      type_ = other.type_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceRelationship Clone() {
      return new ResourceRelationship(this);
    }

    /// <summary>Field number for the "resource_name" field.</summary>
    public const int ResourceNameFieldNumber = 1;
    private string resourceName_ = "";
    /// <summary>
    /// The name of the resource.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ResourceName {
      get { return resourceName_; }
      set {
        resourceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "type" field.</summary>
    public const int TypeFieldNumber = 2;
    private string type_ = "";
    /// <summary>
    /// The type of relationship.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Type {
      get { return type_; }
      set {
        type_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ResourceRelationship);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ResourceRelationship other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ResourceName != other.ResourceName) return false;
      if (Type != other.Type) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (ResourceName.Length != 0) hash ^= ResourceName.GetHashCode();
      if (Type.Length != 0) hash ^= Type.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (ResourceName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ResourceName);
      }
      if (Type.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Type);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (ResourceName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ResourceName);
      }
      if (Type.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Type);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (ResourceName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ResourceName);
      }
      if (Type.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Type);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ResourceRelationship other) {
      if (other == null) {
        return;
      }
      if (other.ResourceName.Length != 0) {
        ResourceName = other.ResourceName;
      }
      if (other.Type.Length != 0) {
        Type = other.Type;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            ResourceName = input.ReadString();
            break;
          }
          case 18: {
            Type = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            ResourceName = input.ReadString();
            break;
          }
          case 18: {
            Type = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ResourceProperty : pb::IMessage<ResourceProperty>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ResourceProperty> _parser = new pb::MessageParser<ResourceProperty>(() => new ResourceProperty());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ResourceProperty> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[12]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceProperty() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceProperty(ResourceProperty other) : this() {
      _hasBits0 = other._hasBits0;
      name_ = other.name_;
      displayName_ = other.displayName_;
      value_ = other.value_ != null ? other.value_.Clone() : null;
      isSensitive_ = other.isSensitive_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceProperty Clone() {
      return new ResourceProperty(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    /// <summary>
    /// Name of the data item, e.g. "container.id", "executable.pid", "project.path", ...
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "display_name" field.</summary>
    public const int DisplayNameFieldNumber = 2;
    private readonly static string DisplayNameDefaultValue = "";

    private string displayName_;
    /// <summary>
    /// TODO move display_name to reference data, sent once when the connection starts (https://github.com/dotnet/aspire/issues/1644)
    /// Optional display name, may be localized
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DisplayName {
      get { return displayName_ ?? DisplayNameDefaultValue; }
      set {
        displayName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "display_name" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasDisplayName {
      get { return displayName_ != null; }
    }
    /// <summary>Clears the value of the "display_name" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDisplayName() {
      displayName_ = null;
    }

    /// <summary>Field number for the "value" field.</summary>
    public const int ValueFieldNumber = 3;
    private global::Google.Protobuf.WellKnownTypes.Value value_;
    /// <summary>
    /// The data value. May be null, a number, a string, a boolean, a dictionary of values (Struct), or a list of values (ValueList).
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Value Value {
      get { return value_; }
      set {
        value_ = value;
      }
    }

    /// <summary>Field number for the "is_sensitive" field.</summary>
    public const int IsSensitiveFieldNumber = 4;
    private readonly static bool IsSensitiveDefaultValue = false;

    private bool isSensitive_;
    /// <summary>
    /// TODO move is_sensitive to reference data, sent once when the connection starts (https://github.com/dotnet/aspire/issues/1644)
    /// Whether the value is sensitive and should be masked in the UI by default.
    /// Defaults to false. When true, the user must explicitly unmask the value to view it.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsSensitive {
      get { if ((_hasBits0 & 1) != 0) { return isSensitive_; } else { return IsSensitiveDefaultValue; } }
      set {
        _hasBits0 |= 1;
        isSensitive_ = value;
      }
    }
    /// <summary>Gets whether the "is_sensitive" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasIsSensitive {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "is_sensitive" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearIsSensitive() {
      _hasBits0 &= ~1;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ResourceProperty);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ResourceProperty other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (DisplayName != other.DisplayName) return false;
      if (!object.Equals(Value, other.Value)) return false;
      if (IsSensitive != other.IsSensitive) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (HasDisplayName) hash ^= DisplayName.GetHashCode();
      if (value_ != null) hash ^= Value.GetHashCode();
      if (HasIsSensitive) hash ^= IsSensitive.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (HasDisplayName) {
        output.WriteRawTag(18);
        output.WriteString(DisplayName);
      }
      if (value_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Value);
      }
      if (HasIsSensitive) {
        output.WriteRawTag(32);
        output.WriteBool(IsSensitive);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (HasDisplayName) {
        output.WriteRawTag(18);
        output.WriteString(DisplayName);
      }
      if (value_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Value);
      }
      if (HasIsSensitive) {
        output.WriteRawTag(32);
        output.WriteBool(IsSensitive);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (HasDisplayName) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DisplayName);
      }
      if (value_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Value);
      }
      if (HasIsSensitive) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ResourceProperty other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.HasDisplayName) {
        DisplayName = other.DisplayName;
      }
      if (other.value_ != null) {
        if (value_ == null) {
          Value = new global::Google.Protobuf.WellKnownTypes.Value();
        }
        Value.MergeFrom(other.Value);
      }
      if (other.HasIsSensitive) {
        IsSensitive = other.IsSensitive;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            DisplayName = input.ReadString();
            break;
          }
          case 26: {
            if (value_ == null) {
              Value = new global::Google.Protobuf.WellKnownTypes.Value();
            }
            input.ReadMessage(Value);
            break;
          }
          case 32: {
            IsSensitive = input.ReadBool();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      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: {
            if (value_ == null) {
              Value = new global::Google.Protobuf.WellKnownTypes.Value();
            }
            input.ReadMessage(Value);
            break;
          }
          case 32: {
            IsSensitive = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  /// Models the full state of an resource (container, executable, project, etc) at a particular point in time.
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class Resource : pb::IMessage<Resource>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Resource> _parser = new pb::MessageParser<Resource>(() => new Resource());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Resource> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[13]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Resource() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Resource(Resource other) : this() {
      name_ = other.name_;
      resourceType_ = other.resourceType_;
      displayName_ = other.displayName_;
      uid_ = other.uid_;
      state_ = other.state_;
      createdAt_ = other.createdAt_ != null ? other.createdAt_.Clone() : null;
      environment_ = other.environment_.Clone();
      commands_ = other.commands_.Clone();
      properties_ = other.properties_.Clone();
      urls_ = other.urls_.Clone();
      stateStyle_ = other.stateStyle_;
      volumes_ = other.volumes_.Clone();
      healthReports_ = other.healthReports_.Clone();
      startedAt_ = other.startedAt_ != null ? other.startedAt_.Clone() : null;
      stoppedAt_ = other.stoppedAt_ != null ? other.stoppedAt_.Clone() : null;
      relationships_ = other.relationships_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Resource Clone() {
      return new Resource(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "resource_type" field.</summary>
    public const int ResourceTypeFieldNumber = 2;
    private string resourceType_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ResourceType {
      get { return resourceType_; }
      set {
        resourceType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "display_name" field.</summary>
    public const int DisplayNameFieldNumber = 3;
    private string displayName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DisplayName {
      get { return displayName_; }
      set {
        displayName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "uid" field.</summary>
    public const int UidFieldNumber = 4;
    private string uid_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Uid {
      get { return uid_; }
      set {
        uid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "state" field.</summary>
    public const int StateFieldNumber = 5;
    private readonly static string StateDefaultValue = "";

    private string state_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string State {
      get { return state_ ?? StateDefaultValue; }
      set {
        state_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "state" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasState {
      get { return state_ != null; }
    }
    /// <summary>Clears the value of the "state" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearState() {
      state_ = null;
    }

    /// <summary>Field number for the "created_at" field.</summary>
    public const int CreatedAtFieldNumber = 6;
    private global::Google.Protobuf.WellKnownTypes.Timestamp createdAt_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp CreatedAt {
      get { return createdAt_; }
      set {
        createdAt_ = value;
      }
    }

    /// <summary>Field number for the "environment" field.</summary>
    public const int EnvironmentFieldNumber = 7;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.EnvironmentVariable> _repeated_environment_codec
        = pb::FieldCodec.ForMessage(58, global::Aspire.ResourceService.Proto.V1.EnvironmentVariable.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.EnvironmentVariable> environment_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.EnvironmentVariable>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.EnvironmentVariable> Environment {
      get { return environment_; }
    }

    /// <summary>Field number for the "commands" field.</summary>
    public const int CommandsFieldNumber = 11;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.ResourceCommand> _repeated_commands_codec
        = pb::FieldCodec.ForMessage(90, global::Aspire.ResourceService.Proto.V1.ResourceCommand.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceCommand> commands_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceCommand>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceCommand> Commands {
      get { return commands_; }
    }

    /// <summary>Field number for the "properties" field.</summary>
    public const int PropertiesFieldNumber = 12;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.ResourceProperty> _repeated_properties_codec
        = pb::FieldCodec.ForMessage(98, global::Aspire.ResourceService.Proto.V1.ResourceProperty.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceProperty> properties_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceProperty>();
    /// <summary>
    /// Properties holding data not modeled directly on the message.
    ///
    /// For:
    /// - Containers: image, container_id, ports
    /// - Executables: process_id, executable_path, working_directory, arguments
    /// - Projects: process_id, project_path
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceProperty> Properties {
      get { return properties_; }
    }

    /// <summary>Field number for the "urls" field.</summary>
    public const int UrlsFieldNumber = 13;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.Url> _repeated_urls_codec
        = pb::FieldCodec.ForMessage(106, global::Aspire.ResourceService.Proto.V1.Url.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.Url> urls_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.Url>();
    /// <summary>
    /// The list of urls that this resource exposes.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.Url> Urls {
      get { return urls_; }
    }

    /// <summary>Field number for the "state_style" field.</summary>
    public const int StateStyleFieldNumber = 14;
    private readonly static string StateStyleDefaultValue = "";

    private string stateStyle_;
    /// <summary>
    /// The style of the state. This is used to determine the state icon.
    /// Supported styles are "success", "info", "warning" and "error". Any other style
    /// will be treated as "unknown".
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string StateStyle {
      get { return stateStyle_ ?? StateStyleDefaultValue; }
      set {
        stateStyle_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }
    /// <summary>Gets whether the "state_style" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasStateStyle {
      get { return stateStyle_ != null; }
    }
    /// <summary>Clears the value of the "state_style" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearStateStyle() {
      stateStyle_ = null;
    }

    /// <summary>Field number for the "volumes" field.</summary>
    public const int VolumesFieldNumber = 15;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.Volume> _repeated_volumes_codec
        = pb::FieldCodec.ForMessage(122, global::Aspire.ResourceService.Proto.V1.Volume.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.Volume> volumes_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.Volume>();
    /// <summary>
    /// The set of volumes mounted to the resource. Only applies to containers.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.Volume> Volumes {
      get { return volumes_; }
    }

    /// <summary>Field number for the "health_reports" field.</summary>
    public const int HealthReportsFieldNumber = 17;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.HealthReport> _repeated_healthReports_codec
        = pb::FieldCodec.ForMessage(138, global::Aspire.ResourceService.Proto.V1.HealthReport.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.HealthReport> healthReports_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.HealthReport>();
    /// <summary>
    /// Reports from health checks, about this resource.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.HealthReport> HealthReports {
      get { return healthReports_; }
    }

    /// <summary>Field number for the "started_at" field.</summary>
    public const int StartedAtFieldNumber = 18;
    private global::Google.Protobuf.WellKnownTypes.Timestamp startedAt_;
    /// <summary>
    /// The resource start time.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp StartedAt {
      get { return startedAt_; }
      set {
        startedAt_ = value;
      }
    }

    /// <summary>Field number for the "stopped_at" field.</summary>
    public const int StoppedAtFieldNumber = 19;
    private global::Google.Protobuf.WellKnownTypes.Timestamp stoppedAt_;
    /// <summary>
    /// The resource stop time.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp StoppedAt {
      get { return stoppedAt_; }
      set {
        stoppedAt_ = value;
      }
    }

    /// <summary>Field number for the "relationships" field.</summary>
    public const int RelationshipsFieldNumber = 20;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.ResourceRelationship> _repeated_relationships_codec
        = pb::FieldCodec.ForMessage(162, global::Aspire.ResourceService.Proto.V1.ResourceRelationship.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceRelationship> relationships_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceRelationship>();
    /// <summary>
    /// The list of relationships for this resource.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceRelationship> Relationships {
      get { return relationships_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Resource);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Resource other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (ResourceType != other.ResourceType) return false;
      if (DisplayName != other.DisplayName) return false;
      if (Uid != other.Uid) return false;
      if (State != other.State) return false;
      if (!object.Equals(CreatedAt, other.CreatedAt)) return false;
      if(!environment_.Equals(other.environment_)) return false;
      if(!commands_.Equals(other.commands_)) return false;
      if(!properties_.Equals(other.properties_)) return false;
      if(!urls_.Equals(other.urls_)) return false;
      if (StateStyle != other.StateStyle) return false;
      if(!volumes_.Equals(other.volumes_)) return false;
      if(!healthReports_.Equals(other.healthReports_)) return false;
      if (!object.Equals(StartedAt, other.StartedAt)) return false;
      if (!object.Equals(StoppedAt, other.StoppedAt)) return false;
      if(!relationships_.Equals(other.relationships_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (ResourceType.Length != 0) hash ^= ResourceType.GetHashCode();
      if (DisplayName.Length != 0) hash ^= DisplayName.GetHashCode();
      if (Uid.Length != 0) hash ^= Uid.GetHashCode();
      if (HasState) hash ^= State.GetHashCode();
      if (createdAt_ != null) hash ^= CreatedAt.GetHashCode();
      hash ^= environment_.GetHashCode();
      hash ^= commands_.GetHashCode();
      hash ^= properties_.GetHashCode();
      hash ^= urls_.GetHashCode();
      if (HasStateStyle) hash ^= StateStyle.GetHashCode();
      hash ^= volumes_.GetHashCode();
      hash ^= healthReports_.GetHashCode();
      if (startedAt_ != null) hash ^= StartedAt.GetHashCode();
      if (stoppedAt_ != null) hash ^= StoppedAt.GetHashCode();
      hash ^= relationships_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (ResourceType.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ResourceType);
      }
      if (DisplayName.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(DisplayName);
      }
      if (Uid.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Uid);
      }
      if (HasState) {
        output.WriteRawTag(42);
        output.WriteString(State);
      }
      if (createdAt_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(CreatedAt);
      }
      environment_.WriteTo(output, _repeated_environment_codec);
      commands_.WriteTo(output, _repeated_commands_codec);
      properties_.WriteTo(output, _repeated_properties_codec);
      urls_.WriteTo(output, _repeated_urls_codec);
      if (HasStateStyle) {
        output.WriteRawTag(114);
        output.WriteString(StateStyle);
      }
      volumes_.WriteTo(output, _repeated_volumes_codec);
      healthReports_.WriteTo(output, _repeated_healthReports_codec);
      if (startedAt_ != null) {
        output.WriteRawTag(146, 1);
        output.WriteMessage(StartedAt);
      }
      if (stoppedAt_ != null) {
        output.WriteRawTag(154, 1);
        output.WriteMessage(StoppedAt);
      }
      relationships_.WriteTo(output, _repeated_relationships_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (ResourceType.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ResourceType);
      }
      if (DisplayName.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(DisplayName);
      }
      if (Uid.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Uid);
      }
      if (HasState) {
        output.WriteRawTag(42);
        output.WriteString(State);
      }
      if (createdAt_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(CreatedAt);
      }
      environment_.WriteTo(ref output, _repeated_environment_codec);
      commands_.WriteTo(ref output, _repeated_commands_codec);
      properties_.WriteTo(ref output, _repeated_properties_codec);
      urls_.WriteTo(ref output, _repeated_urls_codec);
      if (HasStateStyle) {
        output.WriteRawTag(114);
        output.WriteString(StateStyle);
      }
      volumes_.WriteTo(ref output, _repeated_volumes_codec);
      healthReports_.WriteTo(ref output, _repeated_healthReports_codec);
      if (startedAt_ != null) {
        output.WriteRawTag(146, 1);
        output.WriteMessage(StartedAt);
      }
      if (stoppedAt_ != null) {
        output.WriteRawTag(154, 1);
        output.WriteMessage(StoppedAt);
      }
      relationships_.WriteTo(ref output, _repeated_relationships_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (ResourceType.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ResourceType);
      }
      if (DisplayName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DisplayName);
      }
      if (Uid.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Uid);
      }
      if (HasState) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(State);
      }
      if (createdAt_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CreatedAt);
      }
      size += environment_.CalculateSize(_repeated_environment_codec);
      size += commands_.CalculateSize(_repeated_commands_codec);
      size += properties_.CalculateSize(_repeated_properties_codec);
      size += urls_.CalculateSize(_repeated_urls_codec);
      if (HasStateStyle) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(StateStyle);
      }
      size += volumes_.CalculateSize(_repeated_volumes_codec);
      size += healthReports_.CalculateSize(_repeated_healthReports_codec);
      if (startedAt_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(StartedAt);
      }
      if (stoppedAt_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(StoppedAt);
      }
      size += relationships_.CalculateSize(_repeated_relationships_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Resource other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.ResourceType.Length != 0) {
        ResourceType = other.ResourceType;
      }
      if (other.DisplayName.Length != 0) {
        DisplayName = other.DisplayName;
      }
      if (other.Uid.Length != 0) {
        Uid = other.Uid;
      }
      if (other.HasState) {
        State = other.State;
      }
      if (other.createdAt_ != null) {
        if (createdAt_ == null) {
          CreatedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        CreatedAt.MergeFrom(other.CreatedAt);
      }
      environment_.Add(other.environment_);
      commands_.Add(other.commands_);
      properties_.Add(other.properties_);
      urls_.Add(other.urls_);
      if (other.HasStateStyle) {
        StateStyle = other.StateStyle;
      }
      volumes_.Add(other.volumes_);
      healthReports_.Add(other.healthReports_);
      if (other.startedAt_ != null) {
        if (startedAt_ == null) {
          StartedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        StartedAt.MergeFrom(other.StartedAt);
      }
      if (other.stoppedAt_ != null) {
        if (stoppedAt_ == null) {
          StoppedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        StoppedAt.MergeFrom(other.StoppedAt);
      }
      relationships_.Add(other.relationships_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            ResourceType = input.ReadString();
            break;
          }
          case 26: {
            DisplayName = input.ReadString();
            break;
          }
          case 34: {
            Uid = input.ReadString();
            break;
          }
          case 42: {
            State = input.ReadString();
            break;
          }
          case 50: {
            if (createdAt_ == null) {
              CreatedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreatedAt);
            break;
          }
          case 58: {
            environment_.AddEntriesFrom(input, _repeated_environment_codec);
            break;
          }
          case 90: {
            commands_.AddEntriesFrom(input, _repeated_commands_codec);
            break;
          }
          case 98: {
            properties_.AddEntriesFrom(input, _repeated_properties_codec);
            break;
          }
          case 106: {
            urls_.AddEntriesFrom(input, _repeated_urls_codec);
            break;
          }
          case 114: {
            StateStyle = input.ReadString();
            break;
          }
          case 122: {
            volumes_.AddEntriesFrom(input, _repeated_volumes_codec);
            break;
          }
          case 138: {
            healthReports_.AddEntriesFrom(input, _repeated_healthReports_codec);
            break;
          }
          case 146: {
            if (startedAt_ == null) {
              StartedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(StartedAt);
            break;
          }
          case 154: {
            if (stoppedAt_ == null) {
              StoppedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(StoppedAt);
            break;
          }
          case 162: {
            relationships_.AddEntriesFrom(input, _repeated_relationships_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            ResourceType = input.ReadString();
            break;
          }
          case 26: {
            DisplayName = input.ReadString();
            break;
          }
          case 34: {
            Uid = input.ReadString();
            break;
          }
          case 42: {
            State = input.ReadString();
            break;
          }
          case 50: {
            if (createdAt_ == null) {
              CreatedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreatedAt);
            break;
          }
          case 58: {
            environment_.AddEntriesFrom(ref input, _repeated_environment_codec);
            break;
          }
          case 90: {
            commands_.AddEntriesFrom(ref input, _repeated_commands_codec);
            break;
          }
          case 98: {
            properties_.AddEntriesFrom(ref input, _repeated_properties_codec);
            break;
          }
          case 106: {
            urls_.AddEntriesFrom(ref input, _repeated_urls_codec);
            break;
          }
          case 114: {
            StateStyle = input.ReadString();
            break;
          }
          case 122: {
            volumes_.AddEntriesFrom(ref input, _repeated_volumes_codec);
            break;
          }
          case 138: {
            healthReports_.AddEntriesFrom(ref input, _repeated_healthReports_codec);
            break;
          }
          case 146: {
            if (startedAt_ == null) {
              StartedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(StartedAt);
            break;
          }
          case 154: {
            if (stoppedAt_ == null) {
              StoppedAt = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(StoppedAt);
            break;
          }
          case 162: {
            relationships_.AddEntriesFrom(ref input, _repeated_relationships_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  /// Models a snapshot of resource state
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class InitialResourceData : pb::IMessage<InitialResourceData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<InitialResourceData> _parser = new pb::MessageParser<InitialResourceData>(() => new InitialResourceData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<InitialResourceData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[14]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InitialResourceData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InitialResourceData(InitialResourceData other) : this() {
      resources_ = other.resources_.Clone();
      resourceTypes_ = other.resourceTypes_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public InitialResourceData Clone() {
      return new InitialResourceData(this);
    }

    /// <summary>Field number for the "resources" field.</summary>
    public const int ResourcesFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.Resource> _repeated_resources_codec
        = pb::FieldCodec.ForMessage(10, global::Aspire.ResourceService.Proto.V1.Resource.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.Resource> resources_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.Resource>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.Resource> Resources {
      get { return resources_; }
    }

    /// <summary>Field number for the "resource_types" field.</summary>
    public const int ResourceTypesFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.ResourceType> _repeated_resourceTypes_codec
        = pb::FieldCodec.ForMessage(18, global::Aspire.ResourceService.Proto.V1.ResourceType.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceType> resourceTypes_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceType>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ResourceType> ResourceTypes {
      get { return resourceTypes_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as InitialResourceData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(InitialResourceData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!resources_.Equals(other.resources_)) return false;
      if(!resourceTypes_.Equals(other.resourceTypes_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= resources_.GetHashCode();
      hash ^= resourceTypes_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      resources_.WriteTo(output, _repeated_resources_codec);
      resourceTypes_.WriteTo(output, _repeated_resourceTypes_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      resources_.WriteTo(ref output, _repeated_resources_codec);
      resourceTypes_.WriteTo(ref output, _repeated_resourceTypes_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += resources_.CalculateSize(_repeated_resources_codec);
      size += resourceTypes_.CalculateSize(_repeated_resourceTypes_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(InitialResourceData other) {
      if (other == null) {
        return;
      }
      resources_.Add(other.resources_);
      resourceTypes_.Add(other.resourceTypes_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            resources_.AddEntriesFrom(input, _repeated_resources_codec);
            break;
          }
          case 18: {
            resourceTypes_.AddEntriesFrom(input, _repeated_resourceTypes_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            resources_.AddEntriesFrom(ref input, _repeated_resources_codec);
            break;
          }
          case 18: {
            resourceTypes_.AddEntriesFrom(ref input, _repeated_resourceTypes_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ResourceDeletion : pb::IMessage<ResourceDeletion>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ResourceDeletion> _parser = new pb::MessageParser<ResourceDeletion>(() => new ResourceDeletion());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ResourceDeletion> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[15]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceDeletion() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceDeletion(ResourceDeletion other) : this() {
      resourceName_ = other.resourceName_;
      resourceType_ = other.resourceType_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ResourceDeletion Clone() {
      return new ResourceDeletion(this);
    }

    /// <summary>Field number for the "resource_name" field.</summary>
    public const int ResourceNameFieldNumber = 1;
    private string resourceName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ResourceName {
      get { return resourceName_; }
      set {
        resourceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "resource_type" field.</summary>
    public const int ResourceTypeFieldNumber = 2;
    private string resourceType_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ResourceType {
      get { return resourceType_; }
      set {
        resourceType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ResourceDeletion);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ResourceDeletion other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ResourceName != other.ResourceName) return false;
      if (ResourceType != other.ResourceType) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (ResourceName.Length != 0) hash ^= ResourceName.GetHashCode();
      if (ResourceType.Length != 0) hash ^= ResourceType.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (ResourceName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ResourceName);
      }
      if (ResourceType.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ResourceType);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (ResourceName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ResourceName);
      }
      if (ResourceType.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ResourceType);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (ResourceName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ResourceName);
      }
      if (ResourceType.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ResourceType);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ResourceDeletion other) {
      if (other == null) {
        return;
      }
      if (other.ResourceName.Length != 0) {
        ResourceName = other.ResourceName;
      }
      if (other.ResourceType.Length != 0) {
        ResourceType = other.ResourceType;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            ResourceName = input.ReadString();
            break;
          }
          case 18: {
            ResourceType = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            ResourceName = input.ReadString();
            break;
          }
          case 18: {
            ResourceType = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class WatchResourcesChange : pb::IMessage<WatchResourcesChange>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<WatchResourcesChange> _parser = new pb::MessageParser<WatchResourcesChange>(() => new WatchResourcesChange());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<WatchResourcesChange> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[16]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesChange() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesChange(WatchResourcesChange other) : this() {
      switch (other.KindCase) {
        case KindOneofCase.Delete:
          Delete = other.Delete.Clone();
          break;
        case KindOneofCase.Upsert:
          Upsert = other.Upsert.Clone();
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesChange Clone() {
      return new WatchResourcesChange(this);
    }

    /// <summary>Field number for the "delete" field.</summary>
    public const int DeleteFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Aspire.ResourceService.Proto.V1.ResourceDeletion Delete {
      get { return kindCase_ == KindOneofCase.Delete ? (global::Aspire.ResourceService.Proto.V1.ResourceDeletion) kind_ : null; }
      set {
        kind_ = value;
        kindCase_ = value == null ? KindOneofCase.None : KindOneofCase.Delete;
      }
    }

    /// <summary>Field number for the "upsert" field.</summary>
    public const int UpsertFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Aspire.ResourceService.Proto.V1.Resource Upsert {
      get { return kindCase_ == KindOneofCase.Upsert ? (global::Aspire.ResourceService.Proto.V1.Resource) kind_ : null; }
      set {
        kind_ = value;
        kindCase_ = value == null ? KindOneofCase.None : KindOneofCase.Upsert;
      }
    }

    private object kind_;
    /// <summary>Enum of possible cases for the "kind" oneof.</summary>
    public enum KindOneofCase {
      None = 0,
      Delete = 1,
      Upsert = 2,
    }
    private KindOneofCase kindCase_ = KindOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public KindOneofCase KindCase {
      get { return kindCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearKind() {
      kindCase_ = KindOneofCase.None;
      kind_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as WatchResourcesChange);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(WatchResourcesChange other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Delete, other.Delete)) return false;
      if (!object.Equals(Upsert, other.Upsert)) return false;
      if (KindCase != other.KindCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (kindCase_ == KindOneofCase.Delete) hash ^= Delete.GetHashCode();
      if (kindCase_ == KindOneofCase.Upsert) hash ^= Upsert.GetHashCode();
      hash ^= (int) kindCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (kindCase_ == KindOneofCase.Delete) {
        output.WriteRawTag(10);
        output.WriteMessage(Delete);
      }
      if (kindCase_ == KindOneofCase.Upsert) {
        output.WriteRawTag(18);
        output.WriteMessage(Upsert);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (kindCase_ == KindOneofCase.Delete) {
        output.WriteRawTag(10);
        output.WriteMessage(Delete);
      }
      if (kindCase_ == KindOneofCase.Upsert) {
        output.WriteRawTag(18);
        output.WriteMessage(Upsert);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (kindCase_ == KindOneofCase.Delete) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Delete);
      }
      if (kindCase_ == KindOneofCase.Upsert) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Upsert);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(WatchResourcesChange other) {
      if (other == null) {
        return;
      }
      switch (other.KindCase) {
        case KindOneofCase.Delete:
          if (Delete == null) {
            Delete = new global::Aspire.ResourceService.Proto.V1.ResourceDeletion();
          }
          Delete.MergeFrom(other.Delete);
          break;
        case KindOneofCase.Upsert:
          if (Upsert == null) {
            Upsert = new global::Aspire.ResourceService.Proto.V1.Resource();
          }
          Upsert.MergeFrom(other.Upsert);
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            global::Aspire.ResourceService.Proto.V1.ResourceDeletion subBuilder = new global::Aspire.ResourceService.Proto.V1.ResourceDeletion();
            if (kindCase_ == KindOneofCase.Delete) {
              subBuilder.MergeFrom(Delete);
            }
            input.ReadMessage(subBuilder);
            Delete = subBuilder;
            break;
          }
          case 18: {
            global::Aspire.ResourceService.Proto.V1.Resource subBuilder = new global::Aspire.ResourceService.Proto.V1.Resource();
            if (kindCase_ == KindOneofCase.Upsert) {
              subBuilder.MergeFrom(Upsert);
            }
            input.ReadMessage(subBuilder);
            Upsert = subBuilder;
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            global::Aspire.ResourceService.Proto.V1.ResourceDeletion subBuilder = new global::Aspire.ResourceService.Proto.V1.ResourceDeletion();
            if (kindCase_ == KindOneofCase.Delete) {
              subBuilder.MergeFrom(Delete);
            }
            input.ReadMessage(subBuilder);
            Delete = subBuilder;
            break;
          }
          case 18: {
            global::Aspire.ResourceService.Proto.V1.Resource subBuilder = new global::Aspire.ResourceService.Proto.V1.Resource();
            if (kindCase_ == KindOneofCase.Upsert) {
              subBuilder.MergeFrom(Upsert);
            }
            input.ReadMessage(subBuilder);
            Upsert = subBuilder;
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class WatchResourcesChanges : pb::IMessage<WatchResourcesChanges>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<WatchResourcesChanges> _parser = new pb::MessageParser<WatchResourcesChanges>(() => new WatchResourcesChanges());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<WatchResourcesChanges> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[17]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesChanges() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesChanges(WatchResourcesChanges other) : this() {
      value_ = other.value_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesChanges Clone() {
      return new WatchResourcesChanges(this);
    }

    /// <summary>Field number for the "value" field.</summary>
    public const int ValueFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.WatchResourcesChange> _repeated_value_codec
        = pb::FieldCodec.ForMessage(10, global::Aspire.ResourceService.Proto.V1.WatchResourcesChange.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.WatchResourcesChange> value_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.WatchResourcesChange>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.WatchResourcesChange> Value {
      get { return value_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as WatchResourcesChanges);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(WatchResourcesChanges other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!value_.Equals(other.value_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= value_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      value_.WriteTo(output, _repeated_value_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      value_.WriteTo(ref output, _repeated_value_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += value_.CalculateSize(_repeated_value_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(WatchResourcesChanges other) {
      if (other == null) {
        return;
      }
      value_.Add(other.value_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            value_.AddEntriesFrom(input, _repeated_value_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            value_.AddEntriesFrom(ref input, _repeated_value_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  /// Initiates a subscription for data about resources.
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class WatchResourcesRequest : pb::IMessage<WatchResourcesRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<WatchResourcesRequest> _parser = new pb::MessageParser<WatchResourcesRequest>(() => new WatchResourcesRequest());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<WatchResourcesRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[18]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesRequest(WatchResourcesRequest other) : this() {
      _hasBits0 = other._hasBits0;
      isReconnect_ = other.isReconnect_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesRequest Clone() {
      return new WatchResourcesRequest(this);
    }

    /// <summary>Field number for the "is_reconnect" field.</summary>
    public const int IsReconnectFieldNumber = 1;
    private readonly static bool IsReconnectDefaultValue = false;

    private bool isReconnect_;
    /// <summary>
    /// True if the client is establishing this connection because a prior one closed unexpectedly.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsReconnect {
      get { if ((_hasBits0 & 1) != 0) { return isReconnect_; } else { return IsReconnectDefaultValue; } }
      set {
        _hasBits0 |= 1;
        isReconnect_ = value;
      }
    }
    /// <summary>Gets whether the "is_reconnect" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasIsReconnect {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "is_reconnect" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearIsReconnect() {
      _hasBits0 &= ~1;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as WatchResourcesRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(WatchResourcesRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (IsReconnect != other.IsReconnect) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (HasIsReconnect) hash ^= IsReconnect.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (HasIsReconnect) {
        output.WriteRawTag(8);
        output.WriteBool(IsReconnect);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (HasIsReconnect) {
        output.WriteRawTag(8);
        output.WriteBool(IsReconnect);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (HasIsReconnect) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(WatchResourcesRequest other) {
      if (other == null) {
        return;
      }
      if (other.HasIsReconnect) {
        IsReconnect = other.IsReconnect;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            IsReconnect = input.ReadBool();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            IsReconnect = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  /// A message received from the server when watching resources. Has multiple types of payload.
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class WatchResourcesUpdate : pb::IMessage<WatchResourcesUpdate>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<WatchResourcesUpdate> _parser = new pb::MessageParser<WatchResourcesUpdate>(() => new WatchResourcesUpdate());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<WatchResourcesUpdate> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[19]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesUpdate() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesUpdate(WatchResourcesUpdate other) : this() {
      switch (other.KindCase) {
        case KindOneofCase.InitialData:
          InitialData = other.InitialData.Clone();
          break;
        case KindOneofCase.Changes:
          Changes = other.Changes.Clone();
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourcesUpdate Clone() {
      return new WatchResourcesUpdate(this);
    }

    /// <summary>Field number for the "initial_data" field.</summary>
    public const int InitialDataFieldNumber = 1;
    /// <summary>
    /// The current resource state, along with other reference data such as the set of resource types that may exist.
    /// Received once upon connection, before any changes.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Aspire.ResourceService.Proto.V1.InitialResourceData InitialData {
      get { return kindCase_ == KindOneofCase.InitialData ? (global::Aspire.ResourceService.Proto.V1.InitialResourceData) kind_ : null; }
      set {
        kind_ = value;
        kindCase_ = value == null ? KindOneofCase.None : KindOneofCase.InitialData;
      }
    }

    /// <summary>Field number for the "changes" field.</summary>
    public const int ChangesFieldNumber = 2;
    /// <summary>
    /// One or more deltas to apply.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Aspire.ResourceService.Proto.V1.WatchResourcesChanges Changes {
      get { return kindCase_ == KindOneofCase.Changes ? (global::Aspire.ResourceService.Proto.V1.WatchResourcesChanges) kind_ : null; }
      set {
        kind_ = value;
        kindCase_ = value == null ? KindOneofCase.None : KindOneofCase.Changes;
      }
    }

    private object kind_;
    /// <summary>Enum of possible cases for the "kind" oneof.</summary>
    public enum KindOneofCase {
      None = 0,
      InitialData = 1,
      Changes = 2,
    }
    private KindOneofCase kindCase_ = KindOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public KindOneofCase KindCase {
      get { return kindCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearKind() {
      kindCase_ = KindOneofCase.None;
      kind_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as WatchResourcesUpdate);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(WatchResourcesUpdate other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(InitialData, other.InitialData)) return false;
      if (!object.Equals(Changes, other.Changes)) return false;
      if (KindCase != other.KindCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (kindCase_ == KindOneofCase.InitialData) hash ^= InitialData.GetHashCode();
      if (kindCase_ == KindOneofCase.Changes) hash ^= Changes.GetHashCode();
      hash ^= (int) kindCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (kindCase_ == KindOneofCase.InitialData) {
        output.WriteRawTag(10);
        output.WriteMessage(InitialData);
      }
      if (kindCase_ == KindOneofCase.Changes) {
        output.WriteRawTag(18);
        output.WriteMessage(Changes);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (kindCase_ == KindOneofCase.InitialData) {
        output.WriteRawTag(10);
        output.WriteMessage(InitialData);
      }
      if (kindCase_ == KindOneofCase.Changes) {
        output.WriteRawTag(18);
        output.WriteMessage(Changes);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (kindCase_ == KindOneofCase.InitialData) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(InitialData);
      }
      if (kindCase_ == KindOneofCase.Changes) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Changes);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(WatchResourcesUpdate other) {
      if (other == null) {
        return;
      }
      switch (other.KindCase) {
        case KindOneofCase.InitialData:
          if (InitialData == null) {
            InitialData = new global::Aspire.ResourceService.Proto.V1.InitialResourceData();
          }
          InitialData.MergeFrom(other.InitialData);
          break;
        case KindOneofCase.Changes:
          if (Changes == null) {
            Changes = new global::Aspire.ResourceService.Proto.V1.WatchResourcesChanges();
          }
          Changes.MergeFrom(other.Changes);
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            global::Aspire.ResourceService.Proto.V1.InitialResourceData subBuilder = new global::Aspire.ResourceService.Proto.V1.InitialResourceData();
            if (kindCase_ == KindOneofCase.InitialData) {
              subBuilder.MergeFrom(InitialData);
            }
            input.ReadMessage(subBuilder);
            InitialData = subBuilder;
            break;
          }
          case 18: {
            global::Aspire.ResourceService.Proto.V1.WatchResourcesChanges subBuilder = new global::Aspire.ResourceService.Proto.V1.WatchResourcesChanges();
            if (kindCase_ == KindOneofCase.Changes) {
              subBuilder.MergeFrom(Changes);
            }
            input.ReadMessage(subBuilder);
            Changes = subBuilder;
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            global::Aspire.ResourceService.Proto.V1.InitialResourceData subBuilder = new global::Aspire.ResourceService.Proto.V1.InitialResourceData();
            if (kindCase_ == KindOneofCase.InitialData) {
              subBuilder.MergeFrom(InitialData);
            }
            input.ReadMessage(subBuilder);
            InitialData = subBuilder;
            break;
          }
          case 18: {
            global::Aspire.ResourceService.Proto.V1.WatchResourcesChanges subBuilder = new global::Aspire.ResourceService.Proto.V1.WatchResourcesChanges();
            if (kindCase_ == KindOneofCase.Changes) {
              subBuilder.MergeFrom(Changes);
            }
            input.ReadMessage(subBuilder);
            Changes = subBuilder;
            break;
          }
        }
      }
    }
    #endif

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class ConsoleLogLine : pb::IMessage<ConsoleLogLine>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ConsoleLogLine> _parser = new pb::MessageParser<ConsoleLogLine>(() => new ConsoleLogLine());
    private pb::UnknownFieldSet _unknownFields;
    private int _hasBits0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ConsoleLogLine> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[20]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ConsoleLogLine() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ConsoleLogLine(ConsoleLogLine other) : this() {
      _hasBits0 = other._hasBits0;
      text_ = other.text_;
      isStdErr_ = other.isStdErr_;
      lineNumber_ = other.lineNumber_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ConsoleLogLine Clone() {
      return new ConsoleLogLine(this);
    }

    /// <summary>Field number for the "text" field.</summary>
    public const int TextFieldNumber = 1;
    private string text_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Text {
      get { return text_; }
      set {
        text_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "is_std_err" field.</summary>
    public const int IsStdErrFieldNumber = 2;
    private readonly static bool IsStdErrDefaultValue = false;

    private bool isStdErr_;
    /// <summary>
    /// Indicates whether this line came from STDERR or not.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsStdErr {
      get { if ((_hasBits0 & 1) != 0) { return isStdErr_; } else { return IsStdErrDefaultValue; } }
      set {
        _hasBits0 |= 1;
        isStdErr_ = value;
      }
    }
    /// <summary>Gets whether the "is_std_err" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasIsStdErr {
      get { return (_hasBits0 & 1) != 0; }
    }
    /// <summary>Clears the value of the "is_std_err" field</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearIsStdErr() {
      _hasBits0 &= ~1;
    }

    /// <summary>Field number for the "line_number" field.</summary>
    public const int LineNumberFieldNumber = 3;
    private int lineNumber_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int LineNumber {
      get { return lineNumber_; }
      set {
        lineNumber_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ConsoleLogLine);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ConsoleLogLine other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Text != other.Text) return false;
      if (IsStdErr != other.IsStdErr) return false;
      if (LineNumber != other.LineNumber) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Text.Length != 0) hash ^= Text.GetHashCode();
      if (HasIsStdErr) hash ^= IsStdErr.GetHashCode();
      if (LineNumber != 0) hash ^= LineNumber.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Text.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Text);
      }
      if (HasIsStdErr) {
        output.WriteRawTag(16);
        output.WriteBool(IsStdErr);
      }
      if (LineNumber != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(LineNumber);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Text.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Text);
      }
      if (HasIsStdErr) {
        output.WriteRawTag(16);
        output.WriteBool(IsStdErr);
      }
      if (LineNumber != 0) {
        output.WriteRawTag(24);
        output.WriteInt32(LineNumber);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Text.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Text);
      }
      if (HasIsStdErr) {
        size += 1 + 1;
      }
      if (LineNumber != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(LineNumber);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ConsoleLogLine other) {
      if (other == null) {
        return;
      }
      if (other.Text.Length != 0) {
        Text = other.Text;
      }
      if (other.HasIsStdErr) {
        IsStdErr = other.IsStdErr;
      }
      if (other.LineNumber != 0) {
        LineNumber = other.LineNumber;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Text = input.ReadString();
            break;
          }
          case 16: {
            IsStdErr = input.ReadBool();
            break;
          }
          case 24: {
            LineNumber = input.ReadInt32();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Text = input.ReadString();
            break;
          }
          case 16: {
            IsStdErr = input.ReadBool();
            break;
          }
          case 24: {
            LineNumber = input.ReadInt32();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  /// Initiates a subscription for the logs of a resource.
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class WatchResourceConsoleLogsRequest : pb::IMessage<WatchResourceConsoleLogsRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<WatchResourceConsoleLogsRequest> _parser = new pb::MessageParser<WatchResourceConsoleLogsRequest>(() => new WatchResourceConsoleLogsRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<WatchResourceConsoleLogsRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[21]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourceConsoleLogsRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourceConsoleLogsRequest(WatchResourceConsoleLogsRequest other) : this() {
      resourceName_ = other.resourceName_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourceConsoleLogsRequest Clone() {
      return new WatchResourceConsoleLogsRequest(this);
    }

    /// <summary>Field number for the "resource_name" field.</summary>
    public const int ResourceNameFieldNumber = 1;
    private string resourceName_ = "";
    /// <summary>
    /// Specifies the resource to watch logs from.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ResourceName {
      get { return resourceName_; }
      set {
        resourceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as WatchResourceConsoleLogsRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(WatchResourceConsoleLogsRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ResourceName != other.ResourceName) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (ResourceName.Length != 0) hash ^= ResourceName.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (ResourceName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ResourceName);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (ResourceName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ResourceName);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (ResourceName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ResourceName);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(WatchResourceConsoleLogsRequest other) {
      if (other == null) {
        return;
      }
      if (other.ResourceName.Length != 0) {
        ResourceName = other.ResourceName;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            ResourceName = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            ResourceName = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  /// A message received from the server when watching resource logs.
  /// Contains potentially many lines to be appended to the log.
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  internal sealed partial class WatchResourceConsoleLogsUpdate : pb::IMessage<WatchResourceConsoleLogsUpdate>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<WatchResourceConsoleLogsUpdate> _parser = new pb::MessageParser<WatchResourceConsoleLogsUpdate>(() => new WatchResourceConsoleLogsUpdate());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<WatchResourceConsoleLogsUpdate> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Aspire.ResourceService.Proto.V1.ResourceServiceReflection.Descriptor.MessageTypes[22]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourceConsoleLogsUpdate() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourceConsoleLogsUpdate(WatchResourceConsoleLogsUpdate other) : this() {
      logLines_ = other.logLines_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public WatchResourceConsoleLogsUpdate Clone() {
      return new WatchResourceConsoleLogsUpdate(this);
    }

    /// <summary>Field number for the "log_lines" field.</summary>
    public const int LogLinesFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Aspire.ResourceService.Proto.V1.ConsoleLogLine> _repeated_logLines_codec
        = pb::FieldCodec.ForMessage(10, global::Aspire.ResourceService.Proto.V1.ConsoleLogLine.Parser);
    private readonly pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ConsoleLogLine> logLines_ = new pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ConsoleLogLine>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Aspire.ResourceService.Proto.V1.ConsoleLogLine> LogLines {
      get { return logLines_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as WatchResourceConsoleLogsUpdate);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(WatchResourceConsoleLogsUpdate other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!logLines_.Equals(other.logLines_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= logLines_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      logLines_.WriteTo(output, _repeated_logLines_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      logLines_.WriteTo(ref output, _repeated_logLines_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += logLines_.CalculateSize(_repeated_logLines_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(WatchResourceConsoleLogsUpdate other) {
      if (other == null) {
        return;
      }
      logLines_.Add(other.logLines_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            logLines_.AddEntriesFrom(input, _repeated_logLines_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            logLines_.AddEntriesFrom(ref input, _repeated_logLines_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code