acme_dnsapi_admtools/dns_admtools.sh
Ivor Barhansky 8bb9b508af wip
2022-09-27 11:03:30 +03:00

87 lines
2.6 KiB
Bash

#!/usr/bin/env sh
## DNSAPI for Acme.sh to work with Ukraine.com.ua (Adm.Tools) API.
## Author: Ivor 'lopar' Barhansky <me@lopar.space>
##
## API Authorization works using Bearer token.
## Required variable:
## AT_TOKEN="t8zpe56g8kj8qy8etx6vgo6hokycdrwgw34hufounf97uv4mvo5d8vpy5zpqnw73"
# https://github.com/acmesh-official/acme.sh/wiki/DNS-API-Dev-Guide
# https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/dns_bunny.sh
# postman
######## Public functions #####################
## Create the text record for validation.
## Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_ukrainecomua_add() {
fulldomain=$1
txtvalue=$2
AT_TOKEN="${AT_TOKEN:-$(_readaccountconf_mutable AT_TOKEN)}"
if [ -z "$AT_TOKEN" ]; then
AT_TOKEN=""
_err "You don't specify Adm.Tools API token yet."
_err "How to get Api Token: https://www.ukraine.com.ua/wiki/account/api/"
return 1
fi
_info "Adm.Tools (Ukraine.com.ua) dns validation - add txt record"
_debug fulldomain "$fulldomain"
_debug txtvalue "$txtvalue"
#save the credentials to the account conf file.
_saveaccountconf_mutable AT_TOKEN "$AT_TOKEN"
#Headers
export _H1="Accept: application/json"
export _H2="Authorization: Bearer $AT_TOKEN"
export _H3="Content-Type: application/json"
POSTURL="https://adm.tools/action/dns/record_add/"
POSTBODY='{"domain_id":'$_domain_id',"type":"'TXT'","record":"'_acme-challenge'","data":"'$txtvalue'"}'
_debug POSTURL "$POSTURL"
_debug POSTBODY "$POSTBODY"
response="$(_post "$POSTBODY" "$POSTURL")"
# $post = [
# 'domain_id' => 1348160,
# 'type' => 'TXT',
# 'record' => 'qwester',
# 'priority' => 0,
# 'data' => 'honkeyt-ponkeyt',
#
}
dns_ukrainecomua_rm() {
fulldomain=$1
txtvalue=$2
AT_TOKEN="${AT_TOKEN:-$(_readaccountconf_mutable AT_TOKEN)}"
if [ -z "$AT_TOKEN" ]; then
AT_TOKEN=""
_err "You don't specify Adm.Tools API token yet."
_err "How to get Api Token: https://www.ukraine.com.ua/wiki/account/api/"
return 1
fi
_info "Adm.Tools (Ukraine.com.ua) dns validation - remove txt record"
_debug fulldomain "$fulldomain"
_debug txtvalue "$txtvalue"
#Headers
export _H1="Accept: application/json"
export _H2="Authorization: Bearer $AT_TOKEN"
export _H3="Content-Type: application/json"
POSTURL="https://adm.tools/action/dns/record_delete/"
POSTBODY='{"subdomain_id":'$_subdomain_id'}'
_debug POSTURL "$POSTURL"
_debug POSTBODY "$POSTBODY"
}
#################### Private functions below ##################################