Files
zeekay 1df3ddf6bd Regenerate against the document the deployment answers for
The projection these were generated from predated the compute migration, so
they described /v1/visor — which the API serves at zero paths now.

No /v1/visor path survives here.
2026-09-05 18:55:38 -07:00

56 lines
2.1 KiB
Swift

//
// SeoMetric.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//
import Foundation
public struct SeoMetric: Sendable, Codable, ParameterConvertible, Hashable {
/** Competition is how contested the advertising is, from 0 to 1. The upstream reports it as an index out of a hundred on one endpoint and as this fraction on another; it is the fraction here in both cases. */
public var competition: Double?
/** CPC is the average cost of one advertising click, in USD. It is a reported statistic about somebody else's auction, not an amount this API moves. */
public var cpc: Double?
/** Difficulty is how hard the first page is to reach organically, 0 to 100. Present on seoIdea, which measures it; absent on seoKeyword, which does not. */
public var difficulty: Int64?
/** Keyword is the phrase. */
public var keyword: String?
/** Level is the same fact as a word: low, medium or high. */
public var level: String?
/** Volume is the average monthly searches. */
public var volume: Int64?
public init(competition: Double? = nil, cpc: Double? = nil, difficulty: Int64? = nil, keyword: String? = nil, level: String? = nil, volume: Int64? = nil) {
self.competition = competition
self.cpc = cpc
self.difficulty = difficulty
self.keyword = keyword
self.level = level
self.volume = volume
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case competition
case cpc
case difficulty
case keyword
case level
case volume
}
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(competition, forKey: .competition)
try container.encodeIfPresent(cpc, forKey: .cpc)
try container.encodeIfPresent(difficulty, forKey: .difficulty)
try container.encodeIfPresent(keyword, forKey: .keyword)
try container.encodeIfPresent(level, forKey: .level)
try container.encodeIfPresent(volume, forKey: .volume)
}
}