Interface DNSProvider

All Superinterfaces:
PluginProvider
All Known Subinterfaces:
DNSProvider

public interface DNSProvider extends PluginProvider
Any plugin for Morpheus that provides DNS Related integration points should use this for implementing DNS Related Services used throughout the orchestration process
Since:
0.15.1
  • Method Details

    • createRecord

      ServiceResponse createRecord(AccountIntegration integration, NetworkDomainRecord record, Map opts)
      Creates a manually allocated DNS Record of the specified record type on the passed NetworkDomainRecord object. This is typically called outside of automation and is a manual method for administration purposes.
      Parameters:
      integration - The DNS Integration record which contains things like connectivity info to the DNS Provider
      record - The domain record that is being requested for creation. All the metadata needed to create teh record should exist here.
      opts - any additional options that may be used in the future to configure behavior. Currently unused
      Returns:
      a ServiceResponse with the success/error state of the create operation as well as the modified record.
    • deleteRecord

      ServiceResponse deleteRecord(AccountIntegration integration, NetworkDomainRecord record, Map opts)
      Deletes a Zone Record that is specified on the Morpheus side with the target integration endpoint. This could be any record type within the specified integration and the authoritative zone object should be associated with the NetworkDomainRecord parameter.
      Parameters:
      integration - The DNS Integration record which contains things like connectivity info to the DNS Provider
      record - The zone record object to be deleted on the target integration.
      opts - opts any additional options that may be used in the future to configure behavior. Currently unused
      Returns:
      the ServiceResponse with the success/error of the delete operation.
    • getIntegrationOptionTypes

      List<OptionType> getIntegrationOptionTypes()
      Provide custom configuration options when creating a new AccountIntegration
      Returns:
      a List of OptionType
    • getIcon

      Icon getIcon()
      Returns the DNS Integration logo for display when a user needs to view or add this integration
      Returns:
      Icon representation of assets stored in the src/assets of the project.
      Since:
      0.12.3
    • refresh

      void refresh(AccountIntegration integration)
      Periodically called to refresh and sync data coming from the relevant integration. Most integration providers provide a method like this that is called periodically (typically 5 - 10 minutes). DNS Sync operates on a 10min cycle by default. Useful for caching DNS Records created outside of Morpheus. NOTE: This method is unused when paired with a DNS Provider so simply return null
      Parameters:
      integration - The Integration Object contains all the saved information regarding configuration of the DNS Provider.
    • verifyAccountIntegration

      ServiceResponse verifyAccountIntegration(AccountIntegration integration, Map opts)
      Validation Method used to validate all inputs applied to the integration of an DNS Provider upon save. If an input fails validation or authentication information cannot be verified, Error messages should be returned via a ServiceResponse object where the key on the error is the field name and the value is the error message. If the error is a generic authentication error or unknown error, a standard message can also be sent back in the response. NOTE: This is unused when paired with an IPAMProvider interface
      Parameters:
      integration - The Integration Object contains all the saved information regarding configuration of the DNS Provider.
      opts - any custom payload submission options may exist here
      Returns:
      A response is returned depending on if the inputs are valid or not.