private[support] def parseSGOpenPortsDetail()

in hq/app/aws/support/TrustedAdvisorSGOpenPorts.scala [31:66]


  private[support] def parseSGOpenPortsDetail(detail: TrustedAdvisorResourceDetail): Attempt[SGOpenPortsDetail] = {
    detail.metadata.asScala.toList match {
      case region :: name :: SGIds(sgId, vpcId) :: protocol :: alertLevel :: port :: _ =>
        Attempt.Right {
          SGOpenPortsDetail(
            status = detail.status,
            region = detail.region,
            name = name,
            id = sgId,
            vpcId = vpcId,
            protocol = protocol,
            port = port,
            alertLevel = alertLevel,
            isSuppressed = detail.isSuppressed
          )
        }
      case region :: name :: sgId :: protocol :: alertLevel :: port :: _ =>
        Attempt.Right {
          SGOpenPortsDetail(
            status = detail.status,
            region = detail.region,
            name = name,
            id = sgId,
            vpcId = "EC2 classic",
            protocol = protocol,
            port = port,
            alertLevel = alertLevel,
            isSuppressed = detail.isSuppressed
          )
        }
      case metadata =>
        Attempt.Left {
          Failure(s"Could not parse SGOpenPorts from TrustedAdvisorResourceDetail with metadata $metadata", "Could not parse SGOpenPorts result", 500).attempt
        }
    }
  }