Go to main content

man pages section 3: Remote Administration Daemon Module Interfaces

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

zonemgr-1 (3rad)

Name

zonemgr-1 - API for Zones administration

Synopsis

#include <rad/client/1/zonemgr.h>
cc [ flag... ] file... -lzonemgr1_client [ library... ]

interface ZoneManager
zonemgr_EvacuationResult_t * evacuationState ; (ro)

rc_err_t zonemgr_ZoneManager_create(rc_instance_t *inst,
const char *name,
const char *path,
const char *template,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_ZoneManager_delete(rc_instance_t *inst,
const char *name,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_ZoneManager_createConfig(rc_instance_t *inst,
const char *template,
rc_instance_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_ZoneManager_importConfig(rc_instance_t *inst,
boolean_t noexecute,
const char *name,
const char **configuration,
int configuration_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_ZoneManager_connectRemote(rc_instance_t *inst,
const char *uri,
const char *password,
const char *SSH_AUTH_SOCK,
rc_instance_t **result,
zonemgr_MigrationError_t **error);

rc_err_t zonemgr_ZoneManager_initEvacuate(rc_instance_t *inst,
boolean_t *isReturn,
boolean_t *allowPartial,
boolean_t *dryRun,
boolean_t *evacuateAll,
boolean_t *overwriteConfig,
zonemgr_EvacuationResult_t **result,
zonemgr_EvacuationError_t **error);

rc_err_t zonemgr_ZoneManager_evacuate(rc_instance_t *inst,
zonemgr_EvacuationResult_t **result,
zonemgr_EvacuationError_t **error);

rc_err_t zonemgr_ZoneManager_cancelEvacuate(rc_instance_t *inst,
zonemgr_EvacuationError_t **error);

typedef void (*zonemgr_ZoneManager_stateChange_cb_f)(rc_instance_t *inst,
zonemgr_StateChange_t *payload,
struct timespec ts,
void *arg);

rc_err_t zonemgr_ZoneManager_subscribe_stateChange(rc_instance_t *inst,
zonemgr_ZoneManager_stateChange_cb_f cb,
void *arg);

rc_err_t zonemgr_ZoneManager_unsubscribe_stateChange(rc_instance_t *inst,
void **arg);

typedef void (*zonemgr_ZoneManager_evacuationProgress_cb_f)(rc_instance_t *inst,
zonemgr_EvacuationProgress_t *payload,
struct timespec ts,
void *arg);

rc_err_t zonemgr_ZoneManager_subscribe_evacuationProgress(rc_instance_t *inst,
zonemgr_ZoneManager_evacuationProgress_cb_f cb,
void *arg);

rc_err_t zonemgr_ZoneManager_unsubscribe_evacuationProgress(rc_instance_t *inst,
void **arg);

interface Zone
const char ** auxstate ; (ro)
const char * brand ; (ro)
int id ; (ro)
const char * uuid ; (ro)
const char * name ; (ro)
const char * state ; (ro)

rc_err_t zonemgr_Zone_cancelConfig(rc_instance_t *inst,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_exportConfig(rc_instance_t *inst,
boolean_t *includeEdits,
boolean_t *liveMode,
boolean_t *reimport,
char **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_update(rc_instance_t *inst,
boolean_t noexecute,
const char **commands,
int commands_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_editConfig(rc_instance_t *inst,
boolean_t *liveMode,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_commitConfig(rc_instance_t *inst,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_configIsLive(rc_instance_t *inst,
boolean_t *result);

rc_err_t zonemgr_Zone_configIsStale(rc_instance_t *inst,
boolean_t *result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_addResource(rc_instance_t *inst,
zonemgr_Resource_t *resource,
zonemgr_Resource_t *scope,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_reloadConfig(rc_instance_t *inst,
boolean_t *liveMode,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_removeResources(rc_instance_t *inst,
zonemgr_Resource_t *filter,
zonemgr_Resource_t *scope,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_getResources(rc_instance_t *inst,
zonemgr_Resource_t *filter,
zonemgr_Resource_t *scope,
zonemgr_Resource_t ***result,
int *result_cnt,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_getResourceProperties(rc_instance_t *inst,
zonemgr_Resource_t *filter,
const char **properties,
int properties_count,
zonemgr_Property_t ***result,
int *result_cnt,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_setResourceProperties(rc_instance_t *inst,
zonemgr_Resource_t *filter,
zonemgr_Property_t **properties,
int properties_count,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_clearResourceProperties(rc_instance_t *inst,
zonemgr_Resource_t *filter,
const char **properties,
int properties_count,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_apply(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_attach(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_boot(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_clone(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_detach(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_halt(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_install(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_mark(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_migrate(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_move(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_rename(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_ready(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_reboot(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_savecore(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_shutdown(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_suspend(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_uninstall(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_verify(rc_instance_t *inst,
const char **options,
int options_count,
zonemgr_Result_t **result,
zonemgr_Result_t **error);

rc_err_t zonemgr_Zone_prepareForMigration(rc_instance_t *inst,
zonemgr_MigrationError_t **error);

rc_err_t zonemgr_Zone_initMigration(rc_instance_t *inst,
zonemgr_MigrationType_t type,
const rc_instance_t *conn,
const char *cipher,
boolean_t *overwriteConfig,
rc_instance_t **result,
zonemgr_MigrationError_t **error);

typedef void (*zonemgr_Zone_configChange_cb_f)(rc_instance_t *inst,
zonemgr_ConfigChange_t *payload,
struct timespec ts,
void *arg);

rc_err_t zonemgr_Zone_subscribe_configChange(rc_instance_t *inst,
zonemgr_Zone_configChange_cb_f cb,
void *arg);

rc_err_t zonemgr_Zone_unsubscribe_configChange(rc_instance_t *inst,
void **arg);

typedef void (*zonemgr_Zone_migrationProgress_cb_f)(rc_instance_t *inst,
zonemgr_MigrationProgress_t *payload,
struct timespec ts,
void *arg);

rc_err_t zonemgr_Zone_subscribe_migrationProgress(rc_instance_t *inst,
zonemgr_Zone_migrationProgress_cb_f cb,
void *arg);

rc_err_t zonemgr_Zone_unsubscribe_migrationProgress(rc_instance_t *inst,
void **arg);

interface ZoneInfo
const char * brand ; (ro)
int id ; (ro)
const char * uuid ; (ro)
const char * name ; (ro)
boolean_t isGlobal ; (ro)

interface MigrationConnection
boolean_t supportsMultipleZones ; (ro)
const char * hostname ; (ro)
boolean_t supportsSolarisZones ; (ro)
boolean_t * supportsSolaris10Zones ; (ro)

rc_err_t zonemgr_MigrationConnection_getSupportedCiphers(rc_instance_t *inst,
zonemgr_SupportedCiphers_t **result,
zonemgr_MigrationError_t **error);

interface ZoneMigration
zonemgr_MigrationState_t state ; (ro)

rc_err_t zonemgr_ZoneMigration_migrate(rc_instance_t *inst,
boolean_t *suspendAtStart,
zonemgr_MigrationAttach_t *attachOptions,
zonemgr_MigrationError_t **error);

rc_err_t zonemgr_ZoneMigration_cancel(rc_instance_t *inst,
zonemgr_MigrationError_t **error);

Enumerated Types
enum ErrorCode

typedef enum zonemgr_ErrorCode {
ZEC_NONE = 0,
ZEC_FRAMEWORK_ERROR = 1,
ZEC_SNAPSHOT_ERROR = 2,
ZEC_COMMAND_ERROR = 3,
ZEC_RESOURCE_ALREADY_EXISTS = 4,
ZEC_RESOURCE_NOT_FOUND = 5,
ZEC_RESOURCE_TOO_MANY = 6,
ZEC_RESOURCE_UNKNOWN = 7,
ZEC_ALREADY_EDITING = 8,
ZEC_INCOMPLETE_NO_CONFIG = 9,
ZEC_PROPERTY_UNKNOWN = 10,
ZEC_NOT_EDITING = 11,
ZEC_SYSTEM_ERROR = 12,
ZEC_INVALID_ARGUMENT = 13,
ZEC_INVALID_ZONE_STATE = 14,
} zonemgr_ErrorCode_t;

enum PropertyValueType

typedef enum zonemgr_PropertyValueType {
ZPVT_PROP_SIMPLE = 0,
ZPVT_PROP_LIST = 1,
ZPVT_PROP_COMPLEX = 2,
} zonemgr_PropertyValueType_t;

enum MigrationOperation

typedef enum zonemgr_MigrationOperation {
ZMO_FRAMEWORK = 0,
ZMO_CONNECT = 1,
ZMO_INIT_CRYPTO = 2,
ZMO_CONFIG_CHECK = 3,
ZMO_CONFIGURE = 4,
ZMO_ATTACH = 5,
ZMO_BOOT = 6,
ZMO_MIGRATE_INITIAL = 7,
ZMO_MIGRATE = 8,
ZMO_SUSPEND = 9,
ZMO_RESTART = 10,
ZMO_HALT = 11,
ZMO_DETACH = 12,
ZMO_UNCONFIGURE = 13,
ZMO_COMPLETE = 14,
ZMO_CANCEL = 15,
} zonemgr_MigrationOperation_t;

enum ErrorDomain

typedef enum zonemgr_ErrorDomain {
ZED_SYSTEM = 0,
ZED_ZONECFG = 1,
} zonemgr_ErrorDomain_t;

enum MigrationState

typedef enum zonemgr_MigrationState {
ZMS_NONE = 0,
ZMS_INITIALIZED = 1,
ZMS_MIGRATING = 2,
ZMS_COMPLETED = 3,
} zonemgr_MigrationState_t;

enum MigrationType

typedef enum zonemgr_MigrationType {
ZMT_LIVE = 0,
ZMT_COLD = 1,
} zonemgr_MigrationType_t;

enum MigrationUpdateOpts

typedef enum zonemgr_MigrationUpdateOpts {
ZMUO_NONE = 0,
ZMUO_MIN = 1,
ZMUO_ALL = 2,
} zonemgr_MigrationUpdateOpts_t;

enum MigrationCloneOpts

typedef enum zonemgr_MigrationCloneOpts {
ZMCO_NONE = 0,
ZMCO_FORCE = 1,
ZMCO_DENY = 2,
} zonemgr_MigrationCloneOpts_t;

enum MigrationDestroyOrphanOpt

typedef enum zonemgr_MigrationDestroyOrphanOpt {
ZMDOO_NONE = 0,
ZMDOO_DOSET = 1,
} zonemgr_MigrationDestroyOrphanOpt_t;

enum MigrationLastBootedOpt

typedef enum zonemgr_MigrationLastBootedOpt {
ZMLBO_NONE = 0,
ZMLBO_LBSET = 1,
} zonemgr_MigrationLastBootedOpt_t;

enum MigrationLastMountedOpt

typedef enum zonemgr_MigrationLastMountedOpt {
ZMLMO_NONE = 0,
ZMLMO_LMSET = 1,
} zonemgr_MigrationLastMountedOpt_t;

enum MigrationMatchedOpt

typedef enum zonemgr_MigrationMatchedOpt {
ZMMO_NONE = 0,
ZMMO_MSET = 1,
} zonemgr_MigrationMatchedOpt_t;

enum EvacuationStatus

typedef enum zonemgr_EvacuationStatus {
ZES_SUCCESS = 0,
ZES_FAIL = 1,
ZES_PARTIAL_FAIL = 2,
} zonemgr_EvacuationStatus_t;

enum EvacuationErrorCode

typedef enum zonemgr_EvacuationErrorCode {
ZEEC_FRAMEWORK = 0,
ZEEC_EVACUATION_IN_PROGRESS = 1,
ZEEC_EVACUATION_NOT_INITED = 2,
ZEEC_NO_EVACUATION_TO_RETURN = 3,
ZEEC_NO_EVACUATION_TO_CANCEL = 4,
ZEEC_EVACUATION_NOT_PERMITTED = 5,
ZEEC_NO_ZONES_TO_EVACUATE = 6,
ZEEC_EVACUATION_CANCELED = 7,
} zonemgr_EvacuationErrorCode_t;

enum MigrationMilestone

typedef enum zonemgr_MigrationMilestone {
ZMM_MIGRATE_INITIALIZING = 0,
ZMM_MIGRATE_INITIALIZATION_COMPLETE = 1,
ZMM_MIGRATE_INITIALIZATION_FAIL = 2,
ZMM_MIGRATING = 3,
ZMM_MIGRATE_COMPLETE = 4,
ZMM_MIGRATE_FAIL = 5,
ZMM_EVACUATE_INITIALIZING = 6,
ZMM_EVACUATE_INITIALIZATION_COMPLETE = 7,
ZMM_EVACUATE_INITIALIZATION_FAIL = 8,
ZMM_EVACUATING = 9,
ZMM_EVACUATE_COMPLETE = 10,
ZMM_EVACUATE_FAIL = 11,
ZMM_EVACUATE_CANCELED = 12,
} zonemgr_MigrationMilestone_t;

enum MigrationStatus

typedef enum zonemgr_MigrationStatus {
ZMS_SUCCESS = 0,
ZMS_MIGRATE_NOT_ATTEMPTED = 1,
ZMS_MIGRATION_ERROR = 2,
ZMS_SYSTEM_ERROR = 3,
ZMS_NOMEM_ERROR = 4,
ZMS_NOTFOUND_ERROR = 5,
ZMS_PRIV_ERROR = 6,
} zonemgr_MigrationStatus_t;

Structured Types
struct Result

typedef struct zonemgr_Result zonemgr_Result_t;

struct zonemgr_Result {
zonemgr_ErrorCode_t *zr_code;
char *zr_str;
char *zr_stdout;
char *zr_stderr;
};


void zonemgr_Result_free(zonemgr_Result_t *in);

struct ConfigChange

typedef struct zonemgr_ConfigChange zonemgr_ConfigChange_t;

struct zonemgr_ConfigChange {
char *zcc_zone;
};


void zonemgr_ConfigChange_free(zonemgr_ConfigChange_t *in);

struct StateChange

typedef struct zonemgr_StateChange zonemgr_StateChange_t;

struct zonemgr_StateChange {
char *zsc_zone;
char *zsc_oldstate;
char *zsc_newstate;
};


void zonemgr_StateChange_free(zonemgr_StateChange_t *in);

struct Property

typedef struct zonemgr_Property zonemgr_Property_t;

struct zonemgr_Property {
char *zp_name;
char *zp_value;
zonemgr_PropertyValueType_t *zp_type;
char **zp_listvalue;
int zp_listvalue_count;
char **zp_complexvalue;
int zp_complexvalue_count;
};


void zonemgr_Property_free(zonemgr_Property_t *in);

struct Resource

typedef struct zonemgr_Resource zonemgr_Resource_t;

struct zonemgr_Resource {
char *zr_type;
zonemgr_Property_t **zr_properties;
int zr_properties_count;
char *zr_parent;
};


void zonemgr_Resource_free(zonemgr_Resource_t *in);

struct Errno

typedef struct zonemgr_Errno zonemgr_Errno_t;

struct zonemgr_Errno {
zonemgr_ErrorDomain_t ze_domain;
int ze_errno;
};


void zonemgr_Errno_free(zonemgr_Errno_t *in);

struct MigrationError

typedef struct zonemgr_MigrationError zonemgr_MigrationError_t;

struct zonemgr_MigrationError {
zonemgr_MigrationOperation_t zme_operation;
zonemgr_Errno_t *zme_err;
char *zme_str;
};


void zonemgr_MigrationError_free(zonemgr_MigrationError_t *in);

struct MigrationAttach

typedef struct zonemgr_MigrationAttach zonemgr_MigrationAttach_t;

struct zonemgr_MigrationAttach {
zonemgr_MigrationUpdateOpts_t zma_update;
zonemgr_MigrationCloneOpts_t zma_clone;
zonemgr_MigrationDestroyOrphanOpt_t zma_destroyOrphan;
zonemgr_MigrationLastBootedOpt_t zma_lastBooted;
zonemgr_MigrationLastMountedOpt_t zma_lastMounted;
zonemgr_MigrationMatchedOpt_t zma_matched;
char *zma_zbe;
};


void zonemgr_MigrationAttach_free(zonemgr_MigrationAttach_t *in);

struct EvacuationMigrationResult

typedef struct zonemgr_EvacuationMigrationResult
zonemgr_EvacuationMigrationResult_t;

struct zonemgr_EvacuationMigrationResult {
char *zemr_zoneName;
boolean_t zemr_evacuated;
char *zemr_evacuationTarget;
zonemgr_MigrationStatus_t zemr_migrationStatus;
zonemgr_MigrationError_t *zemr_migrationError;
};


void zonemgr_EvacuationMigrationResult_free(zonemgr_EvacuationMigrationResult_t *in);

struct EvacuationResult

typedef struct zonemgr_EvacuationResult zonemgr_EvacuationResult_t;

struct zonemgr_EvacuationResult {
zonemgr_EvacuationStatus_t zer_status;
boolean_t zer_returning;
zonemgr__rad_dict_string_EvacuationMigrationResult_t *zer_migrationResults;
};


void zonemgr_EvacuationResult_free(zonemgr_EvacuationResult_t *in);

struct EvacuationError

typedef struct zonemgr_EvacuationError zonemgr_EvacuationError_t;

struct zonemgr_EvacuationError {
zonemgr_EvacuationErrorCode_t zee_code;
zonemgr_Errno_t *zee_err;
char *zee_str;
};


void zonemgr_EvacuationError_free(zonemgr_EvacuationError_t *in);

struct MigrationProgress

typedef struct zonemgr_MigrationProgress
zonemgr_MigrationProgress_t;

struct zonemgr_MigrationProgress {
char *zmp_zone;
rc_instance_t *zmp_connection;
zonemgr_MigrationOperation_t zmp_operation;
char *zmp_str;
unsigned int *zmp_percent_complete;
};


void zonemgr_MigrationProgress_free(zonemgr_MigrationProgress_t *in);

struct EvacuationProgress

typedef struct zonemgr_EvacuationProgress
zonemgr_EvacuationProgress_t;

struct zonemgr_EvacuationProgress {
char *zep_zoneName;
char *zep_remoteHost;
boolean_t zep_returning;
zonemgr_MigrationMilestone_t zep_migrationMilestone;
unsigned int zep_zoneCount;
unsigned long long *zep_transferRate;
char *zep_zoneProgress;
};


void zonemgr_EvacuationProgress_free(zonemgr_EvacuationProgress_t *in);

struct SupportedCiphers

typedef struct zonemgr_SupportedCiphers zonemgr_SupportedCiphers_t;

struct zonemgr_SupportedCiphers {
char **zsc_source;
int zsc_source_count;
char **zsc_destination;
int zsc_destination_count;
char *zsc_defaultcipher;
};


void zonemgr_SupportedCiphers_free(zonemgr_SupportedCiphers_t *in);

Dictionaries
Dictionary { string : EvacuationMigrationResult }

typedef struct base_rad_dict
zonemgr__rad_dict_string_EvacuationMigrationResult_t;

Description

ZONEMGR-1(3rad)             RAD Module Definitions             ZONEMGR-1(3rad)



NAME
       zonemgr - API for Zones administration

SYNOPSIS
       #include <rad/client/1/zonemgr.h>
       cc [ flag... ] file... -lzonemgr1_client [ library... ]

   interface ZoneManager
       zonemgr_EvacuationResult_t * evacuationState ; (ro)

       rc_err_t zonemgr_ZoneManager_create(rc_instance_t *inst,
                                           const char *name,
                                           const char *path,
                                           const char *template,
                                           zonemgr_Result_t **result,
                                           zonemgr_Result_t **error);

       rc_err_t zonemgr_ZoneManager_delete(rc_instance_t *inst,
                                           const char *name,
                                           zonemgr_Result_t **result,
                                           zonemgr_Result_t **error);

       rc_err_t zonemgr_ZoneManager_createConfig(rc_instance_t *inst,
                                                 const char *template,
                                                 rc_instance_t **result,
                                                 zonemgr_Result_t **error);

       rc_err_t zonemgr_ZoneManager_importConfig(rc_instance_t *inst,
                                                 boolean_t noexecute,
                                                 const char *name,
                                                 const char **configuration,
                                                 int configuration_count,
                                                 zonemgr_Result_t **result,
                                                 zonemgr_Result_t **error);

       rc_err_t zonemgr_ZoneManager_connectRemote(rc_instance_t *inst,
                                                  const char *uri,
                                                  const char *password,
                                                  const char *SSH_AUTH_SOCK,
                                                  rc_instance_t **result,
                                                  zonemgr_MigrationError_t **error);

       rc_err_t zonemgr_ZoneManager_initEvacuate(rc_instance_t *inst,
                                                 boolean_t *isReturn,
                                                 boolean_t *allowPartial,
                                                 boolean_t *dryRun,
                                                 boolean_t *evacuateAll,
                                                 boolean_t *overwriteConfig,
                                                 zonemgr_EvacuationResult_t **result,
                                                 zonemgr_EvacuationError_t **error);

       rc_err_t zonemgr_ZoneManager_evacuate(rc_instance_t *inst,
                                             zonemgr_EvacuationResult_t **result,
                                             zonemgr_EvacuationError_t **error);

       rc_err_t zonemgr_ZoneManager_cancelEvacuate(rc_instance_t *inst,
                                                   zonemgr_EvacuationError_t **error);

       typedef void (*zonemgr_ZoneManager_stateChange_cb_f)(rc_instance_t *inst,
                                                            zonemgr_StateChange_t *payload,
                                                            struct timespec ts,
                                                            void *arg);

       rc_err_t zonemgr_ZoneManager_subscribe_stateChange(rc_instance_t *inst,
                                                          zonemgr_ZoneManager_stateChange_cb_f cb,
                                                          void *arg);

       rc_err_t zonemgr_ZoneManager_unsubscribe_stateChange(rc_instance_t *inst,
                                                            void **arg);

       typedef void (*zonemgr_ZoneManager_evacuationProgress_cb_f)(rc_instance_t *inst,
                                                                   zonemgr_EvacuationProgress_t *payload,
                                                                   struct timespec ts,
                                                                   void *arg);

       rc_err_t zonemgr_ZoneManager_subscribe_evacuationProgress(rc_instance_t *inst,
                                                                 zonemgr_ZoneManager_evacuationProgress_cb_f cb,
                                                                 void *arg);

       rc_err_t zonemgr_ZoneManager_unsubscribe_evacuationProgress(rc_instance_t *inst,
                                                                   void **arg);

   interface Zone
       const char ** auxstate ; (ro)
       const char * brand ; (ro)
       int id ; (ro)
       const char * uuid ; (ro)
       const char * name ; (ro)
       const char * state ; (ro)

       rc_err_t zonemgr_Zone_cancelConfig(rc_instance_t *inst,
                                          zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_exportConfig(rc_instance_t *inst,
                                          boolean_t *includeEdits,
                                          boolean_t *liveMode,
                                          boolean_t *reimport,
                                          char **result,
                                          zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_update(rc_instance_t *inst,
                                    boolean_t noexecute,
                                    const char **commands,
                                    int commands_count,
                                    zonemgr_Result_t **result,
                                    zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_editConfig(rc_instance_t *inst,
                                        boolean_t *liveMode,
                                        zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_commitConfig(rc_instance_t *inst,
                                          zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_configIsLive(rc_instance_t *inst,
                                          boolean_t *result);

       rc_err_t zonemgr_Zone_configIsStale(rc_instance_t *inst,
                                           boolean_t *result,
                                           zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_addResource(rc_instance_t *inst,
                                         zonemgr_Resource_t *resource,
                                         zonemgr_Resource_t *scope,
                                         zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_reloadConfig(rc_instance_t *inst,
                                          boolean_t *liveMode,
                                          zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_removeResources(rc_instance_t *inst,
                                             zonemgr_Resource_t *filter,
                                             zonemgr_Resource_t *scope,
                                             zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_getResources(rc_instance_t *inst,
                                          zonemgr_Resource_t *filter,
                                          zonemgr_Resource_t *scope,
                                          zonemgr_Resource_t ***result,
                                          int *result_cnt,
                                          zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_getResourceProperties(rc_instance_t *inst,
                                                   zonemgr_Resource_t *filter,
                                                   const char **properties,
                                                   int properties_count,
                                                   zonemgr_Property_t ***result,
                                                   int *result_cnt,
                                                   zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_setResourceProperties(rc_instance_t *inst,
                                                   zonemgr_Resource_t *filter,
                                                   zonemgr_Property_t **properties,
                                                   int properties_count,
                                                   zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_clearResourceProperties(rc_instance_t *inst,
                                                     zonemgr_Resource_t *filter,
                                                     const char **properties,
                                                     int properties_count,
                                                     zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_apply(rc_instance_t *inst,
                                   const char **options,
                                   int options_count,
                                   zonemgr_Result_t **result,
                                   zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_attach(rc_instance_t *inst,
                                    const char **options,
                                    int options_count,
                                    zonemgr_Result_t **result,
                                    zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_boot(rc_instance_t *inst,
                                  const char **options,
                                  int options_count,
                                  zonemgr_Result_t **result,
                                  zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_clone(rc_instance_t *inst,
                                   const char **options,
                                   int options_count,
                                   zonemgr_Result_t **result,
                                   zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_detach(rc_instance_t *inst,
                                    const char **options,
                                    int options_count,
                                    zonemgr_Result_t **result,
                                    zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_halt(rc_instance_t *inst,
                                  const char **options,
                                  int options_count,
                                  zonemgr_Result_t **result,
                                  zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_install(rc_instance_t *inst,
                                     const char **options,
                                     int options_count,
                                     zonemgr_Result_t **result,
                                     zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_mark(rc_instance_t *inst,
                                  const char **options,
                                  int options_count,
                                  zonemgr_Result_t **result,
                                  zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_migrate(rc_instance_t *inst,
                                     const char **options,
                                     int options_count,
                                     zonemgr_Result_t **result,
                                     zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_move(rc_instance_t *inst,
                                  const char **options,
                                  int options_count,
                                  zonemgr_Result_t **result,
                                  zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_rename(rc_instance_t *inst,
                                    const char **options,
                                    int options_count,
                                    zonemgr_Result_t **result,
                                    zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_ready(rc_instance_t *inst,
                                   const char **options,
                                   int options_count,
                                   zonemgr_Result_t **result,
                                   zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_reboot(rc_instance_t *inst,
                                    const char **options,
                                    int options_count,
                                    zonemgr_Result_t **result,
                                    zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_savecore(rc_instance_t *inst,
                                      const char **options,
                                      int options_count,
                                      zonemgr_Result_t **result,
                                      zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_shutdown(rc_instance_t *inst,
                                      const char **options,
                                      int options_count,
                                      zonemgr_Result_t **result,
                                      zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_suspend(rc_instance_t *inst,
                                     const char **options,
                                     int options_count,
                                     zonemgr_Result_t **result,
                                     zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_uninstall(rc_instance_t *inst,
                                       const char **options,
                                       int options_count,
                                       zonemgr_Result_t **result,
                                       zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_verify(rc_instance_t *inst,
                                    const char **options,
                                    int options_count,
                                    zonemgr_Result_t **result,
                                    zonemgr_Result_t **error);

       rc_err_t zonemgr_Zone_prepareForMigration(rc_instance_t *inst,
                                                 zonemgr_MigrationError_t **error);

       rc_err_t zonemgr_Zone_initMigration(rc_instance_t *inst,
                                           zonemgr_MigrationType_t type,
                                           const rc_instance_t *conn,
                                           const char *cipher,
                                           boolean_t *overwriteConfig,
                                           rc_instance_t **result,
                                           zonemgr_MigrationError_t **error);

       typedef void (*zonemgr_Zone_configChange_cb_f)(rc_instance_t *inst,
                                                      zonemgr_ConfigChange_t *payload,
                                                      struct timespec ts,
                                                      void *arg);

       rc_err_t zonemgr_Zone_subscribe_configChange(rc_instance_t *inst,
                                                    zonemgr_Zone_configChange_cb_f cb,
                                                    void *arg);

       rc_err_t zonemgr_Zone_unsubscribe_configChange(rc_instance_t *inst,
                                                      void **arg);

       typedef void (*zonemgr_Zone_migrationProgress_cb_f)(rc_instance_t *inst,
                                                           zonemgr_MigrationProgress_t *payload,
                                                           struct timespec ts,
                                                           void *arg);

       rc_err_t zonemgr_Zone_subscribe_migrationProgress(rc_instance_t *inst,
                                                         zonemgr_Zone_migrationProgress_cb_f cb,
                                                         void *arg);

       rc_err_t zonemgr_Zone_unsubscribe_migrationProgress(rc_instance_t *inst,
                                                           void **arg);

   interface ZoneInfo
       const char * brand ; (ro)
       int id ; (ro)
       const char * uuid ; (ro)
       const char * name ; (ro)
       boolean_t isGlobal ; (ro)

   interface MigrationConnection
       boolean_t supportsMultipleZones ; (ro)
       const char * hostname ; (ro)
       boolean_t supportsSolarisZones ; (ro)
       boolean_t * supportsSolaris10Zones ; (ro)

       rc_err_t zonemgr_MigrationConnection_getSupportedCiphers(rc_instance_t *inst,
                                                                zonemgr_SupportedCiphers_t **result,
                                                                zonemgr_MigrationError_t **error);

   interface ZoneMigration
       zonemgr_MigrationState_t state ; (ro)

       rc_err_t zonemgr_ZoneMigration_migrate(rc_instance_t *inst,
                                              boolean_t *suspendAtStart,
                                              zonemgr_MigrationAttach_t *attachOptions,
                                              zonemgr_MigrationError_t **error);

       rc_err_t zonemgr_ZoneMigration_cancel(rc_instance_t *inst,
                                             zonemgr_MigrationError_t **error);

   Enumerated Types
       enum ErrorCode

           typedef enum zonemgr_ErrorCode {
                ZEC_NONE = 0,
                ZEC_FRAMEWORK_ERROR = 1,
                ZEC_SNAPSHOT_ERROR = 2,
                ZEC_COMMAND_ERROR = 3,
                ZEC_RESOURCE_ALREADY_EXISTS = 4,
                ZEC_RESOURCE_NOT_FOUND = 5,
                ZEC_RESOURCE_TOO_MANY = 6,
                ZEC_RESOURCE_UNKNOWN = 7,
                ZEC_ALREADY_EDITING = 8,
                ZEC_INCOMPLETE_NO_CONFIG = 9,
                ZEC_PROPERTY_UNKNOWN = 10,
                ZEC_NOT_EDITING = 11,
                ZEC_SYSTEM_ERROR = 12,
                ZEC_INVALID_ARGUMENT = 13,
                ZEC_INVALID_ZONE_STATE = 14,
           } zonemgr_ErrorCode_t;

       enum PropertyValueType

           typedef enum zonemgr_PropertyValueType {
                ZPVT_PROP_SIMPLE = 0,
                ZPVT_PROP_LIST = 1,
                ZPVT_PROP_COMPLEX = 2,
           } zonemgr_PropertyValueType_t;

       enum MigrationOperation

           typedef enum zonemgr_MigrationOperation {
                ZMO_FRAMEWORK = 0,
                ZMO_CONNECT = 1,
                ZMO_INIT_CRYPTO = 2,
                ZMO_CONFIG_CHECK = 3,
                ZMO_CONFIGURE = 4,
                ZMO_ATTACH = 5,
                ZMO_BOOT = 6,
                ZMO_MIGRATE_INITIAL = 7,
                ZMO_MIGRATE = 8,
                ZMO_SUSPEND = 9,
                ZMO_RESTART = 10,
                ZMO_HALT = 11,
                ZMO_DETACH = 12,
                ZMO_UNCONFIGURE = 13,
                ZMO_COMPLETE = 14,
                ZMO_CANCEL = 15,
           } zonemgr_MigrationOperation_t;

       enum ErrorDomain

           typedef enum zonemgr_ErrorDomain {
                ZED_SYSTEM = 0,
                ZED_ZONECFG = 1,
           } zonemgr_ErrorDomain_t;

       enum MigrationState

           typedef enum zonemgr_MigrationState {
                ZMS_NONE = 0,
                ZMS_INITIALIZED = 1,
                ZMS_MIGRATING = 2,
                ZMS_COMPLETED = 3,
           } zonemgr_MigrationState_t;

       enum MigrationType

           typedef enum zonemgr_MigrationType {
                ZMT_LIVE = 0,
                ZMT_COLD = 1,
           } zonemgr_MigrationType_t;

       enum MigrationUpdateOpts

           typedef enum zonemgr_MigrationUpdateOpts {
                ZMUO_NONE = 0,
                ZMUO_MIN = 1,
                ZMUO_ALL = 2,
           } zonemgr_MigrationUpdateOpts_t;

       enum MigrationCloneOpts

           typedef enum zonemgr_MigrationCloneOpts {
                ZMCO_NONE = 0,
                ZMCO_FORCE = 1,
                ZMCO_DENY = 2,
           } zonemgr_MigrationCloneOpts_t;

       enum MigrationDestroyOrphanOpt

           typedef enum zonemgr_MigrationDestroyOrphanOpt {
                ZMDOO_NONE = 0,
                ZMDOO_DOSET = 1,
           } zonemgr_MigrationDestroyOrphanOpt_t;

       enum MigrationLastBootedOpt

           typedef enum zonemgr_MigrationLastBootedOpt {
                ZMLBO_NONE = 0,
                ZMLBO_LBSET = 1,
           } zonemgr_MigrationLastBootedOpt_t;

       enum MigrationLastMountedOpt

           typedef enum zonemgr_MigrationLastMountedOpt {
                ZMLMO_NONE = 0,
                ZMLMO_LMSET = 1,
           } zonemgr_MigrationLastMountedOpt_t;

       enum MigrationMatchedOpt

           typedef enum zonemgr_MigrationMatchedOpt {
                ZMMO_NONE = 0,
                ZMMO_MSET = 1,
           } zonemgr_MigrationMatchedOpt_t;

       enum EvacuationStatus

           typedef enum zonemgr_EvacuationStatus {
                ZES_SUCCESS = 0,
                ZES_FAIL = 1,
                ZES_PARTIAL_FAIL = 2,
           } zonemgr_EvacuationStatus_t;

       enum EvacuationErrorCode

           typedef enum zonemgr_EvacuationErrorCode {
                ZEEC_FRAMEWORK = 0,
                ZEEC_EVACUATION_IN_PROGRESS = 1,
                ZEEC_EVACUATION_NOT_INITED = 2,
                ZEEC_NO_EVACUATION_TO_RETURN = 3,
                ZEEC_NO_EVACUATION_TO_CANCEL = 4,
                ZEEC_EVACUATION_NOT_PERMITTED = 5,
                ZEEC_NO_ZONES_TO_EVACUATE = 6,
                ZEEC_EVACUATION_CANCELED = 7,
           } zonemgr_EvacuationErrorCode_t;

       enum MigrationMilestone

           typedef enum zonemgr_MigrationMilestone {
                ZMM_MIGRATE_INITIALIZING = 0,
                ZMM_MIGRATE_INITIALIZATION_COMPLETE = 1,
                ZMM_MIGRATE_INITIALIZATION_FAIL = 2,
                ZMM_MIGRATING = 3,
                ZMM_MIGRATE_COMPLETE = 4,
                ZMM_MIGRATE_FAIL = 5,
                ZMM_EVACUATE_INITIALIZING = 6,
                ZMM_EVACUATE_INITIALIZATION_COMPLETE = 7,
                ZMM_EVACUATE_INITIALIZATION_FAIL = 8,
                ZMM_EVACUATING = 9,
                ZMM_EVACUATE_COMPLETE = 10,
                ZMM_EVACUATE_FAIL = 11,
                ZMM_EVACUATE_CANCELED = 12,
           } zonemgr_MigrationMilestone_t;

       enum MigrationStatus

           typedef enum zonemgr_MigrationStatus {
                ZMS_SUCCESS = 0,
                ZMS_MIGRATE_NOT_ATTEMPTED = 1,
                ZMS_MIGRATION_ERROR = 2,
                ZMS_SYSTEM_ERROR = 3,
                ZMS_NOMEM_ERROR = 4,
                ZMS_NOTFOUND_ERROR = 5,
                ZMS_PRIV_ERROR = 6,
           } zonemgr_MigrationStatus_t;

   Structured Types
       struct Result

           typedef struct zonemgr_Result zonemgr_Result_t;

           struct zonemgr_Result {
                zonemgr_ErrorCode_t *zr_code;
                char *zr_str;
                char *zr_stdout;
                char *zr_stderr;
           };


           void zonemgr_Result_free(zonemgr_Result_t *in);

       struct ConfigChange

           typedef struct zonemgr_ConfigChange zonemgr_ConfigChange_t;

           struct zonemgr_ConfigChange {
                char *zcc_zone;
           };


           void zonemgr_ConfigChange_free(zonemgr_ConfigChange_t *in);

       struct StateChange

           typedef struct zonemgr_StateChange zonemgr_StateChange_t;

           struct zonemgr_StateChange {
                char *zsc_zone;
                char *zsc_oldstate;
                char *zsc_newstate;
           };


           void zonemgr_StateChange_free(zonemgr_StateChange_t *in);

       struct Property

           typedef struct zonemgr_Property zonemgr_Property_t;

           struct zonemgr_Property {
                char *zp_name;
                char *zp_value;
                zonemgr_PropertyValueType_t *zp_type;
                char **zp_listvalue;
                int zp_listvalue_count;
                char **zp_complexvalue;
                int zp_complexvalue_count;
           };


           void zonemgr_Property_free(zonemgr_Property_t *in);

       struct Resource

           typedef struct zonemgr_Resource zonemgr_Resource_t;

           struct zonemgr_Resource {
                char *zr_type;
                zonemgr_Property_t **zr_properties;
                int zr_properties_count;
                char *zr_parent;
           };


           void zonemgr_Resource_free(zonemgr_Resource_t *in);

       struct Errno

           typedef struct zonemgr_Errno zonemgr_Errno_t;

           struct zonemgr_Errno {
                zonemgr_ErrorDomain_t ze_domain;
                int ze_errno;
           };


           void zonemgr_Errno_free(zonemgr_Errno_t *in);

       struct MigrationError

           typedef struct zonemgr_MigrationError zonemgr_MigrationError_t;

           struct zonemgr_MigrationError {
                zonemgr_MigrationOperation_t zme_operation;
                zonemgr_Errno_t *zme_err;
                char *zme_str;
           };


           void zonemgr_MigrationError_free(zonemgr_MigrationError_t *in);

       struct MigrationAttach

           typedef struct zonemgr_MigrationAttach zonemgr_MigrationAttach_t;

           struct zonemgr_MigrationAttach {
                zonemgr_MigrationUpdateOpts_t zma_update;
                zonemgr_MigrationCloneOpts_t zma_clone;
                zonemgr_MigrationDestroyOrphanOpt_t zma_destroyOrphan;
                zonemgr_MigrationLastBootedOpt_t zma_lastBooted;
                zonemgr_MigrationLastMountedOpt_t zma_lastMounted;
                zonemgr_MigrationMatchedOpt_t zma_matched;
                char *zma_zbe;
           };


           void zonemgr_MigrationAttach_free(zonemgr_MigrationAttach_t *in);

       struct EvacuationMigrationResult

           typedef struct zonemgr_EvacuationMigrationResult
           zonemgr_EvacuationMigrationResult_t;

           struct zonemgr_EvacuationMigrationResult {
                char *zemr_zoneName;
                boolean_t zemr_evacuated;
                char *zemr_evacuationTarget;
                zonemgr_MigrationStatus_t zemr_migrationStatus;
                zonemgr_MigrationError_t *zemr_migrationError;
           };


           void zonemgr_EvacuationMigrationResult_free(zonemgr_EvacuationMigrationResult_t *in);

       struct EvacuationResult

           typedef struct zonemgr_EvacuationResult zonemgr_EvacuationResult_t;

           struct zonemgr_EvacuationResult {
                zonemgr_EvacuationStatus_t zer_status;
                boolean_t zer_returning;
                zonemgr__rad_dict_string_EvacuationMigrationResult_t *zer_migrationResults;
           };


           void zonemgr_EvacuationResult_free(zonemgr_EvacuationResult_t *in);

       struct EvacuationError

           typedef struct zonemgr_EvacuationError zonemgr_EvacuationError_t;

           struct zonemgr_EvacuationError {
                zonemgr_EvacuationErrorCode_t zee_code;
                zonemgr_Errno_t *zee_err;
                char *zee_str;
           };


           void zonemgr_EvacuationError_free(zonemgr_EvacuationError_t *in);

       struct MigrationProgress

           typedef struct zonemgr_MigrationProgress
           zonemgr_MigrationProgress_t;

           struct zonemgr_MigrationProgress {
                char *zmp_zone;
                rc_instance_t *zmp_connection;
                zonemgr_MigrationOperation_t zmp_operation;
                char *zmp_str;
                unsigned int *zmp_percent_complete;
           };


           void zonemgr_MigrationProgress_free(zonemgr_MigrationProgress_t *in);

       struct EvacuationProgress

           typedef struct zonemgr_EvacuationProgress
           zonemgr_EvacuationProgress_t;

           struct zonemgr_EvacuationProgress {
                char *zep_zoneName;
                char *zep_remoteHost;
                boolean_t zep_returning;
                zonemgr_MigrationMilestone_t zep_migrationMilestone;
                unsigned int zep_zoneCount;
                unsigned long long *zep_transferRate;
                char *zep_zoneProgress;
           };


           void zonemgr_EvacuationProgress_free(zonemgr_EvacuationProgress_t *in);

       struct SupportedCiphers

           typedef struct zonemgr_SupportedCiphers zonemgr_SupportedCiphers_t;

           struct zonemgr_SupportedCiphers {
                char **zsc_source;
                int zsc_source_count;
                char **zsc_destination;
                int zsc_destination_count;
                char *zsc_defaultcipher;
           };


           void zonemgr_SupportedCiphers_free(zonemgr_SupportedCiphers_t *in);

   Dictionaries
       Dictionary { string : EvacuationMigrationResult }

           typedef struct base_rad_dict
           zonemgr__rad_dict_string_EvacuationMigrationResult_t;

DESCRIPTION
       API com.oracle.solaris.rad.zonemgr [1]

       This API provides functionality for the configuration and
       administration of Zones subsystem.

       The API provides a snapshot of the state of zones. The snapshot can be
       updated externally, either in another RAD session or by some other
       mechanism. This means that operations like commitConfig() may fail due
       to the changes introduced by other agents.

       The API detects and reports the creation and deletion of zones as well
       as configuration changes for individual zones.

       Some zones properties are accessed more frequently than others, for
       example, name. These properties are specifically exported as properties
       of the RAD interface as well as included in the list of zone
       properties.

       Three properties, id, state and auxstate, are not part of the
       configuration snapshot. These properties can vary without invalidating
       the integrity of the snapshot. These properties are documented as
       dynamic.

       The following sample Python clients illustrate some simple interactions
       with the module.

INTERFACES
   interface ZoneManager
       Manage zones on this system

       Create and delete zones. Changes in the state of zones can be monitored
       through the StateChange event.

       ZoneManager Properties
           zonemgr_EvacuationResult_t * evacuationState (read-only, nullable)
           -- The current evacuation state

               Available since version 1.4.

               rc_err_t zonemgr_ZoneManager_get_evacuationState(rc_instance_t *inst,
                                                                zonemgr_EvacuationResult_t **result,
                                                                zonemgr_EvacuationError_t **error);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

                   error

               Read Error: zonemgr_EvacuationError_t **

       ZoneManager Methods
           rc_err_t zonemgr_ZoneManager_create(rc_instance_t *inst,
                                               const char *name,
                                               const char *path,
                                               const char *template,
                                               zonemgr_Result_t **result,
                                               zonemgr_Result_t **error);

               Create a zone

               Create a zone with the given name.

               Arguments:

               inst -- RAD instance

               name

               path (nullable)

               template (nullable)

               result

               error

           rc_err_t zonemgr_ZoneManager_delete(rc_instance_t *inst,
                                               const char *name,
                                               zonemgr_Result_t **result,
                                               zonemgr_Result_t **error);

               Delete a zone

               Arguments:

               inst -- RAD instance

               name

               result

               error

           rc_err_t zonemgr_ZoneManager_createConfig(rc_instance_t *inst,
                                                     const char *template,
                                                     rc_instance_t **result,
                                                     zonemgr_Result_t **error);

               Create an ephemeral configuration

               Create a configuration for editing without a zone name. This
               can be used to build a configuration, then export it, but it
               cannot be directly saved with commitConfig().

               Arguments:

               inst -- RAD instance

               template (nullable)

               result

               error

           rc_err_t zonemgr_ZoneManager_importConfig(rc_instance_t *inst,
                                                     boolean_t noexecute,
                                                     const char *name,
                                                     const char **configuration,
                                                     int configuration_count,
                                                     zonemgr_Result_t **result,
                                                     zonemgr_Result_t **error);

               Import a zone

               The supplied configuration must be in a format that could be
               used in a zonecfg command file - e.g. output of zonecfg export.

               Arguments:

               inst -- RAD instance

               noexecute -- If true, do not execute the commands, but verify
               that they would result in a legal zone configuration.

               name

               configuration -- Command details

               configuration_count -- Number of items in configuration array

               result

               error

           rc_err_t zonemgr_ZoneManager_connectRemote(rc_instance_t *inst,
                                                      const char *uri,
                                                      const char *password,
                                                      const char *SSH_AUTH_SOCK,
                                                      rc_instance_t **result,
                                                      zonemgr_MigrationError_t **error);

               Connect to a remote host for migration purposes

               Connect to the zone migration handler on a remote host
               represented by the given RAD URI. If required, an interactive
               password can be supplied in addition to the URI. If the URI
               requires a password, but none is provided, ENOENT will be
               returned.

               If an ssh URI is used, it must be already configured in
               promptless mode (e.g. no need for host key verification).

               Available since version 1.3.

               Arguments:

               inst -- RAD instance

               uri -- The RAD URI to connect to

               password (nullable) -- The password to use if required

               SSH_AUTH_SOCK (nullable) -- SSH_AUTH_SOCK environment variable
               value to set before attempting an connection to the remote
               system. Only applies if the URI scheme is ssh.

                   Available since version 1.10.

               result

               error

           rc_err_t zonemgr_ZoneManager_initEvacuate(rc_instance_t *inst,
                                                     boolean_t *isReturn,
                                                     boolean_t *allowPartial,
                                                     boolean_t *dryRun,
                                                     boolean_t *evacuateAll,
                                                     boolean_t *overwriteConfig,
                                                     zonemgr_EvacuationResult_t **result,
                                                     zonemgr_EvacuationError_t **error);

               Initialize a zone evacuation

               Individual zone migration targets are determined by the SMF
               property "evacuation/target" for each zone's SMF instance to be
               part of an evacuation. For each zone, connect to the zone
               migration handler on a remote host represented by the
               configured RAD URI. The URI provided must allow for
               non-interactive authentication.

               If it is desired to track the progress of individual migrations
               for zones specified for evacuation, the client may subscribe to
               the MigrationProgress event for each of those zones.

               If the optional "allowPartial" argument is set to true, this
               method can still succeed even if some of the individual
               migration initializations fail.

               If an ssh URI is used, it must be already configured in
               promptless mode (e.g. no need for host key verification).

               On a failure, the error returned contains a mapping of the zone
               names to the individual initialization errors encountered.

               Available since version 1.4.

               Arguments:

               inst -- RAD instance

               isReturn (nullable) -- Initialize for a return evacuation

                   At least one zone must be evacuated, and in a state ready
                   to migrate back, for this mode to pass initialization.

               allowPartial (nullable) -- Allow initialization even if some
               zones fail

               dryRun (nullable) -- Only perform an evacuation dry run

               evacuateAll (nullable) -- Evacuate both running and non-running
               (installed) zones

                   Non-running zones are cold migrated to the destination
                   host, while running zones are still live migrated. This can
                   be useful for decommissioning a host.

               overwriteConfig (nullable) -- Overwrite configurations of all
               zones on the remote host.

               result

               error

           rc_err_t zonemgr_ZoneManager_evacuate(rc_instance_t *inst,
                                                 zonemgr_EvacuationResult_t **result,
                                                 zonemgr_EvacuationError_t **error);

               Perform a zone evacuation

               An evacuation of the zone migrations initialized in
               initEvacuate() will be performed when this method is invoked.
               This method is synchronous and will return once all migrations
               are complete (or failed).

               If initEvacuate() was called with isReturn set, then this will
               perform a return evacuation: zones previously evacuated will be
               migrated back from the destination to this source host.

               cancelEvacuate() may be called from another thread to cancel
               the evacuation in progress.

               On a failure, the error returned contains a mapping of the zone
               names to the individual migration errors encountered. It is
               possible for some migrations to fail while others succeeded.

               Available since version 1.4.

               Arguments:

               inst -- RAD instance

               result

               error

           rc_err_t zonemgr_ZoneManager_cancelEvacuate(rc_instance_t *inst,
                                                       zonemgr_EvacuationError_t **error);

               Cancel a Zone Evacuation

               Cancel a zone evacuation (or evacuation return) in any active
               state. Because evacuation methods are synchronous, this method
               needs to be called from another thread to cancel an ongoing
               initialization or evacuation.  cancelEvacuate() can also be
               called after a successful initEvacuate() to clear the
               initialized state.

               Available since version 1.4.

               Arguments:

               inst -- RAD instance

               error

       ZoneManager Retrieve
           rc_err_t zonemgr_ZoneManager__rad_get_name(adr_name_t **result,
                                                      int n,
                                                      ...);

               Obtain RAD name of a ZoneManager object.

               Arguments:

               result -- RAD name

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_ZoneManager__rad_lookup(rc_conn_t *c,
                                                    boolean_t strict,
                                                    rc_instance_t **result,
                                                    int n,
                                                    ...);

               Lookup a ZoneManager instance.

               Construct a RAD name for the interface based on the provided
               key-value pairs and perform a lookup. If successful, instance
               reference is returned in the result.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               result -- RAD instance

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_ZoneManager__rad_list(rc_conn_t *c,
                                                  boolean_t strict,
                                                  adr_pattern_scheme_t scheme,
                                                  adr_name_t ***result,
                                                  int *result_count,
                                                  int n,
                                                  ...);

               List RAD names of a available ZoneManager instances.

               Returns an array and array size of matching object names.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               scheme -- Apply glob (NS_GLOB) or regex (NS_REGEX) matching

               result -- Array of RAD names

               result_count -- Number of names in result array

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

       ZoneManager Events
           stateChange

               typedef void (*zonemgr_ZoneManager_stateChange_cb_f)(rc_instance_t *inst,
                                                                    zonemgr_StateChange_t *payload,
                                                                    struct timespec ts,
                                                                    void *arg);

                   Function invoked when event "stateChange" occurs.

                   Arguments:

                   inst -- RAD instance that generated the event

                   payload -- Event payload

                   ts -- Time stamp

                   arg -- User data: custom parameter to invoke the function
                   with

               rc_err_t zonemgr_ZoneManager_subscribe_stateChange(rc_instance_t *inst,
                                                                  zonemgr_ZoneManager_stateChange_cb_f cb,
                                                                  void *arg);

                   Subscribe to event "stateChange".

                   Arguments:

                   inst -- RAD instance

                   cb -- Event callback function

                   arg -- User data: custom parameter to invoke the function
                   with

               rc_err_t zonemgr_ZoneManager_unsubscribe_stateChange(rc_instance_t *inst,
                                                                    void **arg);

                   Unsubscribe from event "stateChange".

                   Arguments:

                   inst -- RAD instance

                   arg -- User data returned

           evacuationProgress

               typedef void (*zonemgr_ZoneManager_evacuationProgress_cb_f)(rc_instance_t *inst,
                                                                           zonemgr_EvacuationProgress_t *payload,
                                                                           struct timespec ts,
                                                                           void *arg);

                   Function invoked when event "evacuationProgress" occurs.

                   Arguments:

                   inst -- RAD instance that generated the event

                   payload -- Event payload

                   ts -- Time stamp

                   arg -- User data: custom parameter to invoke the function
                   with

               rc_err_t zonemgr_ZoneManager_subscribe_evacuationProgress(rc_instance_t *inst,
                                                                         zonemgr_ZoneManager_evacuationProgress_cb_f cb,
                                                                         void *arg);

                   Subscribe to event "evacuationProgress".

                   Arguments:

                   inst -- RAD instance

                   cb -- Event callback function

                   arg -- User data: custom parameter to invoke the function
                   with

               rc_err_t zonemgr_ZoneManager_unsubscribe_evacuationProgress(rc_instance_t *inst,
                                                                           void **arg);

                   Unsubscribe from event "evacuationProgress".

                   Arguments:

                   inst -- RAD instance

                   arg -- User data returned

   interface Zone
       Operations that affect a single zone

       Represents an individual zone. All zone configuration and
       administrative actions are represented in this interface. Changes of
       the zone configuration can be monitored through the configChange event.

       Zone Properties
           const char ** auxstate (read-only, nullable) -- Zone auxiliary
           state

               The list of zone auxiliary states. This property is dynamic,
               can be modified externally, and can be empty.

               rc_err_t zonemgr_Zone_get_auxstate(rc_instance_t *inst,
                                                  char ***result,
                                                  int *result_cnt,
                                                  zonemgr_Result_t **error);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

                   result_cnt -- Number of items in result array

                   error

               Read Error: zonemgr_Result_t **

           const char * brand (read-only) -- Zone brand

               The brand of the zone. This is equivalent to the "brand"
               property in the global resource.

               rc_err_t zonemgr_Zone_get_brand(rc_instance_t *inst,
                                               char **result,
                                               zonemgr_Result_t **error);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

                   error

               Read Error: zonemgr_Result_t **

           int id (read-only) -- Zone id

               The ID of the zone. This property is dynamic and can be
               modified externally. If a zone reboots, the zone ID will
               change.

               rc_err_t zonemgr_Zone_get_id(rc_instance_t *inst,
                                            int *result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

           const char * uuid (read-only, nullable) -- The UUID of the zone

               rc_err_t zonemgr_Zone_get_uuid(rc_instance_t *inst,
                                              char **result,
                                              zonemgr_Result_t **error);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

                   error

               Read Error: zonemgr_Result_t **

           const char * name (read-only) -- Zone name

               The name of the zone. This is equivalent to the "name" property
               in the global resource.

               rc_err_t zonemgr_Zone_get_name(rc_instance_t *inst,
                                              char **result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

           const char * state (read-only) -- Zone state

               The state of the zone. This property is dynamic and can be
               modified externally. If a zone is booted, the zone state will
               change. See zones(7) for zone states reference.

               rc_err_t zonemgr_Zone_get_state(rc_instance_t *inst,
                                               char **result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

       Zone Methods
           rc_err_t zonemgr_Zone_cancelConfig(rc_instance_t *inst,
                                              zonemgr_Result_t **error);

               Resets any configuration changes done after editConfig()

               After the changes are reset, call editConfig() again to begin a
               new set of modifications. Note that this method will also
               reread the configuration by using reloadConfig(). Can return
               NOT_EDITING error if editConfig() has not already been called
               successfully. This method resets the session liveMode to false.

               Arguments:

               inst -- RAD instance

               error

           rc_err_t zonemgr_Zone_exportConfig(rc_instance_t *inst,
                                              boolean_t *includeEdits,
                                              boolean_t *liveMode,
                                              boolean_t *reimport,
                                              char **result,
                                              zonemgr_Result_t **error);

               Return the exported output for this zone

               Return a string containing the exported form of the
               configuration. The output matches the configuration snapshot.

               Arguments:

               inst -- RAD instance

               includeEdits (nullable) -- Include edits in export

                   If true (default if omitted), then the exported
                   configuration will contain the in-flight modifications (if
                   any were made) in the current session, otherwise only the
                   committed on-disk configuration is exported.

               liveMode (nullable) -- Export live configuration

                   If set to true, live (running) zone configuration is
                   exported as seen at the time of this method call.

                   If not specified, this method honors the session's
                   liveMode.

                   If the zone is not running yet live mode was requested,
                   INVALID_ZONE_STATE error will be raised.

               reimport (nullable) -- Export in reimportable format

                   If set, the output is directly suitable for re-importing a
                   configuration via importConfig() with reimport set. Default
                   value is false.

               result

               error

           rc_err_t zonemgr_Zone_update(rc_instance_t *inst,
                                        boolean_t noexecute,
                                        const char **commands,
                                        int commands_count,
                                        zonemgr_Result_t **result,
                                        zonemgr_Result_t **error);

               Process the supplied commands to update the zone

               Process the list of commands.

               A SNAPSHOT_ERROR may result, in which case the configuration is
               unchanged. If the client still wishes to update the
               configuration after a SNAPSHOT_ERROR is returned they must
               refresh their snapshot of zone configuration using
               reloadConfig() method. (Before calling update() on the
               refreshed Zone object they should verify that their planned
               changes are still applicable to the zone configuration.)

               Arguments:

               inst -- RAD instance

               noexecute -- If true, do not execute the commands, but verify
               that they would result in a legal zone configuration.

               commands -- Each element is a command, recognizable by
               zonecfg(8). Failure of any command results in no changes to the
               zone.

               commands_count -- Number of items in commands array

               result

               error

           rc_err_t zonemgr_Zone_editConfig(rc_instance_t *inst,
                                            boolean_t *liveMode,
                                            zonemgr_Result_t **error);

               Initiate zone configuration editing

               Calling this method will initiate a configuration modification
               transaction. It will also update the configuration snapshot if
               a new on-disk configuration is found. Each configuration
               editing transaction must either be canceled by a call to
               cancelConfig(), or changes must be committed using
               commitConfig(). There can be only one configuration editing
               transaction open at one time, so a subsequent call to
               editConfig() without calling cancelConfig() or successfully
               calling commitConfig() first will result in an ALREADY_EDITING
               error.

               Arguments:

               inst -- RAD instance

               liveMode (nullable) -- Edit live configuration

                   If set to true, Live Zone Reconfiguration mode is enabled
                   (session liveMode is set to true) and all changes made to
                   the configuration will be applied live to the running zone
                   at the time commitConfig() is called. Can return
                   INVALID_ZONE_STATE if the zone is not running.

               error

           rc_err_t zonemgr_Zone_commitConfig(rc_instance_t *inst,
                                              zonemgr_Result_t **error);

               Commit the current configuration

               Tries to save the configuration changes made by addResource(),
               removeResources() and setResourceProperties(),
               clearResourceProperties() since the last call to editConfig().

               If external changes were made subsequent to editConfig(), no
               changes are saved and SNAPSHOT_ERROR is returned, indicating
               that the user should either abandon the changed configuration
               or call editConfig() to reread the current zone configuration,
               redo the changes, and try to save again. See the SNAPSHOT_ERROR
               description for more information. A NOT_EDITING error can be
               returned if editConfig() has not already been called
               successfully.

               The configuration is applied to running zone if the session's
               liveMode was set to true. However if the zone was not running
               any more, the INVALID_ZONE_STATE error will be raised.

               The session liveMode is not reset.

               Arguments:

               inst -- RAD instance

               error

           rc_err_t zonemgr_Zone_configIsLive(rc_instance_t *inst,
                                              boolean_t *result);

               Returns session's liveMode setting as set by preceding
               editConfig() or reloadConfig() method calls.

               Arguments:

               inst -- RAD instance

               result

           rc_err_t zonemgr_Zone_configIsStale(rc_instance_t *inst,
                                               boolean_t *result,
                                               zonemgr_Result_t **error);

               Checks whether a configuration snapshot captured by the
               instance is stale, meaning that changes to the zone
               configuration were done by an external process in the interim.

               Arguments:

               inst -- RAD instance

               result

               error

           rc_err_t zonemgr_Zone_addResource(rc_instance_t *inst,
                                             zonemgr_Resource_t *resource,
                                             zonemgr_Resource_t *scope,
                                             zonemgr_Result_t **error);

               Add a resource to the zone configuration

               While the change to the configuration is not saved until a
               successful call is made to commitConfig(), this resource is
               accessible by getResources(), getResourceProperties(), and
               setResourceProperties(), as well as by removeResources()
               methods. Returns RESOURCE_ALREADY_EXISTS if the resource being
               added is not unique. The NOT_EDITING error can be returned if
               editConfig() has not yet been called successfully.

               Arguments:

               inst -- RAD instance

               resource

               scope (nullable) -- Specify where to add the new resource to.
               See mac in anet resource example above.

               error

           rc_err_t zonemgr_Zone_reloadConfig(rc_instance_t *inst,
                                              boolean_t *liveMode,
                                              zonemgr_Result_t **error);

               Reload zone configuration snapshot

               This method should be used to reload the configuration snapshot
               from the on-disk zone configuration, which could have been
               changed by an external process. All uncommitted edits will be
               discarded.

               Arguments:

               inst -- RAD instance

               liveMode (nullable) -- If specified, the session liveMode will
               be set. If not specified, this method honors the session's
               liveMode as set previously by editConfig() or reloadConfig().
               INVALID_ZONE_STATE error can be raise if live reconfiguration
               was requested but the zone was not running.

               error

           rc_err_t zonemgr_Zone_removeResources(rc_instance_t *inst,
                                                 zonemgr_Resource_t *filter,
                                                 zonemgr_Resource_t *scope,
                                                 zonemgr_Result_t **error);

               Delete resource(s) matching filter from the zone configuration

               This method can fail with RESOURCE_NOT_FOUND if the filter does
               not match any resource. A NOT_EDITING error can be returned if
               editConfig() has not yet been called successfully.

               Arguments:

               inst -- RAD instance

               filter

               scope (nullable) -- Specify where to remove the resource(s)
               from. Used for example to remove non-primary mac address(es)
               from a particular anet resource.

               error

           rc_err_t zonemgr_Zone_getResources(rc_instance_t *inst,
                                              zonemgr_Resource_t *filter,
                                              zonemgr_Resource_t *scope,
                                              zonemgr_Resource_t ***result,
                                              int *result_cnt,
                                              zonemgr_Result_t **error);

               Return a list of zero or more resources matching given filter

               Arguments:

               inst -- RAD instance

               filter (nullable) -- Filter to use

                   If NULL, all resources are returned. The INVALID_ARGUMENT
                   error is returned if filter type is empty. The
                   RESOURCE_UNKNOWN error is returned if filter type is an
                   unknown resource type. Refer to zonecfg(8) for a list of
                   valid resource types.

               scope (nullable) -- Scope of resource(s)

                   Specify where to get the resource(s) from. Used for example
                   to get a list of non-primary mac addresses for a particular
                   anet resource.

               result

               result_cnt -- Number of items in result array

               error

           rc_err_t zonemgr_Zone_getResourceProperties(rc_instance_t *inst,
                                                       zonemgr_Resource_t *filter,
                                                       const char **properties,
                                                       int properties_count,
                                                       zonemgr_Property_t ***result,
                                                       int *result_cnt,
                                                       zonemgr_Result_t **error);

               Returns a list of zero or more properties

               This method can fail with RESOURCE_NOT_FOUND if filter does not
               match any resource, with RESOURCE_TOO_MANY if more than one
               resource matches, or with RESOURCE_UNKNOWN if filter type is
               not a known resource type.

               Arguments:

               inst -- RAD instance

               filter

               properties (nullable) -- Names of the properties the caller is
               interested in. If NULL, all properties are returned.

               properties_count -- Number of items in properties array

               result

               result_cnt -- Number of items in result array

               error

           rc_err_t zonemgr_Zone_setResourceProperties(rc_instance_t *inst,
                                                       zonemgr_Resource_t *filter,
                                                       zonemgr_Property_t **properties,
                                                       int properties_count,
                                                       zonemgr_Result_t **error);

               Set property values of given resource

               This method can fail with RESOURCE_NOT_FOUND if the filter does
               not match any resource, RESOURCE_UNKNOWN in the case of an
               invalid filter type, or RESOURCE_TOO_MANY if more than one
               resource matches. If an error occurs when setting the
               properties, the SYSTEM_ERROR is returned and Result.str should
               be inspected to obtain detailed information about the failure.
               The PROPERTY_UNKNOWN error can be returned if a property of the
               given name did not exist in that particular resource and the
               INVALID_ARGUMENT error can be returned if properties argument
               is an empty list. The NOT_EDITING error can be returned if
               editConfig() has not yet been called successfully.

               In the following example please notice the listvalue named
               argument that needs to be used when constructing Property with
               list of simple value. See zonecfg(8) manual page for detailed
               information about individual resources and properties.

               Next example shows how to find particular non-primary mac
               address in an anet resource and set its properties. Please note
               this example is supposed to work on solaris-kz branded zones
               only.

               Arguments:

               inst -- RAD instance

               filter

               properties

               properties_count -- Number of items in properties array

               error

           rc_err_t zonemgr_Zone_clearResourceProperties(rc_instance_t *inst,
                                                         zonemgr_Resource_t *filter,
                                                         const char **properties,
                                                         int properties_count,
                                                         zonemgr_Result_t **error);

               Clear property values of given resource

               This method can fail with RESOURCE_NOT_FOUND if the filter does
               not match any resource or RESOURCE_TOO_MANY if more than one
               resource matches. The PROPERTY_UNKNOWN error can be returned if
               a property of the given name did not exist in that particular
               resource and the INVALID_ARGUMENT error can be returned if the
               properties argument is an empty list. A NOT_EDITING error can
               be returned if editConfig() has not yet been called
               successfully.

               Arguments:

               inst -- RAD instance

               filter

               properties -- Names of the properties to clear

               properties_count -- Number of items in properties array

               error

           rc_err_t zonemgr_Zone_apply(rc_instance_t *inst,
                                       const char **options,
                                       int options_count,
                                       zonemgr_Result_t **result,
                                       zonemgr_Result_t **error);

               Apply configuration to the running zone

               Can fail with INVALID_ZONE_STATE if the zone is not running.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options as described in
               zoneadm(8)

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_attach(rc_instance_t *inst,
                                        const char **options,
                                        int options_count,
                                        zonemgr_Result_t **result,
                                        zonemgr_Result_t **error);

               Attach a zone

               This method is equivalent to using zoneadm(8) attach on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_boot(rc_instance_t *inst,
                                      const char **options,
                                      int options_count,
                                      zonemgr_Result_t **result,
                                      zonemgr_Result_t **error);

               Boot a zone

               This method is equivalent to using zoneadm(8) boot on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_clone(rc_instance_t *inst,
                                       const char **options,
                                       int options_count,
                                       zonemgr_Result_t **result,
                                       zonemgr_Result_t **error);

               Clone a zone

               This method is equivalent to using zoneadm(8) clone on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_detach(rc_instance_t *inst,
                                        const char **options,
                                        int options_count,
                                        zonemgr_Result_t **result,
                                        zonemgr_Result_t **error);

               Detach a zone

               This method is equivalent to using zoneadm(8) detach on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_halt(rc_instance_t *inst,
                                      const char **options,
                                      int options_count,
                                      zonemgr_Result_t **result,
                                      zonemgr_Result_t **error);

               Halt a zone

               This method is equivalent to using zoneadm(8) halt on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_install(rc_instance_t *inst,
                                         const char **options,
                                         int options_count,
                                         zonemgr_Result_t **result,
                                         zonemgr_Result_t **error);

               Install a zone

               This method is equivalent to using zoneadm(8) install on a
               zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_mark(rc_instance_t *inst,
                                      const char **options,
                                      int options_count,
                                      zonemgr_Result_t **result,
                                      zonemgr_Result_t **error);

               Mark a zone state

               This method is equivalent to using zoneadm(8) mark on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_migrate(rc_instance_t *inst,
                                         const char **options,
                                         int options_count,
                                         zonemgr_Result_t **result,
                                         zonemgr_Result_t **error);

               Migrate a zone to a different system

               This method is equivalent to using zoneadm(8) migrate on a
               zone. Note that the RAD URI specified must not require
               interactive authentication (e.g. a password prompt).

               See prepareForMigration() for a more complete API.

               Available since version 1.1.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_move(rc_instance_t *inst,
                                      const char **options,
                                      int options_count,
                                      zonemgr_Result_t **result,
                                      zonemgr_Result_t **error);

               Move a zone

               This method is equivalent to using zoneadm(8) move on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_rename(rc_instance_t *inst,
                                        const char **options,
                                        int options_count,
                                        zonemgr_Result_t **result,
                                        zonemgr_Result_t **error);

               Rename a zone

               This method is equivalent to using zoneadm(8) rename on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_ready(rc_instance_t *inst,
                                       const char **options,
                                       int options_count,
                                       zonemgr_Result_t **result,
                                       zonemgr_Result_t **error);

               Ready a zone

               This method is equivalent to using zoneadm(8) ready on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_reboot(rc_instance_t *inst,
                                        const char **options,
                                        int options_count,
                                        zonemgr_Result_t **result,
                                        zonemgr_Result_t **error);

               Reboot a zone

               This method is equivalent to using zoneadm(8) reboot on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_savecore(rc_instance_t *inst,
                                          const char **options,
                                          int options_count,
                                          zonemgr_Result_t **result,
                                          zonemgr_Result_t **error);

               Save crash dump of a zone

               This method is equivalent to using zoneadm(8) savecore on a
               zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_shutdown(rc_instance_t *inst,
                                          const char **options,
                                          int options_count,
                                          zonemgr_Result_t **result,
                                          zonemgr_Result_t **error);

               Shutdown a zone

               This method is equivalent to using zoneadm(8) shutdown on a
               zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_suspend(rc_instance_t *inst,
                                         const char **options,
                                         int options_count,
                                         zonemgr_Result_t **result,
                                         zonemgr_Result_t **error);

               Suspend a zone

               This method is equivalent to using zoneadm(8) suspend on a
               zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_uninstall(rc_instance_t *inst,
                                           const char **options,
                                           int options_count,
                                           zonemgr_Result_t **result,
                                           zonemgr_Result_t **error);

               Uninstall a zone

               This method is equivalent to using zoneadm(8) uninstall on a
               zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_verify(rc_instance_t *inst,
                                        const char **options,
                                        int options_count,
                                        zonemgr_Result_t **result,
                                        zonemgr_Result_t **error);

               Verify a zone

               This method is equivalent to using zoneadm(8) verify on a zone.

               Arguments:

               inst -- RAD instance

               options (nullable) -- Command options

               options_count -- Number of items in options array

               result

               error

           rc_err_t zonemgr_Zone_prepareForMigration(rc_instance_t *inst,
                                                     zonemgr_MigrationError_t **error);

               Prepare a zone for migration

               Prepare the zone for migration. This verifies the zone
               configuration, and sets the migrating-out auxiliary state.

               Available since version 1.3.

               Arguments:

               inst -- RAD instance

               error

           rc_err_t zonemgr_Zone_initMigration(rc_instance_t *inst,
                                               zonemgr_MigrationType_t type,
                                               const rc_instance_t *conn,
                                               const char *cipher,
                                               boolean_t *overwriteConfig,
                                               rc_instance_t **result,
                                               zonemgr_MigrationError_t **error);

               Initialize a migration to a particular host

               The given RAD connection is used to prepare the destination
               host for receiving a migration of the zone. This includes
               checking of configuration. The returned ZoneMigration object
               will be in the INITIALIZED state.

               Note that MigrationProgress events are fired as part of this
               configuration, so you may want to subscribe prior to calling
               this routine.

               Available since version 1.3.

               Arguments:

               inst -- RAD instance

               type -- Migration type

               conn (nullable) -- The remote host connection to use

                   If this argument is not specified, the evacuation target is
                   used to determine the remote host.

               cipher (nullable) -- The cipher to use; if not specified, the
               default is used

               overwriteConfig (nullable) -- Overwrite any zone configuration
               on the remote host.

               result

               error

       Zone Retrieve
           rc_err_t zonemgr_Zone__rad_get_name(adr_name_t **result,
                                               int n,
                                               ...);

               Obtain RAD name of a Zone object.

               Arguments:

               result -- RAD name

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_Zone__rad_lookup(rc_conn_t *c,
                                             boolean_t strict,
                                             rc_instance_t **result,
                                             int n,
                                             ...);

               Lookup a Zone instance.

               Construct a RAD name for the interface based on the provided
               key-value pairs and perform a lookup. If successful, instance
               reference is returned in the result.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               result -- RAD instance

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_Zone__rad_list(rc_conn_t *c,
                                           boolean_t strict,
                                           adr_pattern_scheme_t scheme,
                                           adr_name_t ***result,
                                           int *result_count,
                                           int n,
                                           ...);

               List RAD names of a available Zone instances.

               Returns an array and array size of matching object names.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               scheme -- Apply glob (NS_GLOB) or regex (NS_REGEX) matching

               result -- Array of RAD names

               result_count -- Number of names in result array

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

       Zone Events
           configChange

               typedef void (*zonemgr_Zone_configChange_cb_f)(rc_instance_t *inst,
                                                              zonemgr_ConfigChange_t *payload,
                                                              struct timespec ts,
                                                              void *arg);

                   Function invoked when event "configChange" occurs.

                   Arguments:

                   inst -- RAD instance that generated the event

                   payload -- Event payload

                   ts -- Time stamp

                   arg -- User data: custom parameter to invoke the function
                   with

               rc_err_t zonemgr_Zone_subscribe_configChange(rc_instance_t *inst,
                                                            zonemgr_Zone_configChange_cb_f cb,
                                                            void *arg);

                   Subscribe to event "configChange".

                   Arguments:

                   inst -- RAD instance

                   cb -- Event callback function

                   arg -- User data: custom parameter to invoke the function
                   with

               rc_err_t zonemgr_Zone_unsubscribe_configChange(rc_instance_t *inst,
                                                              void **arg);

                   Unsubscribe from event "configChange".

                   Arguments:

                   inst -- RAD instance

                   arg -- User data returned

           migrationProgress

               typedef void (*zonemgr_Zone_migrationProgress_cb_f)(rc_instance_t *inst,
                                                                   zonemgr_MigrationProgress_t *payload,
                                                                   struct timespec ts,
                                                                   void *arg);

                   Function invoked when event "migrationProgress" occurs.

                   Arguments:

                   inst -- RAD instance that generated the event

                   payload -- Event payload

                   ts -- Time stamp

                   arg -- User data: custom parameter to invoke the function
                   with

               rc_err_t zonemgr_Zone_subscribe_migrationProgress(rc_instance_t *inst,
                                                                 zonemgr_Zone_migrationProgress_cb_f cb,
                                                                 void *arg);

                   Subscribe to event "migrationProgress".

                   Arguments:

                   inst -- RAD instance

                   cb -- Event callback function

                   arg -- User data: custom parameter to invoke the function
                   with

               rc_err_t zonemgr_Zone_unsubscribe_migrationProgress(rc_instance_t *inst,
                                                                   void **arg);

                   Unsubscribe from event "migrationProgress".

                   Arguments:

                   inst -- RAD instance

                   arg -- User data returned

   interface ZoneInfo
       Report on the zone in which this instance is executing

       Information about the current zone can be accessed.

       ZoneInfo Properties
           const char * brand (read-only) -- The brand of the zone in which
           this interface is executing

               rc_err_t zonemgr_ZoneInfo_get_brand(rc_instance_t *inst,
                                                   char **result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

           int id (read-only) -- The ID of the zone in which this interface is
           executing

               rc_err_t zonemgr_ZoneInfo_get_id(rc_instance_t *inst,
                                                int *result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

           const char * uuid (read-only, nullable) -- The UUID of the zone in
           which this interface is executing

               rc_err_t zonemgr_ZoneInfo_get_uuid(rc_instance_t *inst,
                                                  char **result,
                                                  zonemgr_Result_t **error);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

                   error

               Read Error: zonemgr_Result_t **

           const char * name (read-only) -- The name of the zone in which this
           instance is executing

               rc_err_t zonemgr_ZoneInfo_get_name(rc_instance_t *inst,
                                                  char **result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

           boolean_t isGlobal (read-only) -- Is this instance executing in a
           global zone?

               rc_err_t zonemgr_ZoneInfo_get_isGlobal(rc_instance_t *inst,
                                                      boolean_t *result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

       ZoneInfo Retrieve
           rc_err_t zonemgr_ZoneInfo__rad_get_name(adr_name_t **result,
                                                   int n,
                                                   ...);

               Obtain RAD name of a ZoneInfo object.

               Arguments:

               result -- RAD name

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_ZoneInfo__rad_lookup(rc_conn_t *c,
                                                 boolean_t strict,
                                                 rc_instance_t **result,
                                                 int n,
                                                 ...);

               Lookup a ZoneInfo instance.

               Construct a RAD name for the interface based on the provided
               key-value pairs and perform a lookup. If successful, instance
               reference is returned in the result.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               result -- RAD instance

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_ZoneInfo__rad_list(rc_conn_t *c,
                                               boolean_t strict,
                                               adr_pattern_scheme_t scheme,
                                               adr_name_t ***result,
                                               int *result_count,
                                               int n,
                                               ...);

               List RAD names of a available ZoneInfo instances.

               Returns an array and array size of matching object names.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               scheme -- Apply glob (NS_GLOB) or regex (NS_REGEX) matching

               result -- Array of RAD names

               result_count -- Number of names in result array

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

   interface MigrationConnection
       A connection to a particular remote host

       Available since version 1.3.

       MigrationConnection Properties
           boolean_t supportsMultipleZones (read-only) -- Can the connection
           can be shared among multiple zones?

               rc_err_t zonemgr_MigrationConnection_get_supportsMultipleZones(rc_instance_t *inst,
                                                                              boolean_t *result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

           const char * hostname (read-only) -- The remote hostname as
           supplied in the URI

               rc_err_t zonemgr_MigrationConnection_get_hostname(rc_instance_t *inst,
                                                                 char **result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

           boolean_t supportsSolarisZones (read-only) -- Can the connection
           support Solaris Zones?

               rc_err_t zonemgr_MigrationConnection_get_supportsSolarisZones(rc_instance_t *inst,
                                                                             boolean_t *result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

           boolean_t * supportsSolaris10Zones (read-only, nullable) -- Can the
           connection support solaris10 Zones?

               Available since version 1.7.

               rc_err_t zonemgr_MigrationConnection_get_supportsSolaris10Zones(rc_instance_t *inst,
                                                                               boolean_t **result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

       MigrationConnection Methods
           rc_err_t zonemgr_MigrationConnection_getSupportedCiphers(rc_instance_t *inst,
                                                                    zonemgr_SupportedCiphers_t **result,
                                                                    zonemgr_MigrationError_t **error);

               Return the ciphers supported for encrypted live migration

               Arguments:

               inst -- RAD instance

               result

               error

       MigrationConnection Retrieve
           rc_err_t zonemgr_MigrationConnection__rad_get_name(adr_name_t **result,
                                                              int n,
                                                              ...);

               Obtain RAD name of a MigrationConnection object.

               Arguments:

               result -- RAD name

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_MigrationConnection__rad_lookup(rc_conn_t *c,
                                                            boolean_t strict,
                                                            rc_instance_t **result,
                                                            int n,
                                                            ...);

               Lookup a MigrationConnection instance.

               Construct a RAD name for the interface based on the provided
               key-value pairs and perform a lookup. If successful, instance
               reference is returned in the result.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               result -- RAD instance

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_MigrationConnection__rad_list(rc_conn_t *c,
                                                          boolean_t strict,
                                                          adr_pattern_scheme_t scheme,
                                                          adr_name_t ***result,
                                                          int *result_count,
                                                          int n,
                                                          ...);

               List RAD names of a available MigrationConnection instances.

               Returns an array and array size of matching object names.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               scheme -- Apply glob (NS_GLOB) or regex (NS_REGEX) matching

               result -- Array of RAD names

               result_count -- Number of names in result array

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

   interface ZoneMigration
       Represents an ongoing zone migration

       A migration may be cancelled at an arbitrary point, for example if the
       zone is halted and deleted.

       Available since version 1.3.

       ZoneMigration Properties
           zonemgr_MigrationState_t state (read-only) -- Current migration
           state

               Only a ZoneMigration object in state INITIALIZED can be used by
               the migrate() method.

               rc_err_t zonemgr_ZoneMigration_get_state(rc_instance_t *inst,
                                                        zonemgr_MigrationState_t *result);

                   Get property value.

                   Arguments:

                   inst -- RAD instance

                   result -- Property value returned

       ZoneMigration Methods
           rc_err_t zonemgr_ZoneMigration_migrate(rc_instance_t *inst,
                                                  boolean_t *suspendAtStart,
                                                  zonemgr_MigrationAttach_t *attachOptions,
                                                  zonemgr_MigrationError_t **error);

               Migrate the zone

               An ongoing migration generates MigrationProgress events for the
               subject zone on the source host. The ZoneMigration object
               should be in state INITIALIZED. During the migration, this
               method will set the state to MIGRATING.

               After successful completion the state will be COMPLETED. In the
               case of certain errors, the state may become NONE instead of
               INITIALIZED, and the process must be restarted from
               prepareForMigration().

               This routine waits synchronously for migration to complete.
               However, a separate client thread can call cancel() to
               asynchronously cancel a migration.

               Arguments:

               inst -- RAD instance

               suspendAtStart (nullable) -- Debug option: suspend the guest at
               the start

               attachOptions (nullable) -- Migration options for attach of
               solaris zone

                   Available since version 1.5.

               error

           rc_err_t zonemgr_ZoneMigration_cancel(rc_instance_t *inst,
                                                 zonemgr_MigrationError_t **error);

               Cancel an ongoing migration

               Cancel an ongoing or prepared migration. After this call (if
               successful), the state is NONE, and migration must be restarted
               from prepareForMigration().

               A cancellation may fail due to an internal error, or if state
               on the remote system cannot be cleanly torn down (for example,
               if detach fails).

               Arguments:

               inst -- RAD instance

               error

       ZoneMigration Retrieve
           rc_err_t zonemgr_ZoneMigration__rad_get_name(adr_name_t **result,
                                                        int n,
                                                        ...);

               Obtain RAD name of a ZoneMigration object.

               Arguments:

               result -- RAD name

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_ZoneMigration__rad_lookup(rc_conn_t *c,
                                                      boolean_t strict,
                                                      rc_instance_t **result,
                                                      int n,
                                                      ...);

               Lookup a ZoneMigration instance.

               Construct a RAD name for the interface based on the provided
               key-value pairs and perform a lookup. If successful, instance
               reference is returned in the result.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               result -- RAD instance

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

           rc_err_t zonemgr_ZoneMigration__rad_list(rc_conn_t *c,
                                                    boolean_t strict,
                                                    adr_pattern_scheme_t scheme,
                                                    adr_name_t ***result,
                                                    int *result_count,
                                                    int n,
                                                    ...);

               List RAD names of a available ZoneMigration instances.

               Returns an array and array size of matching object names.

               Arguments:

               c -- RAD connection handle

               strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning

               scheme -- Apply glob (NS_GLOB) or regex (NS_REGEX) matching

               result -- Array of RAD names

               result_count -- Number of names in result array

               n -- Number of key-value pairs provided as variadic arguments

               ... -- Optional key-value pairs that compose the primary key

ENUMERATED TYPES
       enum ErrorCode -- Errors

           typedef enum zonemgr_ErrorCode {
                ZEC_NONE = 0,
                ZEC_FRAMEWORK_ERROR = 1,
                ZEC_SNAPSHOT_ERROR = 2,
                ZEC_COMMAND_ERROR = 3,
                ZEC_RESOURCE_ALREADY_EXISTS = 4,
                ZEC_RESOURCE_NOT_FOUND = 5,
                ZEC_RESOURCE_TOO_MANY = 6,
                ZEC_RESOURCE_UNKNOWN = 7,
                ZEC_ALREADY_EDITING = 8,
                ZEC_INCOMPLETE_NO_CONFIG = 9,
                ZEC_PROPERTY_UNKNOWN = 10,
                ZEC_NOT_EDITING = 11,
                ZEC_SYSTEM_ERROR = 12,
                ZEC_INVALID_ARGUMENT = 13,
                ZEC_INVALID_ZONE_STATE = 14,
           } zonemgr_ErrorCode_t;

           ZEC_NONE (0) -- No error

           ZEC_FRAMEWORK_ERROR (1) -- An error occurred within the RAD
           framework

           ZEC_SNAPSHOT_ERROR (2) -- Operation inconsistent with the snapshot

               The user accesses the zone configuration details through a
               snapshot. This snapshot is captured when the user references a
               Zone instance. If the framework detects that the user intends
               to perform an operation that would be inconsistent with
               external changes made after the creation of the snapshot, the
               operation fails and this error is returned.

           ZEC_COMMAND_ERROR (3) -- An error occurred in the requested
           operation

           ZEC_RESOURCE_ALREADY_EXISTS (4) -- Resource to be added already
           exists

           ZEC_RESOURCE_NOT_FOUND (5) -- Unable to find a resource matching
           given filter

           ZEC_RESOURCE_TOO_MANY (6) -- Too many matching resources

               If the filter provided matches more than one resource, this
               error can be returned by methods that operate on one particular
               resource.

           ZEC_RESOURCE_UNKNOWN (7) -- The resource of the particular type is
           not known

           ZEC_ALREADY_EDITING (8) -- Already editing configuration

               This error is returned by editConfig() when there was a prior
               call to editConfig(), and an active zone configuration editing
               session still exists. The session has not been cancelled by
               cancelConfig(), or committed by a successful commitConfig()
               call.

           ZEC_INCOMPLETE_NO_CONFIG (9) -- Cannot edit an incomplete zone with
           no configuration file

               This error is returned by editConfig() when the zone is in an
               incomplete state with a non-existent configuration file.

           ZEC_PROPERTY_UNKNOWN (10) -- The given property does not exist

           ZEC_NOT_EDITING (11) -- Calling configuration modification methods
           is not allowed outside of transaction.

           ZEC_SYSTEM_ERROR (12) -- System error

               This error code is a result of an error in a low-level system
               component or library where it's impractical to expose that
               particular error code through the Zone interface. Detailed
               information about the error, if available, will be made
               available through str field of the Result structure.

           ZEC_INVALID_ARGUMENT (13) -- Invalid method argument(s)

           ZEC_INVALID_ZONE_STATE (14) -- Invalid zone state

               This error is raised in case Live Zone Reconfiguration mode was
               requested, but the zone in question wasn't running.

       enum PropertyValueType -- The type of property

           typedef enum zonemgr_PropertyValueType {
                ZPVT_PROP_SIMPLE = 0,
                ZPVT_PROP_LIST = 1,
                ZPVT_PROP_COMPLEX = 2,
           } zonemgr_PropertyValueType_t;

           PROP_COMPLEX is obsolete and is never used.

           ZPVT_PROP_SIMPLE (0)

           ZPVT_PROP_LIST (1)

           ZPVT_PROP_COMPLEX (2)

       enum MigrationOperation -- A particular operation as part of a zone
       migration

           typedef enum zonemgr_MigrationOperation {
                ZMO_FRAMEWORK = 0,
                ZMO_CONNECT = 1,
                ZMO_INIT_CRYPTO = 2,
                ZMO_CONFIG_CHECK = 3,
                ZMO_CONFIGURE = 4,
                ZMO_ATTACH = 5,
                ZMO_BOOT = 6,
                ZMO_MIGRATE_INITIAL = 7,
                ZMO_MIGRATE = 8,
                ZMO_SUSPEND = 9,
                ZMO_RESTART = 10,
                ZMO_HALT = 11,
                ZMO_DETACH = 12,
                ZMO_UNCONFIGURE = 13,
                ZMO_COMPLETE = 14,
                ZMO_CANCEL = 15,
           } zonemgr_MigrationOperation_t;

           ZMO_FRAMEWORK (0) -- A system operation (e.g. fork())

           ZMO_CONNECT (1) -- Connecting to a remote host

           ZMO_INIT_CRYPTO (2) -- Encryption setup

           ZMO_CONFIG_CHECK (3) -- Pre-flight configuration check

           ZMO_CONFIGURE (4) -- Zone configuration

           ZMO_ATTACH (5) -- Zone attach

           ZMO_BOOT (6) -- Zone boot

           ZMO_MIGRATE_INITIAL (7) -- Initial copy during migration

           ZMO_MIGRATE (8) -- Migrating modified memory

           ZMO_SUSPEND (9) -- Suspending the zone

           ZMO_RESTART (10) -- Restarting the zone

           ZMO_HALT (11) -- Zone halt

           ZMO_DETACH (12) -- Zone detach

           ZMO_UNCONFIGURE (13) -- Zone unconfigure

           ZMO_COMPLETE (14) -- Migration completion

           ZMO_CANCEL (15) -- Migration cancellation

       enum ErrorDomain -- Type of error number

           typedef enum zonemgr_ErrorDomain {
                ZED_SYSTEM = 0,
                ZED_ZONECFG = 1,
           } zonemgr_ErrorDomain_t;

           ZED_SYSTEM (0) -- As per strerror()

           ZED_ZONECFG (1) -- As per zonecfg_strerror()

       enum MigrationState -- Current migration state

           typedef enum zonemgr_MigrationState {
                ZMS_NONE = 0,
                ZMS_INITIALIZED = 1,
                ZMS_MIGRATING = 2,
                ZMS_COMPLETED = 3,
           } zonemgr_MigrationState_t;

           ZMS_NONE (0) -- No migration state

           ZMS_INITIALIZED (1) -- Migration is initialized

               Migration state is initialized on remote host and ready to
               begin migration.

           ZMS_MIGRATING (2) -- Migration is underway

           ZMS_COMPLETED (3) -- Migration is completed

       enum MigrationType

           typedef enum zonemgr_MigrationType {
                ZMT_LIVE = 0,
                ZMT_COLD = 1,
           } zonemgr_MigrationType_t;

           ZMT_LIVE (0) -- Live migration.

           ZMT_COLD (1) -- Cold migration.

       enum MigrationUpdateOpts -- Migration options for update of packages on
       attach

           typedef enum zonemgr_MigrationUpdateOpts {
                ZMUO_NONE = 0,
                ZMUO_MIN = 1,
                ZMUO_ALL = 2,
           } zonemgr_MigrationUpdateOpts_t;

           ZMUO_NONE (0) -- No update of packages on attach

           ZMUO_MIN (1) -- Update minimal number of packages on attach

           ZMUO_ALL (2) -- Update all packages on attach

       enum MigrationCloneOpts -- Migration options for clone of ZBE

           typedef enum zonemgr_MigrationCloneOpts {
                ZMCO_NONE = 0,
                ZMCO_FORCE = 1,
                ZMCO_DENY = 2,
           } zonemgr_MigrationCloneOpts_t;

           ZMCO_NONE (0) -- Use default clone behavior on migrate

           ZMCO_FORCE (1) -- Force ZBE clone on migrate

           ZMCO_DENY (2) -- Do not clone ZBE on migrate

       enum MigrationDestroyOrphanOpt -- Migration option for
       destroy-orphan-zbes on attach

           typedef enum zonemgr_MigrationDestroyOrphanOpt {
                ZMDOO_NONE = 0,
                ZMDOO_DOSET = 1,
           } zonemgr_MigrationDestroyOrphanOpt_t;

           ZMDOO_NONE (0) -- No destroy-orphan-zbes option given.

           ZMDOO_DOSET (1) -- Destroy orphan ZBEs on attach.

       enum MigrationLastBootedOpt -- Migration option for last-booted ZBE
       selection on attach

           typedef enum zonemgr_MigrationLastBootedOpt {
                ZMLBO_NONE = 0,
                ZMLBO_LBSET = 1,
           } zonemgr_MigrationLastBootedOpt_t;

           ZMLBO_NONE (0) -- No last-booted option given.

           ZMLBO_LBSET (1) -- Select last-booted ZBE on attach

       enum MigrationLastMountedOpt -- Migration option for last-mounted ZBE
       selection on attach

           typedef enum zonemgr_MigrationLastMountedOpt {
                ZMLMO_NONE = 0,
                ZMLMO_LMSET = 1,
           } zonemgr_MigrationLastMountedOpt_t;

           ZMLMO_NONE (0) -- No last-mounted option given.

           ZMLMO_LMSET (1) -- Select last-mounted ZBE on attach

       enum MigrationMatchedOpt -- Migration option for matched ZBE selection
       on attach

           typedef enum zonemgr_MigrationMatchedOpt {
                ZMMO_NONE = 0,
                ZMMO_MSET = 1,
           } zonemgr_MigrationMatchedOpt_t;

           ZMMO_NONE (0) -- No matched option given.

           ZMMO_MSET (1) -- Select active ZBE matching current global zone

       enum EvacuationStatus -- Evacuation operation status

           typedef enum zonemgr_EvacuationStatus {
                ZES_SUCCESS = 0,
                ZES_FAIL = 1,
                ZES_PARTIAL_FAIL = 2,
           } zonemgr_EvacuationStatus_t;

           ZES_SUCCESS (0) -- Operation succeeded for all zones

           ZES_FAIL (1) -- Entire operation failed

           ZES_PARTIAL_FAIL (2) -- Operation failed for one or more zones

       enum EvacuationErrorCode -- Evacuation error code

           typedef enum zonemgr_EvacuationErrorCode {
                ZEEC_FRAMEWORK = 0,
                ZEEC_EVACUATION_IN_PROGRESS = 1,
                ZEEC_EVACUATION_NOT_INITED = 2,
                ZEEC_NO_EVACUATION_TO_RETURN = 3,
                ZEEC_NO_EVACUATION_TO_CANCEL = 4,
                ZEEC_EVACUATION_NOT_PERMITTED = 5,
                ZEEC_NO_ZONES_TO_EVACUATE = 6,
                ZEEC_EVACUATION_CANCELED = 7,
           } zonemgr_EvacuationErrorCode_t;

           ZEEC_FRAMEWORK (0) -- Framework or general system failure

           ZEEC_EVACUATION_IN_PROGRESS (1) -- Evacuation already underway

               Either an evacuation is already initialized, or one is
               currently under way.

           ZEEC_EVACUATION_NOT_INITED (2) -- Evacuation not yet initialized

               initEvacuate() has not been called prior to a evacuate() call.

           ZEEC_NO_EVACUATION_TO_RETURN (3) -- No evacuation to return

               Returned when there are no evacuated zones to return.

           ZEEC_NO_EVACUATION_TO_CANCEL (4) -- No evacuation to cancel

               Returned from cancelEvacuate() when there is no active (either
               initialized or running) evacuation.

           ZEEC_EVACUATION_NOT_PERMITTED (5) -- Evacuation not permited

           ZEEC_NO_ZONES_TO_EVACUATE (6) -- No suitable zones to migrate

           ZEEC_EVACUATION_CANCELED (7) -- Evacuation has been canceled

       enum MigrationMilestone -- A particular migration milestone or state as
       part of an evacuation

           typedef enum zonemgr_MigrationMilestone {
                ZMM_MIGRATE_INITIALIZING = 0,
                ZMM_MIGRATE_INITIALIZATION_COMPLETE = 1,
                ZMM_MIGRATE_INITIALIZATION_FAIL = 2,
                ZMM_MIGRATING = 3,
                ZMM_MIGRATE_COMPLETE = 4,
                ZMM_MIGRATE_FAIL = 5,
                ZMM_EVACUATE_INITIALIZING = 6,
                ZMM_EVACUATE_INITIALIZATION_COMPLETE = 7,
                ZMM_EVACUATE_INITIALIZATION_FAIL = 8,
                ZMM_EVACUATING = 9,
                ZMM_EVACUATE_COMPLETE = 10,
                ZMM_EVACUATE_FAIL = 11,
                ZMM_EVACUATE_CANCELED = 12,
           } zonemgr_MigrationMilestone_t;

           ZMM_MIGRATE_INITIALIZING (0) -- Migration is initializing

           ZMM_MIGRATE_INITIALIZATION_COMPLETE (1) -- Migration has
           initialized

           ZMM_MIGRATE_INITIALIZATION_FAIL (2) -- Migration initalizing has
           failed

           ZMM_MIGRATING (3) -- Migration is underway

           ZMM_MIGRATE_COMPLETE (4) -- Migration has completed

           ZMM_MIGRATE_FAIL (5) -- Migration has failed

           ZMM_EVACUATE_INITIALIZING (6) -- Evacuation is initializing

           ZMM_EVACUATE_INITIALIZATION_COMPLETE (7) -- Evacuation has
           initialized

           ZMM_EVACUATE_INITIALIZATION_FAIL (8) -- Evacuation initalizing has
           failed

           ZMM_EVACUATING (9) -- Evacuation is underway

           ZMM_EVACUATE_COMPLETE (10) -- Evacuation has completed

           ZMM_EVACUATE_FAIL (11) -- Evacuation has failed

           ZMM_EVACUATE_CANCELED (12) -- Evacuation has been canceled

       enum MigrationStatus -- Individual migration error status in an
       evacuation

           typedef enum zonemgr_MigrationStatus {
                ZMS_SUCCESS = 0,
                ZMS_MIGRATE_NOT_ATTEMPTED = 1,
                ZMS_MIGRATION_ERROR = 2,
                ZMS_SYSTEM_ERROR = 3,
                ZMS_NOMEM_ERROR = 4,
                ZMS_NOTFOUND_ERROR = 5,
                ZMS_PRIV_ERROR = 6,
           } zonemgr_MigrationStatus_t;

           ZMS_SUCCESS (0) -- Success

           ZMS_MIGRATE_NOT_ATTEMPTED (1) -- Did not attempt to migrate zone

               In evacuations where a partial init was allowed, this status is
               set for those zone migrations that failed initialization. With
               this error, there will be an additional error payload with more
               details.

           ZMS_MIGRATION_ERROR (2) -- Module generated migration specific
           error

               A zone failed to migrate. With this error, there will be an
               additional error payload with more details.

           ZMS_SYSTEM_ERROR (3) -- General system error

           ZMS_NOMEM_ERROR (4) -- Out of memory

           ZMS_NOTFOUND_ERROR (5) -- Zone not found error

           ZMS_PRIV_ERROR (6) -- Insufficient privileges error

STRUCTURED TYPES
       struct Result -- An error occurred for the given operation

           typedef struct zonemgr_Result zonemgr_Result_t;

           struct zonemgr_Result {
                zonemgr_ErrorCode_t *zr_code;
                char *zr_str;
                char *zr_stdout;
                char *zr_stderr;
           };


           void zonemgr_Result_free(zonemgr_Result_t *in);

           Fields:

           zr_code -- Error code

           zr_str -- Error string

               String representation of the actual error possibly including
               the information gathered from the low-level error.

           zr_stdout -- Contents of the standard out of a subprocess

           zr_stderr -- Contents of the standard error of a subprocess

       struct ConfigChange -- The payload of a configChange event

           typedef struct zonemgr_ConfigChange zonemgr_ConfigChange_t;

           struct zonemgr_ConfigChange {
                char *zcc_zone;
           };


           void zonemgr_ConfigChange_free(zonemgr_ConfigChange_t *in);

           Fields:

           zcc_zone

       struct StateChange -- The payload of a stateChange event

           typedef struct zonemgr_StateChange zonemgr_StateChange_t;

           struct zonemgr_StateChange {
                char *zsc_zone;
                char *zsc_oldstate;
                char *zsc_newstate;
           };


           void zonemgr_StateChange_free(zonemgr_StateChange_t *in);

           Fields:

           zsc_zone

           zsc_oldstate

           zsc_newstate

       struct Property -- A Resource property

           typedef struct zonemgr_Property zonemgr_Property_t;

           struct zonemgr_Property {
                char *zp_name;
                char *zp_value;
                zonemgr_PropertyValueType_t *zp_type;
                char **zp_listvalue;
                int zp_listvalue_count;
                char **zp_complexvalue;
                int zp_complexvalue_count;
           };


           void zonemgr_Property_free(zonemgr_Property_t *in);

           complexvalue is obsolete and never used.

           Fields:

           zp_name

           zp_value

           zp_type

           zp_listvalue

           zp_listvalue_count

           zp_complexvalue

           zp_complexvalue_count

       struct Resource -- A zone resource

           typedef struct zonemgr_Resource zonemgr_Resource_t;

           struct zonemgr_Resource {
                char *zr_type;
                zonemgr_Property_t **zr_properties;
                int zr_properties_count;
                char *zr_parent;
           };


           void zonemgr_Resource_free(zonemgr_Resource_t *in);

           This structure is used for storing information about an individual
           zone configuration resource. The structure can also be used for
           filtering resources in methods such as getResources(),
           removeResources(), getResourceProperties() and
           setResourceProperties.

           The rules for matching individual configuration resources are as
           follows:

           1. Resources are matched based on the filter's type attribute
           first.

           2. If the properties attribute of the filter is NULL (or is an
           empty array), then no additional filtering is done.

           3. If the properties attribute is a non-empty array of property
           elements, the resource is first checked to determine if it contains
           a property of this name. Then a check is performed to confirm that
           the property simple value matches (that is, the value attribute of
           the property in the filter object is not NULL)

           4. Step 3 is evaluated for each Property in the filter object. If
           all checks evaluate to true (that is, property is present and
           possibly has the requested value if specified in the filter
           object), then the Resource is added to the list of matches.

           See examples and specific documentation for individual methods
           which accept Resource as filter argument.

           Fields:

           zr_type

           zr_properties

           zr_properties_count

           zr_parent -- Implementation detail

               Private implementation detail to supported hierarchically
               nested resources.

       struct Errno -- Error number description

           typedef struct zonemgr_Errno zonemgr_Errno_t;

           struct zonemgr_Errno {
                zonemgr_ErrorDomain_t ze_domain;
                int ze_errno;
           };


           void zonemgr_Errno_free(zonemgr_Errno_t *in);

           Fields:

           ze_domain

           ze_errno

       struct MigrationError -- An error occurred for the given migration
       operation

           typedef struct zonemgr_MigrationError zonemgr_MigrationError_t;

           struct zonemgr_MigrationError {
                zonemgr_MigrationOperation_t zme_operation;
                zonemgr_Errno_t *zme_err;
                char *zme_str;
           };


           void zonemgr_MigrationError_free(zonemgr_MigrationError_t *in);

           Note that the error string includes any expanded strerror()
           equivalent.

           Fields:

           zme_operation

           zme_err

           zme_str

       struct MigrationAttach -- Migration options for attach of solaris zone

           typedef struct zonemgr_MigrationAttach zonemgr_MigrationAttach_t;

           struct zonemgr_MigrationAttach {
                zonemgr_MigrationUpdateOpts_t zma_update;
                zonemgr_MigrationCloneOpts_t zma_clone;
                zonemgr_MigrationDestroyOrphanOpt_t zma_destroyOrphan;
                zonemgr_MigrationLastBootedOpt_t zma_lastBooted;
                zonemgr_MigrationLastMountedOpt_t zma_lastMounted;
                zonemgr_MigrationMatchedOpt_t zma_matched;
                char *zma_zbe;
           };


           void zonemgr_MigrationAttach_free(zonemgr_MigrationAttach_t *in);

           Fields:

           zma_update

           zma_clone

           zma_destroyOrphan

           zma_lastBooted

           zma_lastMounted

           zma_matched

           zma_zbe -- Attach specified ZBE

       struct EvacuationMigrationResult -- A single migration status within an
       evacuation

           typedef struct zonemgr_EvacuationMigrationResult
           zonemgr_EvacuationMigrationResult_t;

           struct zonemgr_EvacuationMigrationResult {
                char *zemr_zoneName;
                boolean_t zemr_evacuated;
                char *zemr_evacuationTarget;
                zonemgr_MigrationStatus_t zemr_migrationStatus;
                zonemgr_MigrationError_t *zemr_migrationError;
           };


           void zonemgr_EvacuationMigrationResult_free(zonemgr_EvacuationMigrationResult_t *in);

           A migration status within an evacuation.

           Fields:

           zemr_zoneName

           zemr_evacuated

           zemr_evacuationTarget

           zemr_migrationStatus

           zemr_migrationError

       struct EvacuationResult -- An evacuation operation result

           typedef struct zonemgr_EvacuationResult zonemgr_EvacuationResult_t;

           struct zonemgr_EvacuationResult {
                zonemgr_EvacuationStatus_t zer_status;
                boolean_t zer_returning;
                zonemgr__rad_dict_string_EvacuationMigrationResult_t *zer_migrationResults;
           };


           void zonemgr_EvacuationResult_free(zonemgr_EvacuationResult_t *in);

           Results of an evacuation operation. Includes the evacuation status,
           and a mapping of zone names to corresponding migration status
           values in the form of EvacuationMigrationResults.

           Fields:

           zer_status

           zer_returning -- The result is for an evacuation return operation

           zer_migrationResults

       struct EvacuationError -- A fatal error occurred for an evacuation
       operation

           typedef struct zonemgr_EvacuationError zonemgr_EvacuationError_t;

           struct zonemgr_EvacuationError {
                zonemgr_EvacuationErrorCode_t zee_code;
                zonemgr_Errno_t *zee_err;
                char *zee_str;
           };


           void zonemgr_EvacuationError_free(zonemgr_EvacuationError_t *in);

           Note that the error string includes any expanded strerror()
           equivalent.

           Fields:

           zee_code

           zee_err

           zee_str

       struct MigrationProgress -- Progress of a migration of a particular
       zone

           typedef struct zonemgr_MigrationProgress
           zonemgr_MigrationProgress_t;

           struct zonemgr_MigrationProgress {
                char *zmp_zone;
                rc_instance_t *zmp_connection;
                zonemgr_MigrationOperation_t zmp_operation;
                char *zmp_str;
                unsigned int *zmp_percent_complete;
           };


           void zonemgr_MigrationProgress_free(zonemgr_MigrationProgress_t *in);

           Fields:

           zmp_zone -- The name of the zone

           zmp_connection -- The migration connection

           zmp_operation -- The current operation

           zmp_str -- A summary of the current operation progress

           zmp_percent_complete -- Percentage complete of this operation

               Note, this is currently only set for MIGRATE_INITIAL.

       struct EvacuationProgress -- Progress of an evacuation

           typedef struct zonemgr_EvacuationProgress
           zonemgr_EvacuationProgress_t;

           struct zonemgr_EvacuationProgress {
                char *zep_zoneName;
                char *zep_remoteHost;
                boolean_t zep_returning;
                zonemgr_MigrationMilestone_t zep_migrationMilestone;
                unsigned int zep_zoneCount;
                unsigned long long *zep_transferRate;
                char *zep_zoneProgress;
           };


           void zonemgr_EvacuationProgress_free(zonemgr_EvacuationProgress_t *in);

           Fields:

           zep_zoneName -- The name of the zone

               For events pertaining to a specific zone migration, this is set
               to the zone name. For evacuation-wide events (EVACUATION prefix
               for migrationMilestone), this is not set.

           zep_remoteHost -- The remote host involved in the migration

               For evacuations, this is the destination for the migration and
               for an ongoing return, this is the source of the migration.

           zep_returning -- The progress is for an evacuation return

           zep_migrationMilestone -- The completed milestone or migration
           status

           zep_zoneCount -- Number of zones for evacuation-wide events

           zep_transferRate -- Network transfer rate for evacuation (in
           bytes/second)

           zep_zoneProgress -- Detailed per zone migration progress message.

       struct SupportedCiphers -- Supported cipher information for encrypted
       live migration

           typedef struct zonemgr_SupportedCiphers zonemgr_SupportedCiphers_t;

           struct zonemgr_SupportedCiphers {
                char **zsc_source;
                int zsc_source_count;
                char **zsc_destination;
                int zsc_destination_count;
                char *zsc_defaultcipher;
           };


           void zonemgr_SupportedCiphers_free(zonemgr_SupportedCiphers_t *in);

           Fields:

           zsc_source -- List of ciphers supported on the source (current)
           host

           zsc_source_count

           zsc_destination -- List of ciphers supported on the destination
           host

           zsc_destination_count

           zsc_defaultcipher -- Default cipher used between these two hosts

               The cipher used by default between these two hosts. May be null
               if no cipher could be matched, or "none" if the destination
               host does not support encrypted migration.

DICTIONARIES
   Dictionary { string : EvacuationMigrationResult }
       Dictionary with a key type of string and a value type of
       EvacuationMigrationResult.

       typedef struct base_rad_dict
       zonemgr__rad_dict_string_EvacuationMigrationResult_t;

       rc_err_t zonemgr__rad_dict_string_EvacuationMigrationResult_get(zonemgr__rad_dict_string_EvacuationMigrationResult_t *dict,
                                                                       const char *key,
                                                                       zonemgr_EvacuationMigrationResult_t **result);

           Get the value for given key.

           Arguments:

           dict -- Dictionary

           key -- Key value

           result -- Value returned

       rc_err_t zonemgr__rad_dict_string_EvacuationMigrationResult_put(zonemgr__rad_dict_string_EvacuationMigrationResult_t *dict,
                                                                       const char *key,
                                                                       zonemgr_EvacuationMigrationResult_t *value,
                                                                       zonemgr_EvacuationMigrationResult_t **result);

           Put a key-value pair into the dictionary.

           Returns a previous value stored with the same key if one exists.

           Arguments:

           dict -- Dictionary

           key -- Key value

           value -- Value written

           result -- Original value for the key

       rc_err_t zonemgr__rad_dict_string_EvacuationMigrationResult_contains(zonemgr__rad_dict_string_EvacuationMigrationResult_t *dict,
                                                                            const char *key);

           Check whether a key exists in the dictionary.

           Returns RCE_OK when key exists, RCE_CLIENT_NOTFOUND otherwise.

           Arguments:

           dict -- Dictionary

           key -- Key value

       rc_err_t zonemgr__rad_dict_string_EvacuationMigrationResult_remove(zonemgr__rad_dict_string_EvacuationMigrationResult_t *dict,
                                                                          const char *key,
                                                                          zonemgr_EvacuationMigrationResult_t **result);

           Remove key-value pair from the dictionary.

           Returns RCE_OK when key was sucessfully removed,
           RCE_CLIENT_NOTFOUND otherwise.

           Arguments:

           dict -- Dictionary

           key -- Key value

           result -- Original value for the key

       rc_err_t zonemgr__rad_dict_string_EvacuationMigrationResult_keys(zonemgr__rad_dict_string_EvacuationMigrationResult_t *dict,
                                                                        char ***result,
                                                                        int *count);

           Get list of keys from the dictionary.

           Memory associated with the result array should be freed by the
           user.

           Arguments:

           dict -- Dictionary

           result -- Array of dictionary keys

           count -- Number of items in result array

       rc_err_t zonemgr__rad_dict_string_EvacuationMigrationResult_values(zonemgr__rad_dict_string_EvacuationMigrationResult_t *dict,
                                                                          zonemgr_EvacuationMigrationResult_t ***result,
                                                                          int *count);

           Get list of values from the dictionary.

           Memory associated with the result array should be freed by the
           user.

           Arguments:

           dict -- Dictionary

           result -- Array of dictionary values

           count -- Number of items in result array

       unsigned int zonemgr__rad_dict_string_EvacuationMigrationResult_size(zonemgr__rad_dict_string_EvacuationMigrationResult_t *dict);

           Get number of key-value pairs in the dictionary.

           Arguments:

           dict -- Dictionary

       zonemgr__rad_dict_string_EvacuationMigrationResult_t * zonemgr__rad_dict_string_EvacuationMigrationResult_create(const rc_instance_t *inst);

           Create a new, empty dictionary.

           Returns a pointer to the dictionary, or NULL on error.

           Arguments:

           inst -- RAD instance

       void zonemgr__rad_dict_string_EvacuationMigrationResult_free(zonemgr__rad_dict_string_EvacuationMigrationResult_t *dict);

           Destroy the dictionary and release the allocated memory.

           Arguments:

           dict -- Dictionary

       rc_err_t zonemgr__rad_dict_string_EvacuationMigrationResult_map(zonemgr__rad_dict_string_EvacuationMigrationResult_t *dict,
                                                                       rc_err_t(*func)(const char *, zonemgr_EvacuationMigrationResult_t *, void *),
                                                                       void *arg);

           Invoke a function with each key-value pair in the dictionary.

           Arguments:

           dict -- Dictionary

           func -- Function to invoke

               The arguments are: key, value, user-data.

           arg -- User data: custom parameter to invoke the function with

VERSION
       1.10

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       +--------------------+------------------------------------------+
       |  ATTRIBUTE TYPE    |             ATTRIBUTE VALUE              |
       +--------------------+------------------------------------------+
       |Availability        | system/management/rad/module/rad-zonemgr |
       +--------------------+------------------------------------------+
       |Interface Stability | Private                                  |
       +--------------------+------------------------------------------+

SEE ALSO
       rad(8)

NOTES
        1. Accessing Python documentation for this module:

           $ pydoc rad.bindings.com.oracle.solaris.rad.zonemgr_1





Solaris 11.4                      2017-02-01                   ZONEMGR-1(3rad)