Maestro SDK

Many projects develop their automation tools to deploy infrastructures in Cloud, and to integrate their environmetns with EPAM Orchestrator to exchange data. With a proper SDK, automation and integration become much easier and faster, and EPAM Orchestrator shares its API methods with the rest of the EPAM community to allow other projects to adapt them to their needs.

This topic contains the following sections:

Maestro Java SDK

For Java-based applications, we support Maestro Java SDK covering the entire EPAM Orchestrator functionality. The current version of the Java SDK can be found in the repository.

The SDK is updated with each Orchestrator release to include the new features, changes and improvements implemented in the released version.

Maestro Python SDK

For projects and developers working with Python, the EPAM Cloud team develops Maestro Python SDK. The development is currently in progress, and the available Python SDK now includes the following basic infrastructure management functions:

  • - Authorization (basic Orchestrator authorization and access to AWS/Azure/Google Management Console)
  • - Instance management
  • - Properties and tags management
  • - Ansible service management
  • - Instance ownership and related functions (permissions, scope of access, etc.)
  • - Volume management
  • - Network management
  • - Image management
  • - Checkpoint management
  • - Files management
  • - Keys management
  • - Quotas management
  • - Reports management
  • - Schedules management
  • - Security operations (describe Nessus templates and initiate scan)
  • - Stacks management

The current version of the Python SDK can be found in the repository. The SDK will continue to be updated with adding new functions; please follow the Orchestrator release announcements.

The same repository contains the sample of installing an "alternative" Maestro CLI using Python methods. This is an illustration of what the Python SDK can do. Follow the instructions in the README file to clone the repository, use your credentials - and try some of the basic functions of Maestro CLI in the alternative way.

The sample includes help showing the command syntax and the available command groups.

The help shows the available root commands. To get help on a particular command, request it specifying the group. For example, if you request help for the "instance" group, you will see all available instance actions:

To call a CLI command, compose it according to the instructions in help and use the same parameters as are used in the native Maestro CLI:

The response is exactly the same as in the native Maestro CLI. You can also try other operations, such as instance start or termination, display of the available instance shapes or image management.

For Developers and Contributors

The primary purpose of sharing the SDK data is its availability for use in other projects. Therefore, we encourage colleagues from other teams to use it and, most importantly, give us their feedback. This way, we will be able to improve or enhance the SDK scope in the most effective way.

We also welcome ideas and suggestions as well as contributions aimed at adapting our SDK for specific purposes. Please send your feedback, suggestions and improvement ideas to the Cloud Consulting Team.