diff --git a/src/dorkbox/Kloudflare.kt b/src/dorkbox/kloudflare/Kloudflare.kt similarity index 62% rename from src/dorkbox/Kloudflare.kt rename to src/dorkbox/kloudflare/Kloudflare.kt index d1f71e1..3d9a14a 100644 --- a/src/dorkbox/Kloudflare.kt +++ b/src/dorkbox/kloudflare/Kloudflare.kt @@ -13,23 +13,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox +package dorkbox.kloudflare import com.squareup.moshi.Moshi -import com.squareup.moshi.Types -import dorkbox.api.CloudflareActions -import dorkbox.api.core.* -import dorkbox.api.dns.CreateDnsRecord -import dorkbox.api.dns.DeleteDnsRecord -import dorkbox.api.dns.DnsRecord -import dorkbox.api.dns.UpdateDnsRecord -import dorkbox.api.firewall.AccessRule -import dorkbox.api.user.BillingHistory -import dorkbox.api.user.BillingProfile -import dorkbox.api.user.User -import dorkbox.api.zone.RatePlan -import dorkbox.api.zone.Zone -import dorkbox.api.zone.settings.ZoneSetting +import dorkbox.kloudflare.api.CloudflareActions +import dorkbox.kloudflare.api.core.CfErrorResponse +import dorkbox.kloudflare.api.core.CfResponse +import dorkbox.kloudflare.api.core.DnsRecordTypeAdapter +import dorkbox.kloudflare.api.core.Error +import dorkbox.kloudflare.api.core.ISO8601Adapter +import dorkbox.kloudflare.api.dns.CreateDnsRecord +import dorkbox.kloudflare.api.dns.DeleteDnsRecord +import dorkbox.kloudflare.api.dns.DnsRecord +import dorkbox.kloudflare.api.dns.UpdateDnsRecord +import dorkbox.kloudflare.api.firewall.AccessRule +import dorkbox.kloudflare.api.user.BillingHistory +import dorkbox.kloudflare.api.user.BillingProfile +import dorkbox.kloudflare.api.user.User +import dorkbox.kloudflare.api.zone.RatePlan +import dorkbox.kloudflare.api.zone.Zone +import dorkbox.kloudflare.api.zone.settings.ZoneSetting import okhttp3.OkHttpClient import okhttp3.ResponseBody import okhttp3.logging.HttpLoggingInterceptor @@ -51,15 +54,15 @@ class Kloudflare(private val xAuthEmail: String, private val xAuthKey: String) { val errorConverter: Converter val cloudflare: CloudflareActions + val client: OkHttpClient + init { // JSON mapping to java classes - val httpClient = OkHttpClient.Builder() - val interceptor = HttpLoggingInterceptor() interceptor.level = HttpLoggingInterceptor.Level.BODY - val client = httpClient -// .addInterceptor(interceptor) // this is the raw HTTP interceptor + client = OkHttpClient.Builder() + // .addInterceptor(interceptor) // this is the raw HTTP interceptor .build() val moshi = Moshi.Builder() @@ -67,7 +70,7 @@ class Kloudflare(private val xAuthEmail: String, private val xAuthKey: String) { .add(DnsRecordTypeAdapter()) .build() - val adapter = moshi.adapter>(Types.newParameterizedType(List::class.java, String::class.java)) +// val adapter = moshi.adapter>(Types.newParameterizedType(List::class.java, String::class.java)) val retrofit = Retrofit.Builder() @@ -76,7 +79,7 @@ class Kloudflare(private val xAuthEmail: String, private val xAuthKey: String) { .client(client) .build() - errorConverter = retrofit.responseBodyConverter(CfErrorResponse::class.java, CfErrorResponse::class.annotations.toTypedArray()) + errorConverter = retrofit.responseBodyConverter(CfErrorResponse::class.java, CfErrorResponse::class.annotations.toTypedArray()) cloudflare = retrofit.create(CloudflareActions::class.java) } @@ -108,7 +111,14 @@ class Kloudflare(private val xAuthEmail: String, private val xAuthKey: String) { } fun listZones(options: Map = emptyMap()): List { - return wrap(cloudflare.listZones(xAuthEmail, xAuthKey, options)) + val zones = wrap(cloudflare.listZones(xAuthEmail, xAuthKey, options)) + zones.forEach { zone -> + // have to assign + zone.kloudflare = this; + + } + + return zones } fun getZoneRatePlans(zone: Zone): RatePlan { @@ -120,7 +130,8 @@ class Kloudflare(private val xAuthEmail: String, private val xAuthKey: String) { } fun listDnsRecords(zone: Zone): List { - val wrap = wrap(cloudflare.listDnsRecords(xAuthEmail, xAuthKey, zone.id)) + val wrap = + wrap(cloudflare.listDnsRecords(xAuthEmail, xAuthKey, zone.id)) wrap.forEach { it.zone = zone } @@ -128,13 +139,20 @@ class Kloudflare(private val xAuthEmail: String, private val xAuthKey: String) { } fun createDnsRecord(dnsRecord: CreateDnsRecord): DnsRecord { - val wrap = wrap(cloudflare.createDnsRecord(xAuthEmail, xAuthKey, dnsRecord.zone.id, dnsRecord)) + val wrap = + wrap(cloudflare.createDnsRecord(xAuthEmail, xAuthKey, dnsRecord.zone.id, dnsRecord)) wrap.zone = dnsRecord.zone return wrap } fun updateDnsRecord(updatedDnsRecord: UpdateDnsRecord): Any { - return wrap(cloudflare.updateDnsRecord(xAuthEmail, xAuthKey, updatedDnsRecord.zone.id, updatedDnsRecord.id, updatedDnsRecord)) + return wrap(cloudflare.updateDnsRecord(xAuthEmail, + xAuthKey, + updatedDnsRecord.zone.id, + updatedDnsRecord.id, + updatedDnsRecord + ) + ) } fun deleteDnsRecord(dnsRecord: DnsRecord): DeleteDnsRecord { @@ -144,5 +162,13 @@ class Kloudflare(private val xAuthEmail: String, private val xAuthKey: String) { fun listAccessRules(): List { return wrap(cloudflare.listAccessRules(xAuthEmail, xAuthKey)) } + + fun shutdown() { + // shutdown the http client stuff + client.dispatcher.cancelAll() + client.dispatcher.executorService.shutdown() + client.connectionPool.evictAll() + client.cache?.close() + } } diff --git a/src/dorkbox/api/CloudflareActions.kt b/src/dorkbox/kloudflare/api/CloudflareActions.kt similarity index 87% rename from src/dorkbox/api/CloudflareActions.kt rename to src/dorkbox/kloudflare/api/CloudflareActions.kt index 509949f..7865040 100644 --- a/src/dorkbox/api/CloudflareActions.kt +++ b/src/dorkbox/kloudflare/api/CloudflareActions.kt @@ -13,22 +13,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api +package dorkbox.kloudflare.api -import dorkbox.api.core.CfResponse -import dorkbox.api.dns.CreateDnsRecord -import dorkbox.api.dns.DeleteDnsRecord -import dorkbox.api.dns.DnsRecord -import dorkbox.api.dns.UpdateDnsRecord -import dorkbox.api.firewall.AccessRule -import dorkbox.api.user.BillingHistory -import dorkbox.api.user.BillingProfile -import dorkbox.api.user.User -import dorkbox.api.zone.RatePlan -import dorkbox.api.zone.Zone -import dorkbox.api.zone.settings.ZoneSetting +import dorkbox.kloudflare.api.core.CfResponse +import dorkbox.kloudflare.api.dns.CreateDnsRecord +import dorkbox.kloudflare.api.dns.DeleteDnsRecord +import dorkbox.kloudflare.api.dns.DnsRecord +import dorkbox.kloudflare.api.dns.UpdateDnsRecord +import dorkbox.kloudflare.api.firewall.AccessRule +import dorkbox.kloudflare.api.user.BillingHistory +import dorkbox.kloudflare.api.user.BillingProfile +import dorkbox.kloudflare.api.user.User +import dorkbox.kloudflare.api.zone.RatePlan +import dorkbox.kloudflare.api.zone.Zone +import dorkbox.kloudflare.api.zone.settings.ZoneSetting import retrofit2.Call -import retrofit2.http.* +import retrofit2.http.Body +import retrofit2.http.DELETE +import retrofit2.http.GET +import retrofit2.http.Header +import retrofit2.http.Headers +import retrofit2.http.POST +import retrofit2.http.PUT +import retrofit2.http.Path +import retrofit2.http.QueryMap interface CloudflareActions { /** diff --git a/src/dorkbox/api/core/CfErrorResponse.kt b/src/dorkbox/kloudflare/api/core/CfErrorResponse.kt similarity index 97% rename from src/dorkbox/api/core/CfErrorResponse.kt rename to src/dorkbox/kloudflare/api/core/CfErrorResponse.kt index c9f678f..7f11f32 100644 --- a/src/dorkbox/api/core/CfErrorResponse.kt +++ b/src/dorkbox/kloudflare/api/core/CfErrorResponse.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.core +package dorkbox.kloudflare.api.core import com.squareup.moshi.Json diff --git a/src/dorkbox/api/core/CfResponse.kt b/src/dorkbox/kloudflare/api/core/CfResponse.kt similarity index 98% rename from src/dorkbox/api/core/CfResponse.kt rename to src/dorkbox/kloudflare/api/core/CfResponse.kt index 77cf295..51d9633 100644 --- a/src/dorkbox/api/core/CfResponse.kt +++ b/src/dorkbox/kloudflare/api/core/CfResponse.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.core +package dorkbox.kloudflare.api.core import com.squareup.moshi.Json diff --git a/src/dorkbox/api/core/DnsRecordTypeAdapter.kt b/src/dorkbox/kloudflare/api/core/DnsRecordTypeAdapter.kt similarity index 92% rename from src/dorkbox/api/core/DnsRecordTypeAdapter.kt rename to src/dorkbox/kloudflare/api/core/DnsRecordTypeAdapter.kt index 22e47e4..022a436 100644 --- a/src/dorkbox/api/core/DnsRecordTypeAdapter.kt +++ b/src/dorkbox/kloudflare/api/core/DnsRecordTypeAdapter.kt @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.core +package dorkbox.kloudflare.api.core import com.squareup.moshi.FromJson import com.squareup.moshi.ToJson -import dorkbox.api.dns.RecordType +import dorkbox.kloudflare.api.dns.RecordType /** Converts byte arrays to base64 (so it looks better as a string...) */ internal class DnsRecordTypeAdapter { diff --git a/src/dorkbox/api/core/Error.kt b/src/dorkbox/kloudflare/api/core/Error.kt similarity index 95% rename from src/dorkbox/api/core/Error.kt rename to src/dorkbox/kloudflare/api/core/Error.kt index cec55b1..83d214f 100644 --- a/src/dorkbox/api/core/Error.kt +++ b/src/dorkbox/kloudflare/api/core/Error.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.core +package dorkbox.kloudflare.api.core import com.squareup.moshi.Json diff --git a/src/dorkbox/api/core/ISO8601Adapter.kt b/src/dorkbox/kloudflare/api/core/ISO8601Adapter.kt similarity index 97% rename from src/dorkbox/api/core/ISO8601Adapter.kt rename to src/dorkbox/kloudflare/api/core/ISO8601Adapter.kt index 25b80e8..1bf4028 100644 --- a/src/dorkbox/api/core/ISO8601Adapter.kt +++ b/src/dorkbox/kloudflare/api/core/ISO8601Adapter.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.core +package dorkbox.kloudflare.api.core import com.squareup.moshi.FromJson import com.squareup.moshi.JsonQualifier diff --git a/src/dorkbox/api/core/Pagination.kt b/src/dorkbox/kloudflare/api/core/Pagination.kt similarity index 97% rename from src/dorkbox/api/core/Pagination.kt rename to src/dorkbox/kloudflare/api/core/Pagination.kt index 8a8fb72..58c3555 100644 --- a/src/dorkbox/api/core/Pagination.kt +++ b/src/dorkbox/kloudflare/api/core/Pagination.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.core +package dorkbox.kloudflare.api.core /** * https://api.cloudflare.com/#getting-started-requests diff --git a/src/dorkbox/api/core/ResultInfo.kt b/src/dorkbox/kloudflare/api/core/ResultInfo.kt similarity index 96% rename from src/dorkbox/api/core/ResultInfo.kt rename to src/dorkbox/kloudflare/api/core/ResultInfo.kt index 2dca382..25af772 100644 --- a/src/dorkbox/api/core/ResultInfo.kt +++ b/src/dorkbox/kloudflare/api/core/ResultInfo.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.core +package dorkbox.kloudflare.api.core import com.squareup.moshi.Json diff --git a/src/dorkbox/api/dns/CreateDnsRecord.kt b/src/dorkbox/kloudflare/api/dns/CreateDnsRecord.kt similarity index 85% rename from src/dorkbox/api/dns/CreateDnsRecord.kt rename to src/dorkbox/kloudflare/api/dns/CreateDnsRecord.kt index 1569cbd..5f749c7 100644 --- a/src/dorkbox/api/dns/CreateDnsRecord.kt +++ b/src/dorkbox/kloudflare/api/dns/CreateDnsRecord.kt @@ -13,20 +13,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.dns +package dorkbox.kloudflare.api.dns import com.squareup.moshi.Json +import dorkbox.kloudflare.api.zone.Zone /** * https://api.cloudflare.com/#dns-records-for-a-zone-create-dns-record */ -open class CreateDnsRecord(dnsRecord: DnsRecord) { +open class CreateDnsRecord(zone: Zone) { + /** + * NOTE: This is not part of the Cloudflare API + * + * Used to associate this dns record with it's zone + */ @Transient - var id = dnsRecord.id + val zone = zone + + - @Transient - var zone = dnsRecord.zone /** * Record type diff --git a/src/dorkbox/api/dns/Data.kt b/src/dorkbox/kloudflare/api/dns/Data.kt similarity index 95% rename from src/dorkbox/api/dns/Data.kt rename to src/dorkbox/kloudflare/api/dns/Data.kt index 122e7e3..4668baf 100644 --- a/src/dorkbox/api/dns/Data.kt +++ b/src/dorkbox/kloudflare/api/dns/Data.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.dns +package dorkbox.kloudflare.api.dns /** * https://api.cloudflare.com/#dns-records-for-a-zone-properties diff --git a/src/dorkbox/api/dns/DeleteDnsRecord.kt b/src/dorkbox/kloudflare/api/dns/DeleteDnsRecord.kt similarity index 95% rename from src/dorkbox/api/dns/DeleteDnsRecord.kt rename to src/dorkbox/kloudflare/api/dns/DeleteDnsRecord.kt index b0fa01c..f9698e6 100644 --- a/src/dorkbox/api/dns/DeleteDnsRecord.kt +++ b/src/dorkbox/kloudflare/api/dns/DeleteDnsRecord.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.dns +package dorkbox.kloudflare.api.dns import com.squareup.moshi.Json diff --git a/src/dorkbox/api/dns/DnsRecord.kt b/src/dorkbox/kloudflare/api/dns/DnsRecord.kt similarity index 85% rename from src/dorkbox/api/dns/DnsRecord.kt rename to src/dorkbox/kloudflare/api/dns/DnsRecord.kt index 7c70f85..2f5344e 100644 --- a/src/dorkbox/api/dns/DnsRecord.kt +++ b/src/dorkbox/kloudflare/api/dns/DnsRecord.kt @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.dns +package dorkbox.kloudflare.api.dns import com.squareup.moshi.Json -import dorkbox.api.core.ISO8601 -import dorkbox.api.zone.Zone +import dorkbox.kloudflare.api.core.ISO8601 +import dorkbox.kloudflare.api.zone.Zone import java.time.LocalDateTime /** @@ -25,12 +25,24 @@ import java.time.LocalDateTime */ open class DnsRecord { /** + * NOTE: This is not part of the Cloudflare API + * * Which zone this DNS record belongs to */ @Transient lateinit var zone: Zone + fun prettyName(): String { + return when (val length = name.length - zone.name.length) { + 0 -> "@" + else -> + name.subSequence(0, length - 1) as String // -1 because we don't want the '.' + } + } + + + /** * DNS record identifier tag */ diff --git a/src/dorkbox/api/dns/Meta.kt b/src/dorkbox/kloudflare/api/dns/Meta.kt similarity index 96% rename from src/dorkbox/api/dns/Meta.kt rename to src/dorkbox/kloudflare/api/dns/Meta.kt index 76bbd59..fa889b3 100644 --- a/src/dorkbox/api/dns/Meta.kt +++ b/src/dorkbox/kloudflare/api/dns/Meta.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.dns +package dorkbox.kloudflare.api.dns import com.squareup.moshi.Json diff --git a/src/dorkbox/api/dns/RecordType.kt b/src/dorkbox/kloudflare/api/dns/RecordType.kt similarity index 95% rename from src/dorkbox/api/dns/RecordType.kt rename to src/dorkbox/kloudflare/api/dns/RecordType.kt index 8da189c..3026767 100644 --- a/src/dorkbox/api/dns/RecordType.kt +++ b/src/dorkbox/kloudflare/api/dns/RecordType.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.dns +package dorkbox.kloudflare.api.dns enum class RecordType { A, AAAA, CNAME, TXT, SRV, LOC, MX, NS, SPF, CERT, DNSKEY, DS, NAPTR, SMIMEA, SSHFP, TLSA, URI diff --git a/src/dorkbox/kloudflare/api/dns/UpdateDnsRecord.kt b/src/dorkbox/kloudflare/api/dns/UpdateDnsRecord.kt new file mode 100644 index 0000000..a9c6400 --- /dev/null +++ b/src/dorkbox/kloudflare/api/dns/UpdateDnsRecord.kt @@ -0,0 +1,24 @@ +package dorkbox.kloudflare.api.dns + +import com.squareup.moshi.Json + +/** + * https://api.cloudflare.com/#dns-records-for-a-zone-update-dns-record + */ +class UpdateDnsRecord(dnsRecord: DnsRecord) : CreateDnsRecord(dnsRecord.zone) { + + /** + * DNS record identifier tag + */ + @field:[Json(name = "id")] + var id = dnsRecord.id + + init { + type = dnsRecord.type + name = dnsRecord.name + content = dnsRecord.content + ttl = dnsRecord.ttl + priority = 0 + proxied = dnsRecord.proxied + } +} diff --git a/src/dorkbox/api/firewall/AccessRule.kt b/src/dorkbox/kloudflare/api/firewall/AccessRule.kt similarity index 97% rename from src/dorkbox/api/firewall/AccessRule.kt rename to src/dorkbox/kloudflare/api/firewall/AccessRule.kt index 5ff9c0c..2540c9f 100644 --- a/src/dorkbox/api/firewall/AccessRule.kt +++ b/src/dorkbox/kloudflare/api/firewall/AccessRule.kt @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.firewall +package dorkbox.kloudflare.api.firewall import com.squareup.moshi.Json -import dorkbox.api.core.ISO8601 +import dorkbox.kloudflare.api.core.ISO8601 import java.time.LocalDateTime /** diff --git a/src/dorkbox/api/firewall/Configuration.kt b/src/dorkbox/kloudflare/api/firewall/Configuration.kt similarity index 97% rename from src/dorkbox/api/firewall/Configuration.kt rename to src/dorkbox/kloudflare/api/firewall/Configuration.kt index 0ebd297..0a5af84 100644 --- a/src/dorkbox/api/firewall/Configuration.kt +++ b/src/dorkbox/kloudflare/api/firewall/Configuration.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.firewall +package dorkbox.kloudflare.api.firewall import com.squareup.moshi.Json diff --git a/src/dorkbox/api/firewall/Scope.kt b/src/dorkbox/kloudflare/api/firewall/Scope.kt similarity index 97% rename from src/dorkbox/api/firewall/Scope.kt rename to src/dorkbox/kloudflare/api/firewall/Scope.kt index e48da95..e8e9752 100644 --- a/src/dorkbox/api/firewall/Scope.kt +++ b/src/dorkbox/kloudflare/api/firewall/Scope.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.firewall +package dorkbox.kloudflare.api.firewall import com.squareup.moshi.Json diff --git a/src/dorkbox/api/user/BillingHistory.kt b/src/dorkbox/kloudflare/api/user/BillingHistory.kt similarity index 94% rename from src/dorkbox/api/user/BillingHistory.kt rename to src/dorkbox/kloudflare/api/user/BillingHistory.kt index 9fd091b..f26db70 100644 --- a/src/dorkbox/api/user/BillingHistory.kt +++ b/src/dorkbox/kloudflare/api/user/BillingHistory.kt @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user +package dorkbox.kloudflare.api.user import com.squareup.moshi.Json -import dorkbox.api.core.ISO8601 -import dorkbox.api.zone.Zone +import dorkbox.kloudflare.api.core.ISO8601 +import dorkbox.kloudflare.api.zone.Zone import java.time.LocalDateTime /** diff --git a/src/dorkbox/api/user/BillingProfile.kt b/src/dorkbox/kloudflare/api/user/BillingProfile.kt similarity index 98% rename from src/dorkbox/api/user/BillingProfile.kt rename to src/dorkbox/kloudflare/api/user/BillingProfile.kt index f1e989d..36f3a58 100644 --- a/src/dorkbox/api/user/BillingProfile.kt +++ b/src/dorkbox/kloudflare/api/user/BillingProfile.kt @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user +package dorkbox.kloudflare.api.user import com.squareup.moshi.Json -import dorkbox.api.core.ISO8601 +import dorkbox.kloudflare.api.core.ISO8601 import java.time.LocalDateTime /** diff --git a/src/dorkbox/api/user/User.kt b/src/dorkbox/kloudflare/api/user/User.kt similarity index 97% rename from src/dorkbox/api/user/User.kt rename to src/dorkbox/kloudflare/api/user/User.kt index c5a0183..d41264c 100644 --- a/src/dorkbox/api/user/User.kt +++ b/src/dorkbox/kloudflare/api/user/User.kt @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user +package dorkbox.kloudflare.api.user import com.squareup.moshi.Json -import dorkbox.api.core.ISO8601 +import dorkbox.kloudflare.api.core.ISO8601 import java.time.LocalDateTime /** diff --git a/src/dorkbox/api/user/UserOrganization.kt b/src/dorkbox/kloudflare/api/user/UserOrganization.kt similarity index 97% rename from src/dorkbox/api/user/UserOrganization.kt rename to src/dorkbox/kloudflare/api/user/UserOrganization.kt index 8cde6c0..ef148a4 100644 --- a/src/dorkbox/api/user/UserOrganization.kt +++ b/src/dorkbox/kloudflare/api/user/UserOrganization.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user +package dorkbox.kloudflare.api.user import com.squareup.moshi.Json diff --git a/src/dorkbox/api/user/invite/Invite.kt b/src/dorkbox/kloudflare/api/user/invite/Invite.kt similarity index 96% rename from src/dorkbox/api/user/invite/Invite.kt rename to src/dorkbox/kloudflare/api/user/invite/Invite.kt index 811f073..5201ad3 100644 --- a/src/dorkbox/api/user/invite/Invite.kt +++ b/src/dorkbox/kloudflare/api/user/invite/Invite.kt @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user.invite +package dorkbox.kloudflare.api.user.invite import com.squareup.moshi.Json -import dorkbox.api.core.ISO8601 +import dorkbox.kloudflare.api.core.ISO8601 import java.time.LocalDateTime /** diff --git a/src/dorkbox/api/user/invite/Role.kt b/src/dorkbox/kloudflare/api/user/invite/Role.kt similarity index 96% rename from src/dorkbox/api/user/invite/Role.kt rename to src/dorkbox/kloudflare/api/user/invite/Role.kt index b21f4f9..49f21fa 100644 --- a/src/dorkbox/api/user/invite/Role.kt +++ b/src/dorkbox/kloudflare/api/user/invite/Role.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user.invite +package dorkbox.kloudflare.api.user.invite import com.squareup.moshi.Json diff --git a/src/dorkbox/api/user/subscription/App.kt b/src/dorkbox/kloudflare/api/user/subscription/App.kt similarity index 93% rename from src/dorkbox/api/user/subscription/App.kt rename to src/dorkbox/kloudflare/api/user/subscription/App.kt index 5c1d003..a0f584d 100644 --- a/src/dorkbox/api/user/subscription/App.kt +++ b/src/dorkbox/kloudflare/api/user/subscription/App.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user.subscription +package dorkbox.kloudflare.api.user.subscription import com.squareup.moshi.Json diff --git a/src/dorkbox/api/user/subscription/ComponentValue.kt b/src/dorkbox/kloudflare/api/user/subscription/ComponentValue.kt similarity index 95% rename from src/dorkbox/api/user/subscription/ComponentValue.kt rename to src/dorkbox/kloudflare/api/user/subscription/ComponentValue.kt index 2297a4e..947cbb0 100644 --- a/src/dorkbox/api/user/subscription/ComponentValue.kt +++ b/src/dorkbox/kloudflare/api/user/subscription/ComponentValue.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user.subscription +package dorkbox.kloudflare.api.user.subscription import com.squareup.moshi.Json diff --git a/src/dorkbox/api/user/subscription/RatePlan.kt b/src/dorkbox/kloudflare/api/user/subscription/RatePlan.kt similarity index 97% rename from src/dorkbox/api/user/subscription/RatePlan.kt rename to src/dorkbox/kloudflare/api/user/subscription/RatePlan.kt index ea16a93..f4399b3 100644 --- a/src/dorkbox/api/user/subscription/RatePlan.kt +++ b/src/dorkbox/kloudflare/api/user/subscription/RatePlan.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user.subscription +package dorkbox.kloudflare.api.user.subscription import com.squareup.moshi.Json diff --git a/src/dorkbox/api/user/subscription/Subscription.kt b/src/dorkbox/kloudflare/api/user/subscription/Subscription.kt similarity index 95% rename from src/dorkbox/api/user/subscription/Subscription.kt rename to src/dorkbox/kloudflare/api/user/subscription/Subscription.kt index 69a69df..68c72ba 100644 --- a/src/dorkbox/api/user/subscription/Subscription.kt +++ b/src/dorkbox/kloudflare/api/user/subscription/Subscription.kt @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.user.subscription +package dorkbox.kloudflare.api.user.subscription import com.squareup.moshi.Json -import dorkbox.api.core.ISO8601 -import dorkbox.api.zone.Zone +import dorkbox.kloudflare.api.core.ISO8601 +import dorkbox.kloudflare.api.zone.Zone import java.time.LocalDateTime /** diff --git a/src/dorkbox/api/zone/Account.kt b/src/dorkbox/kloudflare/api/zone/Account.kt similarity index 96% rename from src/dorkbox/api/zone/Account.kt rename to src/dorkbox/kloudflare/api/zone/Account.kt index 11842de..6e9bcc3 100644 --- a/src/dorkbox/api/zone/Account.kt +++ b/src/dorkbox/kloudflare/api/zone/Account.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone +package dorkbox.kloudflare.api.zone import com.squareup.moshi.Json diff --git a/src/dorkbox/api/zone/Component.kt b/src/dorkbox/kloudflare/api/zone/Component.kt similarity index 97% rename from src/dorkbox/api/zone/Component.kt rename to src/dorkbox/kloudflare/api/zone/Component.kt index c7154a9..d179470 100644 --- a/src/dorkbox/api/zone/Component.kt +++ b/src/dorkbox/kloudflare/api/zone/Component.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone +package dorkbox.kloudflare.api.zone import com.squareup.moshi.Json diff --git a/src/dorkbox/api/zone/Owner.kt b/src/dorkbox/kloudflare/api/zone/Owner.kt similarity index 96% rename from src/dorkbox/api/zone/Owner.kt rename to src/dorkbox/kloudflare/api/zone/Owner.kt index 455e7a9..8ac77eb 100644 --- a/src/dorkbox/api/zone/Owner.kt +++ b/src/dorkbox/kloudflare/api/zone/Owner.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone +package dorkbox.kloudflare.api.zone import com.squareup.moshi.Json diff --git a/src/dorkbox/api/zone/Plan.kt b/src/dorkbox/kloudflare/api/zone/Plan.kt similarity index 98% rename from src/dorkbox/api/zone/Plan.kt rename to src/dorkbox/kloudflare/api/zone/Plan.kt index 352de34..6091b42 100644 --- a/src/dorkbox/api/zone/Plan.kt +++ b/src/dorkbox/kloudflare/api/zone/Plan.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone +package dorkbox.kloudflare.api.zone import com.squareup.moshi.Json diff --git a/src/dorkbox/api/zone/PlanPending.kt b/src/dorkbox/kloudflare/api/zone/PlanPending.kt similarity index 98% rename from src/dorkbox/api/zone/PlanPending.kt rename to src/dorkbox/kloudflare/api/zone/PlanPending.kt index 78081c0..b0e502e 100644 --- a/src/dorkbox/api/zone/PlanPending.kt +++ b/src/dorkbox/kloudflare/api/zone/PlanPending.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone +package dorkbox.kloudflare.api.zone import com.squareup.moshi.Json diff --git a/src/dorkbox/api/zone/RatePlan.kt b/src/dorkbox/kloudflare/api/zone/RatePlan.kt similarity index 97% rename from src/dorkbox/api/zone/RatePlan.kt rename to src/dorkbox/kloudflare/api/zone/RatePlan.kt index 98b04a9..80f8709 100644 --- a/src/dorkbox/api/zone/RatePlan.kt +++ b/src/dorkbox/kloudflare/api/zone/RatePlan.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone +package dorkbox.kloudflare.api.zone import com.squareup.moshi.Json diff --git a/src/dorkbox/api/zone/Zone.kt b/src/dorkbox/kloudflare/api/zone/Zone.kt similarity index 88% rename from src/dorkbox/api/zone/Zone.kt rename to src/dorkbox/kloudflare/api/zone/Zone.kt index c32af18..60aee81 100644 --- a/src/dorkbox/api/zone/Zone.kt +++ b/src/dorkbox/kloudflare/api/zone/Zone.kt @@ -13,10 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone +package dorkbox.kloudflare.api.zone import com.squareup.moshi.Json -import dorkbox.api.core.ISO8601 +import dorkbox.kloudflare.Kloudflare +import dorkbox.kloudflare.api.core.ISO8601 +import dorkbox.kloudflare.api.dns.DnsRecord import java.time.LocalDateTime /** @@ -24,6 +26,22 @@ import java.time.LocalDateTime */ class Zone { + /** + * NOTE: This is not part of the Cloudflare API + */ + @Transient + lateinit var kloudflare: Kloudflare + + /** + * NOTE: This is not part of the Cloudflare API + * + * DNS records that were retrieved from this zone. + */ + @delegate:Transient + val dnsRecords: List by lazy { kloudflare.listDnsRecords(this) } + + + @field:[Json(name = "id")] val id: String = "" @@ -81,7 +99,6 @@ class Zone { @field:[Json(name = "owner")] val owner = Owner() - /** * Information about the account the zone belongs to */ @@ -119,7 +136,6 @@ class Zone { @field:[Json(name = "activated_on") ISO8601] val activatedOn: LocalDateTime? = null - /** * Indicates if the zone is only using Cloudflare DNS services. A true value means the zone will not receive security or performance benefits. */ diff --git a/src/dorkbox/api/zone/settings/MinifyAssetsSetting.kt b/src/dorkbox/kloudflare/api/zone/settings/MinifyAssetsSetting.kt similarity index 96% rename from src/dorkbox/api/zone/settings/MinifyAssetsSetting.kt rename to src/dorkbox/kloudflare/api/zone/settings/MinifyAssetsSetting.kt index 7732f7d..869f4f4 100644 --- a/src/dorkbox/api/zone/settings/MinifyAssetsSetting.kt +++ b/src/dorkbox/kloudflare/api/zone/settings/MinifyAssetsSetting.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone.settings +package dorkbox.kloudflare.api.zone.settings import com.squareup.moshi.Json diff --git a/src/dorkbox/api/zone/settings/MobileRedirectSetting.kt b/src/dorkbox/kloudflare/api/zone/settings/MobileRedirectSetting.kt similarity index 96% rename from src/dorkbox/api/zone/settings/MobileRedirectSetting.kt rename to src/dorkbox/kloudflare/api/zone/settings/MobileRedirectSetting.kt index 90fdbe8..deefe16 100644 --- a/src/dorkbox/api/zone/settings/MobileRedirectSetting.kt +++ b/src/dorkbox/kloudflare/api/zone/settings/MobileRedirectSetting.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone.settings +package dorkbox.kloudflare.api.zone.settings import com.squareup.moshi.Json diff --git a/src/dorkbox/api/zone/settings/SecurityHeadingSetting.kt b/src/dorkbox/kloudflare/api/zone/settings/SecurityHeadingSetting.kt similarity index 96% rename from src/dorkbox/api/zone/settings/SecurityHeadingSetting.kt rename to src/dorkbox/kloudflare/api/zone/settings/SecurityHeadingSetting.kt index 31d4a79..bd71e51 100644 --- a/src/dorkbox/api/zone/settings/SecurityHeadingSetting.kt +++ b/src/dorkbox/kloudflare/api/zone/settings/SecurityHeadingSetting.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone.settings +package dorkbox.kloudflare.api.zone.settings import com.squareup.moshi.Json diff --git a/src/dorkbox/api/zone/settings/ZoneSetting.kt b/src/dorkbox/kloudflare/api/zone/settings/ZoneSetting.kt similarity index 99% rename from src/dorkbox/api/zone/settings/ZoneSetting.kt rename to src/dorkbox/kloudflare/api/zone/settings/ZoneSetting.kt index eee1a8b..0d46be6 100644 --- a/src/dorkbox/api/zone/settings/ZoneSetting.kt +++ b/src/dorkbox/kloudflare/api/zone/settings/ZoneSetting.kt @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dorkbox.api.zone.settings +package dorkbox.kloudflare.api.zone.settings import com.squareup.moshi.Json -import dorkbox.api.core.ISO8601 +import dorkbox.kloudflare.api.core.ISO8601 import java.time.LocalDateTime /**