CockpitDaemonDiscovery constructor

CockpitDaemonDiscovery({
  1. String schemaVersion = cockpitDaemonDiscoverySchema,
  2. required String instanceId,
  3. required int processId,
  4. required String processStartIdentity,
  5. required Uri endpoint,
  6. required String bearerToken,
  7. required int apiMajor,
  8. required int apiMinor,
  9. required String engineVersion,
  10. required DateTime startedAt,
  11. CockpitAuthorizationMode authorizationMode = CockpitAuthorizationMode.restricted,
})

Implementation

CockpitDaemonDiscovery({
  this.schemaVersion = cockpitDaemonDiscoverySchema,
  required this.instanceId,
  required this.processId,
  required this.processStartIdentity,
  required this.endpoint,
  required this.bearerToken,
  required this.apiMajor,
  required this.apiMinor,
  required this.engineVersion,
  required this.startedAt,
  this.authorizationMode = CockpitAuthorizationMode.restricted,
}) {
  if (schemaVersion != cockpitDaemonDiscoverySchema ||
      !_identifier.hasMatch(instanceId) ||
      processId <= 1 ||
      processStartIdentity.trim().isEmpty ||
      processStartIdentity.length > 512 ||
      endpoint.scheme != 'http' ||
      endpoint.host != InternetAddress.loopbackIPv4.address ||
      endpoint.port < 1 ||
      endpoint.port > 65535 ||
      endpoint.path.isNotEmpty && endpoint.path != '/' ||
      endpoint.hasQuery ||
      endpoint.hasFragment ||
      bearerToken.length < 32 ||
      bearerToken.length > 128 ||
      !_token.hasMatch(bearerToken) ||
      apiMajor < 0 ||
      apiMinor < 0 ||
      engineVersion.trim().isEmpty ||
      engineVersion.length > 128 ||
      !startedAt.isUtc) {
    throw const FormatException('Invalid Cockpit daemon discovery data.');
  }
}