Cloudflare API v4 in kotlin
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Robinson cccefe0c1f
Updated version
4 months ago
gradle/wrapper removed conscrypt 4 months ago
src/dorkbox/kloudflareApi Updated version 4 months ago
test/dorkbox/kloudflareApi Fixed unit tests 4 months ago
.gitignore added gitignore 4 years ago
LICENSE Removed kapt and conscrypt (not compatible with aarch64) 4 months ago
LICENSE.Apachev2 Added gradle build files 4 years ago
README.md Updated version 4 months ago
build.gradle.kts Updated version 4 months ago
gradlew removed conscrypt 4 months ago
gradlew.bat updated info 2 years ago
logback.xml added logback file 4 years ago
settings.gradle.kts Added gradle build files 4 years ago

README.md

KloudflareAPI

Dorkbox Github Gitlab Bitbucket

KloudflareAPI is an kotlin project that implements (some of) the Cloudflare v4 API, allowing one manage DNS zones and user information

Pull requests are welcome!

  • This is for cross-platform use, specifically - linux 32/64, mac 64, and windows 32/64. Java 8+
val email = "test@example.com"
val token = "ac1d3f45b51cc5d23e47aa4ac7c07b54d60f2"

val kloudflare = Kloudflare(email, token)
println(kloudflare.getUser())
        
val listZones = kloudflare.listZones()
listZones.forEach { zone ->
    println("${zone.name} : ${zone.id}")

    val dnsRecords = kloudflare.listDnsRecords(zone)
    dnsRecords.forEach { dnsRecord ->
        if (dnsRecord.type == RecordType.A || dnsRecord.type == RecordType.AAAA) {
            val domainLength = zone.name.length
            val length = dnsRecord.name.length - domainLength

            val domainName = if (length == 0) {
                "@"
            }
            else {
                // -1 because we don't want the '.'
                dnsRecord.name.subSequence(0, length - 1)
            }

            println("  $domainName ${dnsRecord.type} : ${dnsRecord.id}")

            val newDnsRecord = CreateDnsRecord(zone)
            newDnsRecord.type = RecordType.A
            newDnsRecord.name = "test"
            newDnsRecord.content = "1.2.3.4"

            val newRecord = kloudflare.createDnsRecord(newDnsRecord)
            println("Created: ${newRecord.name} -> ${newRecord.content}")
        }
    }
}

   

Maven Info

<dependencies>
    ...
    <dependency>
      <groupId>com.dorkbox</groupId>
      <artifactId>KloudflareAPI</artifactId>
      <version>2.0</version>
    </dependency>
</dependencies>

Gradle Info

dependencies {
    ...
    compile 'com.dorkbox:KloudflareAPI:1.3'
}

License

This project is © 2019 dorkbox llc, and is distributed under the terms of the Apache v2.0 License. See file "LICENSE" for further references.