All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vinyldns.java.VinylDNSClient Maven / Gradle / Ivy

/**
 * Copyright 2018 Comcast Cable Communications Management, LLC
 *
 * 

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of the License at * *

http://www.apache.org/licenses/LICENSE-2.0 * *

Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ package io.vinyldns.java; import io.vinyldns.java.model.batch.BatchResponse; import io.vinyldns.java.model.batch.CreateBatchRequest; import io.vinyldns.java.model.batch.ListBatchChangesRequest; import io.vinyldns.java.model.batch.ListBatchChangesResponse; import io.vinyldns.java.model.record.set.CreateRecordSetRequest; import io.vinyldns.java.model.record.set.DeleteRecordSetRequest; import io.vinyldns.java.model.record.set.ListRecordSetsRequest; import io.vinyldns.java.model.record.set.ListRecordSetsResponse; import io.vinyldns.java.model.record.set.RecordSetChange; import io.vinyldns.java.model.zone.GetZoneRequest; import io.vinyldns.java.model.zone.ListZonesRequest; import io.vinyldns.java.model.zone.ListZonesResponse; import io.vinyldns.java.model.zone.Zone; import io.vinyldns.java.responses.VinylDNSFailureResponse; import io.vinyldns.java.responses.VinylDNSResponse; import io.vinyldns.java.responses.VinylDNSSuccessResponse; public interface VinylDNSClient { // Zone /** * Retrieves the list of zones a user has access to. The zone name is only sorted alphabetically. * * @param request See {@link ListZonesRequest ListZonesRequest Model} * @return {@link VinylDNSSuccessResponse VinylDNSSuccessResponse<ListZonesResponse>} in * case of success and {@link VinylDNSFailureResponse * VinylDNSFailureResponse<ListZonesResponse>} in case of failure */ VinylDNSResponse listZones(ListZonesRequest request); // ToDo: Create Zone // ToDo: Get Zone // ToDo: Delete Zone // ToDo: Update Zone // ToDo: List Zone Changes // ToDo: Sync Zone /** * Retrieves zone by ID. * * @param request See {@link GetZoneRequest GetZoneRequest Model} * @return {@link VinylDNSSuccessResponse VinylDNSSuccessResponse<ListZonesResponse>} in * case of success and {@link VinylDNSFailureResponse * VinylDNSFailureResponse<ListZonesResponse>} in case of failure */ VinylDNSResponse getZone(GetZoneRequest request); // RecordSet /** * Retrieves a list of RecordSets from the zone * * @param request See {@link ListRecordSetsRequest ListRecordSetsRequest Model} * @return {@link VinylDNSSuccessResponse VinylDNSSuccessResponse<ListRecordSetsResponse>} * in case of success and {@link VinylDNSFailureResponse * VinylDNSFailureResponse<ListRecordSetsResponse>} in case of failure */ VinylDNSResponse listRecordSets(ListRecordSetsRequest request); /** * Creates a RecordSet in a specified zone * * @param request See {@link CreateRecordSetRequest CreateRecordSetRequest Model} * @return {@link VinylDNSSuccessResponse VinylDNSSuccessResponse<RecordSetChange>} in case * of success and {@link VinylDNSFailureResponse * VinylDNSFailureResponse<RecordSetChange>} in case of failure */ VinylDNSResponse createRecordSet(CreateRecordSetRequest request); /** * Delete a RecordSet in a specified zone * * @param request See {@link DeleteRecordSetRequest DeleteRecordSetRequest Model} * @return {@link VinylDNSSuccessResponse VinylDNSSuccessResponse<RecordSetChange>} in case * of success and {@link VinylDNSFailureResponse * VinylDNSFailureResponse<RecordSetChange>} in case of failure */ VinylDNSResponse deleteRecordSet(DeleteRecordSetRequest request); // ToDo: List RecordSet Changes // ToDo: Get RecordSet // ToDo: Update RecordSet // ToDo: Get RecordSet Change // Batch /** * Retrieves the most recent 100 batch changes created by the user. This call will return a subset * of the full information in each change, as detailed in the attributes section. * * @param request See {@link ListBatchChangesRequest ListBatchChangesRequest Model} * @return {@link VinylDNSSuccessResponse VinylDNSSuccessResponse<ListBatchChangesResponse>} * in case of success and {@link VinylDNSFailureResponse * VinylDNSFailureResponse<ListBatchChangesResponse>} in case of failure */ VinylDNSResponse listBatchChanges(ListBatchChangesRequest request); /** * Retrieves a batch change given the batch change ID. Only the user who created a batch change * will have access to get it. * * @param id Unique identifier assigned to each created batch change. * @return {@link VinylDNSSuccessResponse VinylDNSSuccessResponse<BatchResponse>} in case of * success and {@link VinylDNSFailureResponse VinylDNSFailureResponse<BatchResponse>} in * case of failure */ VinylDNSResponse getBatchChanges(String id); /** * Creates a batch change with SingleAddChanges and/or SingleDeleteChanges across different zones. * A delete and add of the same record will be treated as an update on that record set. Regardless * of the input order in the batch change, all deletes for the same recordset will be logically * applied before the adds. Current supported record types for creating a batch change are: A, * AAAA, CNAME, and PTR. A batch must contain at least one change and no more than 20 changes. * * @param request See {@link CreateBatchRequest CreateBatchRequest Model} * @return {@link VinylDNSSuccessResponse VinylDNSSuccessResponse<BatchResponse>} in case of * success and {@link VinylDNSFailureResponse VinylDNSFailureResponse<BatchResponse>} in * case of failure */ VinylDNSResponse createBatchChanges(CreateBatchRequest request); // ToDo: Membership: // ToDo: List Group Activity // ToDo: List Group Members // ToDo: List Group Admins // ToDo: List Groups // ToDo: Get Group // ToDo: Delete Group // ToDo: Update Group // ToDo: Create Group }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy