# GRAccess Operations Reference

Operations supported by the ArchestrA GRAccess library, organized by functional area.
Page references link to sections in `graccess_documentation.md`.

---

## Galaxy Management (IGRAccess — Pages 101–104)

| Operation | Method | Description |
|---|---|---|
| Query galaxies | `QueryGalaxies(nodeName)` | List available galaxies on a GR node |
| Create galaxy | `CreateGalaxy(name, nodeName, hasSecurity, authMode, description)` | Create a new galaxy |
| Create from template | `CreateGalaxyFromTemplate(...)` | Create a galaxy from a template |
| Delete galaxy | `DeleteGalaxy(galaxyName, nodeName)` | Delete a galaxy |

## Galaxy Connection & Session (IGalaxy — Pages 35–55)

| Operation | Method | Description |
|---|---|---|
| Login | `Login(userName, password)` | Log in with forced client sync |
| Login (extended) | `LoginEx(userName, password, forceSynchronization)` | Log in with optional deferred sync |
| Synchronize | `SynchronizeClient()` | Sync client with server |
| Logout | `Logout()` | Log out from the galaxy |
| Get version | `VersionString` / `VersionNumber` | Retrieve galaxy version |
| Check upgrade needed | `UpgradeRequired` | Check if galaxy needs upgrade |
| Migrate galaxy | `MigrateGalaxy(galaxyName, grNodeName)` | Upgrade a galaxy |

## Galaxy Backup & Restore (IGalaxy — Pages 39–40, 47–48)

| Operation | Method | Description |
|---|---|---|
| Backup | `Backup(processId, backupFile, nodeName, galaxyName)` | Back up a galaxy to file |
| Restore | `Restore(processId, backupFile, nodeName, galaxyName, restoreOlder)` | Restore a galaxy from backup |

## Object Queries (IGalaxy — Pages 37–38, 44–45, 51–52)

| Operation | Method | Description |
|---|---|---|
| Query by name | `QueryObjectsByName(templateOrInstance, tagnames[])` | Find objects by tagname array |
| Query by condition | `QueryObjects(templateOrInstance, conditionType, value, matchCondition)` | Find objects by single condition |
| Query multi-condition | `QueryObjectsMultiCondition(templateOrInstance, conditions)` | Find objects by multiple conditions |
| Create conditions | `CreateConditionsObject()` | Create an IConditions for multi-condition queries |

### Condition (ICondition — Page 29, IConditions — Pages 30–32)

| Property/Method | Description |
|---|---|
| `Kind` | Condition type (EConditionType) |
| `Value` | Value to search for |
| `Negation` | Negate the expression |
| `Add(condition)` | Add a condition to the collection |
| `Remove(index)` | Remove a condition |
| `Join(condition)` | Join two conditions |

## Template Operations (ITemplate — Pages 182–207)

| Operation | Method | Description |
|---|---|---|
| Create instance | `CreateInstance(name, createContainedObjects)` | Create a single instance from template |
| Create instances | `CreateInstances(tagnames[], createContainedObjects)` | Create multiple instances from template |
| Create derived template | `CreateTemplate(name, createContainedObjects)` | Derive a new template |
| Delete template | `DeleteTemplate(forceOption)` | Delete the template |
| Check out | `CheckOut()` | Check out for editing |
| Check in | `CheckIn(comment)` | Check in with comment |
| Undo check out | `UndoCheckOut()` | Discard checkout changes |
| Save | `Save()` | Save after configuration |
| Unload | `Unload()` | Release object cache |
| Add UDA | `AddUDA(name, dataType, category, security, isArray, arrayCount)` | Add a user-defined attribute |
| Delete UDA | `DeleteUDA(name)` | Delete a UDA |
| Rename UDA | `RenameUDA(oldName, newName)` | Rename a UDA |
| Update UDA | `UpdateUDA(name, dataType, category, security, isArray, arrayCount)` | Modify a UDA |
| Add extension primitive | `AddExtensionPrimitive(type, name, isObjectExtension)` | Add an extension primitive |
| Delete extension primitive | `DeleteExtensionPrimitive(type, name)` | Delete an extension primitive |
| Rename extension primitive | `RenameExtensionPrimitive(oldName, newName)` | Rename an extension primitive |
| Get extended attributes | `GetExtendedAttributes(attrName, upToLevel, categories[])` | Get attributes across hierarchy |
| Get help URL | `GetObjectHelpURL()` | Get object help URL |

### Template Properties (ITemplate — Pages 182–207)

| Property | Description |
|---|---|
| `Tagname` | Object tagname (read/write) |
| `ContainedName` | Contained name (read/write) |
| `HierarchicalName` | Full hierarchical name (read-only) |
| `DerivedFrom` | Parent template name |
| `BasedOn` | Root ancestor template name |
| `Category` | Object category (ECATEGORY) |
| `CategoryGUID` | Category GUID |
| `Container` | Container object (read/write) |
| `Area` | Area object (read/write) |
| `Host` | Host assignment (read/write) |
| `Toolset` | Toolset membership (read/write) |
| `Attributes` | All attributes collection |
| `ConfigurableAttributes` | Editable attributes collection |
| `ConfigVersion` | Configuration version number |
| `CheckoutStatus` | Checkout status (ECheckoutStatus) |
| `CheckedOutBy` | User who checked out |
| `EditStatus` | Edit status (EEditStatus) |
| `ValidationStatus` | Validation status (EPACKAGESTATUS) |
| `Errors` | Validation error list |
| `Warnings` | Validation warning list |
| `CommandResult` | Last operation result |
| `CommandResults` | Last batch operation results |

## Instance Operations (IInstance — Pages 104–133)

| Operation | Method | Description |
|---|---|---|
| Delete instance | `DeleteInstance()` | Delete this instance |
| Deploy | `Deploy()` | Deploy the instance |
| Deploy (extended) | `DeployEx(...)` | Deploy with extended options |
| Undeploy | `Undeploy()` | Undeploy the instance |
| Undeploy (extended) | `UndeployEx(...)` | Undeploy with extended options |
| Upload | `Upload()` | Upload runtime config changes |
| Upload (extended) | `UploadEx(...)` | Upload with extended options |
| Check out | `CheckOut()` | Check out for editing |
| Check in | `CheckIn(comment)` | Check in with comment |
| Undo check out | `UndoCheckOut()` | Discard checkout changes |
| Save | `Save()` | Save after configuration |
| Unload | `Unload()` | Release object cache |
| Add UDA | `AddUDA(name, dataType, category, security, isArray, arrayCount)` | Add a user-defined attribute |
| Delete UDA | `DeleteUDA(name)` | Delete a UDA |
| Rename UDA | `RenameUDA(oldName, newName)` | Rename a UDA |
| Update UDA | `UpdateUDA(name, dataType, category, security, isArray, arrayCount)` | Modify a UDA |
| Add extension primitive | `AddExtensionPrimitive(type, name, isObjectExtension)` | Add an extension primitive |
| Delete extension primitive | `DeleteExtensionPrimitive(type, name)` | Delete an extension primitive |
| Rename extension primitive | `RenameExtensionPrimitive(oldName, newName)` | Rename an extension primitive |
| Get extended attributes | `GetExtendedAttributes(attrName, upToLevel, categories[])` | Get attributes across hierarchy |
| Get help URL | `GetObjectHelpURL()` | Get object help URL |

### Instance Properties (IInstance — Pages 104–133)

All properties from ITemplate above, plus:

| Property | Description |
|---|---|
| `DeployedVersion` | Config version at last deploy |
| `DeploymentStatus` | Deploy status (EDeploymentStatus) |

## Bulk Object Operations (IgObjects — Pages 87–101)

| Operation | Method | Description |
|---|---|---|
| Check out (bulk) | `CheckOut()` | Check out all objects in collection |
| Check in (bulk) | `CheckIn(comment)` | Check in all objects |
| Undo check out (bulk) | `UndoCheckOut()` | Undo checkout for all objects |
| Deploy (bulk) | `Deploy()` | Deploy all instances in collection |
| Deploy (bulk extended) | `DeployEx(...)` | Deploy with extended options |
| Undeploy (bulk) | `Undeploy()` | Undeploy all instances |
| Undeploy (bulk extended) | `UndeployEx(...)` | Undeploy with extended options |
| Upload (bulk) | `Upload()` | Upload runtime changes for all |
| Upload (bulk extended) | `UploadEx(...)` | Upload with extended options |
| Delete all | `DeleteAllObjects()` | Delete all objects in collection |
| Export objects | `ExportObjects(exportType, outputFile)` | Export objects from galaxy |
| Export as protected | `ExportObjectsAsProtected(...)` | Export as protected |
| Add to collection | `Add(gObject)` | Add an object to the list |
| Add from collection | `AddFromCollection(gObjects)` | Merge another collection |
| Set area (bulk) | `Area` (set) | Set area for all objects |
| Set host (bulk) | `Host` (set) | Set host for all objects |
| Set container (bulk) | `Container` (set) | Set container for all objects |
| Set security group (bulk) | `SecurityGroup` (set) | Set security group for all objects |

## Attribute Operations (IAttribute — Pages 13–20, IAttributes — Pages 21–24)

### IAttribute

| Operation | Method/Property | Description |
|---|---|---|
| Get value | `Value` | Get the attribute value (IMxValue) |
| Set value | `SetValue(mxValue)` | Set the attribute value |
| Get name | `Name` | Attribute name |
| Get data type | `DataType` | Attribute data type (MxDataType) |
| Get category | `AttributeCategory` | Attribute category |
| Get security | `SecurityClassification` | Security classification |
| Set security | `SetSecurityClassification(classification)` | Change security classification |
| Get locked state | `Locked` | Whether attribute is locked |
| Set locked state | `SetLocked(locked)` | Lock/unlock the attribute |
| Get has buffer | `HasBuffer` | Whether attribute has a buffer |
| Set has buffer | `SetHasBuffer(hasBuffer)` | Set buffer flag |
| Get array bound | `UpperBoundDim1` | Upper bound of first dimension |
| Get set handlers | `RtSethandler` / `CfgSethandler` | Runtime/config set handlers |

### IAttributes Collection

| Property | Description |
|---|---|
| `Item[nameOrIndex]` | Get attribute by name or 1-based index |
| `Count` | Number of attributes |
| `ShortDescription` | Short description of the object |
| `ExecutionOrder` | Execution order name |
| `SecurityGroup` | Security group name |
| `ExecutionRelatedObject` | Execution related object name |

## Import / Export (IGalaxy — Pages 43–44, 52–55)

| Operation | Method | Description |
|---|---|---|
| Import objects | `ImportObjects(inputFile, overwritesAllowed)` | Import objects from file |
| Import objects (extended) | `ImportObjectsEx(inputFile, versionConflict, nameConflict, appendName)` | Import with conflict resolution |
| Import script library | `ImportScriptLib(path)` | Import a script library |
| Export all | `ExportAll(exportType, outputFile)` | Export all galaxy objects |
| GR Load | `GRLoad(csvFilePath, grLoadMode)` | Load galaxy from CSV file |

## Toolset Management (IToolset — Pages 207–209, IToolsets — Pages 210–213)

| Operation | Method | Description |
|---|---|---|
| Query toolsets | `galaxy.QueryToolsets()` | Get all toolsets |
| Query toolsets (extended) | `galaxy.QueryToolsetsEx(folderType)` | Get toolsets by folder type |
| Add toolset | `toolsets.Add(name)` | Add a new toolset |
| Add child toolset | `toolsets.AddToolSet(name, parentToolset)` | Add toolset under parent |
| Delete toolset | `toolsets.DeleteToolSet(name)` | Delete a toolset |
| Rename toolset | `toolset.Rename(newName)` | Rename a toolset |
| Move toolset | `toolset.MoveToToolset(newParent)` | Move to different parent |
| Get children | `toolset.GetChildToolsets()` | Get child toolsets |

## Script Library Management (IScriptLibrary — Pages 175–177, IScriptLibraries — Pages 173–175)

| Operation | Method | Description |
|---|---|---|
| Query script libraries | `galaxy.QueryScriptLibraries()` | Get all script libraries |
| Add script library | `scriptLibraries.Add(name)` | Add a new script library |
| Export script library | `scriptLibrary.Export(path)` | Export a script library to file |
| Get name | `scriptLibrary.Name` | Script library name |

## Security (IGalaxySecurity — Pages 59–62)

| Operation | Method/Property | Description |
|---|---|---|
| Get security settings | `galaxy.GetSecuritySettings()` | Get IGalaxySecurity object |
| Get read-only security | `galaxy.GetReadOnlySecurity()` | Get security in read-only mode |
| Authentication mode | `security.AuthenticationMode` | Galaxy auth mode |
| Available roles | `security.RolesAvailable` | Collection of configured roles |
| Available users | `security.UsersAvailable` | Collection of configured users |
| Available security groups | `security.SecurityGroupsAvailable` | Collection of security groups |
| Login time | `security.LoginTime` | Configured login timeout |
| Role update interval | `security.RoleUpdateInterval` | Role update interval |

### Galaxy Roles (IGalaxyRole — Pages 55–57, IGalaxyRoles — Pages 57–59)

| Property | Description |
|---|---|
| `RoleName` | Role name |
| `AccessLevel` | Access level |
| `Permissions` | General permissions (IPermissions) |
| `OperationalPermissions` | Operational permissions (IPermissions) |

### Galaxy Users (IGalaxyUser — Pages 62–64, IGalaxyUsers — Pages 64–65)

| Property | Description |
|---|---|
| `UserName` | `domain\username` |
| `FullName` | `first last` |
| `AssociatedRoles` | Roles collection |

### Permissions (IPermission — Pages 167–171, IPermissions — Pages 171–172)

| Property | Description |
|---|---|
| `PermissionName` | Permission name |
| `PermissionParentName` | Parent permission name |
| `IsConfigured` | Whether permission is active |
| `HasChildren` | Whether it has child permissions |
| `ChildPermissions` | Child permissions collection |
| `IsSecurityGroup` | Whether it's a security group |
| `SecurityGroup` | Associated security group |

### Security Groups (ISecurityGroup — Pages 177–178, ISecurityGroups — Pages 178–179)

| Property | Description |
|---|---|
| `GroupName` | Security group name |
| `gObjects` | Objects in this security group |

## Settings (ISettings — Pages 180–182)

| Operation | Method | Description |
|---|---|---|
| Get settings | `galaxy.GetLocaleSettings()` / `galaxy.GetTimeMasterSettings()` | Retrieve settings |
| Get instance | `settings.Instance` | Get the instance for configuring |
| Save & close | `settings.Close()` | Save and check in settings |
| Cancel | `settings.Cancel()` | Cancel without saving |

## User Defaults (IGalaxy — Pages 45–47)

| Operation | Method | Description |
|---|---|---|
| Get user defaults | `GetUserDefaults(userDefault)` | Get logged-in user's defaults |
| Set user defaults | `SetUserDefaults(userDefault, value)` | Set user defaults |

## Error Checking (ICommandResult — Pages 25–26, ICommandResults — Pages 26–28)

| Property | Description |
|---|---|
| `Successful` | Whether the operation succeeded |
| `Text` | Description of the result code |
| `ID` | Result reason code (EGRCommandResult) |
| `CustomMessage` | Custom message |
| `CompletelySuccessful` | (ICommandResults) All results successful |
| `Count` | (ICommandResults) Number of results |
| `Item[index]` | (ICommandResults) Get result by index |

## Utility (IGalaxy — Pages 43, 50–51)

| Operation | Method | Description |
|---|---|---|
| Create empty collection | `CreategObjectCollection()` | Create an empty IgObjects collection |
| Get CDI version | `CdiVersionString` | CDI version string |
