mirror of
https://github.com/google/nomulus
synced 2026-01-04 04:04:22 +00:00
609 lines
21 KiB
JSON
609 lines
21 KiB
JSON
{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"version": "1.0.0",
|
|
"title": "Console API",
|
|
"description": "API for managing registrars, user data, registry locks, domain lists, users, and contact settings."
|
|
},
|
|
"basePath": "/console-api",
|
|
"schemes": [
|
|
"https"
|
|
],
|
|
"paths": {
|
|
"/registrars": {
|
|
"get": {
|
|
"summary": "Retrieve a list of registrars",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful retrieval of registrars.",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Registrar"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/userdata": {
|
|
"get": {
|
|
"summary": "Retrieve user data",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful retrieval of user data.",
|
|
"schema": {
|
|
"$ref": "#/definitions/UserData"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/registry-lock": {
|
|
"get": {
|
|
"summary": "Retrieve registry lock information",
|
|
"parameters": [
|
|
{
|
|
"name": "registrarId",
|
|
"in": "query",
|
|
"description": "Unique identifier for the registrar.",
|
|
"required": true,
|
|
"type": "string"
|
|
}
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful retrieval of registry lock information.",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/RegistryLock"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/domain-list": {
|
|
"get": {
|
|
"summary": "Retrieve a list of domains",
|
|
"parameters": [
|
|
{
|
|
"name": "registrarId",
|
|
"in": "query",
|
|
"description": "Unique identifier for the registrar.",
|
|
"required": true,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "resultsPerPage",
|
|
"in": "query",
|
|
"description": "Number of results per page.",
|
|
"required": true,
|
|
"type": "integer"
|
|
}
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful retrieval of domain list.",
|
|
"schema": {
|
|
"$ref": "#/definitions/DomainList"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/users": {
|
|
"get": {
|
|
"summary": "Retrieve a list of users",
|
|
"parameters": [
|
|
{
|
|
"name": "registrarId",
|
|
"in": "query",
|
|
"description": "Unique identifier for the registrar.",
|
|
"required": true,
|
|
"type": "string"
|
|
}
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful retrieval of users.",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/User"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/settings/contacts": {
|
|
"get": {
|
|
"summary": "Retrieve contact settings",
|
|
"parameters": [
|
|
{
|
|
"name": "registrarId",
|
|
"in": "query",
|
|
"description": "Unique identifier for the registrar.",
|
|
"required": true,
|
|
"type": "string"
|
|
}
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful retrieval of contact settings.",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/ContactSetting"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"summary": "Update contact settings",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"description": "Contact settings to update.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/ContactSetting"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Contact settings updated successfully."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/settings/whois-fields": {
|
|
"post": {
|
|
"summary": "Update WHOIS fields",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"description": "WHOIS fields to update.",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/Registrar"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "WHOIS fields updated successfully."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"Registrar": {
|
|
"type": "object",
|
|
"properties": {
|
|
"registrarId": {
|
|
"type": "string",
|
|
"description": "Unique identifier for the registrar."
|
|
},
|
|
"registrarName": {
|
|
"type": "string",
|
|
"description": "Name of the registrar."
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Type of registrar (e.g., OTE, REAL)."
|
|
},
|
|
"allowedTlds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "List of allowed Top-Level Domains."
|
|
},
|
|
"ipAddressAllowList": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "List of allowed IP addresses."
|
|
},
|
|
"localizedAddress": {
|
|
"type": "object",
|
|
"properties": {
|
|
"street": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Street address."
|
|
},
|
|
"city": {
|
|
"type": "string",
|
|
"description": "City."
|
|
},
|
|
"state": {
|
|
"type": "string",
|
|
"description": "State."
|
|
},
|
|
"zip": {
|
|
"type": "string",
|
|
"description": "Zip code."
|
|
},
|
|
"countryCode": {
|
|
"type": "string",
|
|
"description": "Country code."
|
|
}
|
|
},
|
|
"required": [
|
|
"street",
|
|
"city",
|
|
"state",
|
|
"zip",
|
|
"countryCode"
|
|
]
|
|
},
|
|
"phoneNumber": {
|
|
"type": "string",
|
|
"description": "Phone number."
|
|
},
|
|
"faxNumber": {
|
|
"type": "string",
|
|
"description": "Fax number."
|
|
},
|
|
"emailAddress": {
|
|
"type": "string",
|
|
"description": "Email address."
|
|
},
|
|
"icannReferralEmail": {
|
|
"type": "string",
|
|
"description": "ICANN referral email address."
|
|
},
|
|
"registryLockAllowed": {
|
|
"type": "boolean",
|
|
"description": "Whether registry lock is allowed."
|
|
},
|
|
"clientCertificate": {
|
|
"type": "string",
|
|
"description": "Client certificate (if applicable)."
|
|
},
|
|
"failoverClientCertificate": {
|
|
"type": "string",
|
|
"description": "Failover client certificate (if applicable)."
|
|
},
|
|
"whoisServer": {
|
|
"type": "string",
|
|
"description": "WHOIS server (if applicable)."
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"description": "URL (if applicable)."
|
|
},
|
|
"ianaIdentifier": {
|
|
"type": "integer",
|
|
"description": "IANA identifier (if applicable)."
|
|
},
|
|
"billingAccountMap": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "Mapping of billing accounts."
|
|
},
|
|
"driveFolderId": {
|
|
"type": "string",
|
|
"description": "Google Drive folder ID (if applicable)."
|
|
}
|
|
},
|
|
"required": [
|
|
"registrarId",
|
|
"registrarName",
|
|
"type",
|
|
"allowedTlds",
|
|
"localizedAddress",
|
|
"emailAddress",
|
|
"icannReferralEmail",
|
|
"registryLockAllowed"
|
|
]
|
|
},
|
|
"UserData": {
|
|
"type": "object",
|
|
"properties": {
|
|
"userRoles": {
|
|
"type": "object",
|
|
"description": "User roles (currently empty)."
|
|
},
|
|
"supportEmail": {
|
|
"type": "string",
|
|
"description": "Support email address."
|
|
},
|
|
"supportPhoneNumber": {
|
|
"type": "string",
|
|
"description": "Support phone number."
|
|
},
|
|
"globalRole": {
|
|
"type": "string",
|
|
"description": "Global role of the user."
|
|
},
|
|
"isAdmin": {
|
|
"type": "boolean",
|
|
"description": "Whether the user is an admin."
|
|
},
|
|
"productName": {
|
|
"type": "string",
|
|
"description": "Name of the product."
|
|
},
|
|
"technicalDocsUrl": {
|
|
"type": "string",
|
|
"description": "URL for technical documentation."
|
|
}
|
|
}
|
|
},
|
|
"RegistryLock": {
|
|
"type": "object",
|
|
"properties": {
|
|
"domainName": {
|
|
"type": "string",
|
|
"description": "Name of the domain."
|
|
},
|
|
"registrarPocId": {
|
|
"type": "string",
|
|
"description": "Registrar point of contact ID."
|
|
},
|
|
"lockRequestTime": {
|
|
"type": "object",
|
|
"properties": {
|
|
"creationTime": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Time of lock request."
|
|
}
|
|
}
|
|
},
|
|
"unlockRequestTime": {
|
|
"type": "null",
|
|
"description": "Time of unlock request (null if not requested)."
|
|
},
|
|
"lockCompletionTime": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Time of lock completion."
|
|
},
|
|
"unlockCompletionTime": {
|
|
"type": "null",
|
|
"description": "Time of unlock completion (null if not completed)."
|
|
},
|
|
"isSuperuser": {
|
|
"type": "boolean",
|
|
"description": "Whether the user is a superuser."
|
|
}
|
|
}
|
|
},
|
|
"DomainList": {
|
|
"type": "object",
|
|
"properties": {
|
|
"domains": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Domain"
|
|
},
|
|
"description": "List of domains."
|
|
},
|
|
"checkpointTime": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Checkpoint time for the domain list."
|
|
},
|
|
"totalResults": {
|
|
"type": "integer",
|
|
"description": "Total number of results."
|
|
}
|
|
}
|
|
},
|
|
"Domain": {
|
|
"type": "object",
|
|
"properties": {
|
|
"domainName": {
|
|
"type": "string",
|
|
"description": "Name of the domain."
|
|
},
|
|
"adminContact": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Key for the admin contact."
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"description": "Kind of admin contact."
|
|
}
|
|
}
|
|
},
|
|
"techContact": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Key for the tech contact."
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"description": "Kind of tech contact."
|
|
}
|
|
}
|
|
},
|
|
"registrantContact": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Key for the registrant contact."
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"description": "Kind of registrant contact."
|
|
}
|
|
}
|
|
},
|
|
"registrationExpirationTime": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Expiration time for domain registration."
|
|
},
|
|
"lastTransferTime": {
|
|
"type": "null",
|
|
"description": "Time of last transfer (null if not transferred)."
|
|
},
|
|
"repoId": {
|
|
"type": "string",
|
|
"description": "Repository ID."
|
|
},
|
|
"currentSponsorRegistrarId": {
|
|
"type": "string",
|
|
"description": "Current sponsor registrar ID."
|
|
},
|
|
"creationRegistrarId": {
|
|
"type": "string",
|
|
"description": "Creation registrar ID."
|
|
},
|
|
"lastEppUpdateRegistrarId": {
|
|
"type": "string",
|
|
"description": "Last EPP update registrar ID."
|
|
},
|
|
"creationTime": {
|
|
"type": "object",
|
|
"properties": {
|
|
"creationTime": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Creation time."
|
|
}
|
|
}
|
|
},
|
|
"lastEppUpdateTime": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Last EPP update time."
|
|
},
|
|
"statuses": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Domain statuses."
|
|
},
|
|
"nsHosts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Key for the name server host."
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"description": "Kind of name server host."
|
|
}
|
|
}
|
|
},
|
|
"description": "Name server hosts."
|
|
}
|
|
}
|
|
},
|
|
"User": {
|
|
"type": "object",
|
|
"properties": {
|
|
"emailAddress": {
|
|
"type": "string",
|
|
"description": "Email address of the user."
|
|
},
|
|
"role": {
|
|
"type": "string",
|
|
"description": "Role of the user."
|
|
}
|
|
}
|
|
},
|
|
"ContactSetting": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Name of the contact."
|
|
},
|
|
"emailAddress": {
|
|
"type": "string",
|
|
"description": "Email address of the contact."
|
|
},
|
|
"registrarId": {
|
|
"type": "string",
|
|
"description": "Registrar ID."
|
|
},
|
|
"phoneNumber": {
|
|
"type": "string",
|
|
"description": "Phone number of the contact."
|
|
},
|
|
"types": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Contact types."
|
|
},
|
|
"visibleInWhoisAsAdmin": {
|
|
"type": "boolean",
|
|
"description": "Whether the contact is visible in WHOIS as admin."
|
|
},
|
|
"visibleInWhoisAsTech": {
|
|
"type": "boolean",
|
|
"description": "Whether the contact is visible in WHOIS as tech."
|
|
},
|
|
"visibleInDomainWhoisAsAbuse": {
|
|
"type": "boolean",
|
|
"description": "Whether the contact is visible in domain WHOIS as abuse."
|
|
},
|
|
"userFriendlyTypes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "User-friendly contact types."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |