Description
As of Chocolatey Central Management v0.4.0, the API is exposed via Swagger.
The API documentation and examples can be reached from your Chocolatey Central Management dashboard by selecting the API option on the left sidebar.
The information contained there is referenced here, but you can additionally try out the various API endpoints directly from the Swagger API page for your own CCM environment.
The Swagger UI does not work in Internet Explorer. Please use another browser.
ChocoCCM
The ChocoCCM PowerShell module is available from the PowerShell Gallery for use with Chocolatey Central Management v0.4.0 and later.
This module contains PowerShell commands designed for interfacing with the Chocolatey Central Management API directly.
See the ChocoCCM Function Reference page for a full list of commands and their associated documentation.
Authentication
Before being able to utilise the Chocolatey Central Management API, you will need to create an authenticated session.
This can be done by targeting the /Account/Login
endpoint and submitting the username and password.
You will need to use the authenticated session variable for any API calls.
# Replace 'chocoserver' with the hostname of your CCM server in your environment
$CcmServerHostname = 'chocoserver'
$Credential = Get-Credential
$body = @{
usernameOrEmailAddress = $Credential.UserName
password = $Credential.GetNetworkCredential().Password
}
$Result = Invoke-WebRequest -Uri "https://$CcmServerHostname/Account/Login" -Method POST -ContentType 'application/x-www-form-urlencoded' -Body $body -SessionVariable Session -ErrorAction Stop
While authenticated, you can target API endpoints like this:
# The $Session variable name must match the string given to -SessionVariable when authenticating.
Invoke-WebRequest -Uri "https://$CcmServerHostname/$endpointUrl" -Method $Method -Body $Parameters -Session $Session
Endpoints
Below is a list of the API endpoints available for Chocolatey Central Management as of v0.10.0.
For more detailed information on the API endpoints and their parameters for your version of Chocolatey Central Management, select the API option from the sidebar on the Central Management dashboard, or navigate to https://CCM_SERVER_HOSTNAME/swagger/
.
AuditLog
Method | EndpointUrl |
---|
GET | /api/services/app/AuditLog/GetAuditLogs |
Method | EndpointUrl |
---|
GET | /api/services/app/ChocolateyLicenseInformation/GetLicenseCount |
GET | /api/services/app/ChocolateyLicenseInformation/GetLicenseExpiration |
GET | /api/services/app/ChocolateyLicenseInformation/GetIsTrialLicense |
GET | /api/services/app/ChocolateyLicenseInformation/GetIsLicenseCountValid |
ComputerGroup
Method | EndpointUrl |
---|
GET | /api/services/app/ComputerGroup/GetAllByComputerId |
GET | /api/services/app/ComputerGroup/GetAllByGroupId |
POST | /api/services/app/ComputerGroup/CreateOrEdit |
DELETE | /api/services/app/ComputerGroup/Delete |
Computers
Method | EndpointUrl |
---|
GET | /api/services/app/Computers/GetComputerCount |
GET | /api/services/app/Computers/GetAllPaged |
GET | /api/services/app/Computers/GetAll |
GET | /api/services/app/Computers/GetComputerForView |
GET | /api/services/app/Computers/GetComputerForEditByComputerGuid |
GET | /api/services/app/Computers/GetComputerForEdit |
POST | /api/services/app/Computers/Edit |
DELETE | /api/services/app/Computers/Delete |
ComputerSoftware
Methods for querying or managing mappings between Computer objects and Software entries
Method | EndpointUrl |
---|
GET | /api/services/app/ComputerSoftware/GetAllByComputerId |
GET | /api/services/app/ComputerSoftware/GetAllPagedByComputerId |
GET | /api/services/app/ComputerSoftware/GetAllBySoftwareId |
GET | /api/services/app/ComputerSoftware/GetAllPagedBySoftwareId |
DeploymentPlans
Method | EndpointUrl |
---|
GET | /api/services/app/DeploymentPlans/GetAllPaged |
GET | /api/services/app/DeploymentPlans/GetAll |
GET | /api/services/app/DeploymentPlans/GetDeploymentPlanForView |
GET | /api/services/app/DeploymentPlans/GetAllScheduledDeploymentPlansReadyToStart |
GET | /api/services/app/DeploymentPlans/GetDeploymentPlanForEdit |
POST | /api/services/app/DeploymentPlans/CreateOrEdit |
DELETE | /api/services/app/DeploymentPlans/Delete |
DELETE | /api/services/app/DeploymentPLans/DeleteNewDraftDeploymentPlan |
POST | /api/services/app/DeploymentPlans/Archive |
POST | /api/services/app/DeploymentPlans/Duplicate |
POST | /api/services/app/DeploymentPlans/Start |
POST | /api/services/app/DeploymentPlans/Cancel |
POST | /api/services/app/DeploymentPlans/MoveToReady |
DeploymentStepComputers
Method | EndpointUrl |
---|
GET | /api/services/app/DeploymentStepComputers/GetAllPagedByDeploymentStepId |
GET | /api/services/app/DeploymentStepComputers/GetAllByDeploymentStepId |
GET | /api/services/app/DeploymentStepComputers/GetDeploymentStepComputerForView |
GET | /api/services/app/DeploymentStepComputers/GetDeploymentStepComputerForEdit |
GET | /api/services/app/DeploymentStepComputers/GetReadyDeploymentStepComputerByMachineGuid |
GET | /api/services/app/DeploymentStepComputers/GetUnreachableDeploymentStepComputers |
GET | /api/services/app/DeploymentStepComputers/GetStaleActiveDeploymentStepComputers |
POST | /api/services/app/DeploymentStepComputers/CreateOrEdit |
DELETE | /api/services/app/DeploymentStepComputers/Delete |
GET | /api/services/app/DeploymentStepComputers/GetDeploymentStepDetailsToZip |
DeploymentStepGroups
Method | EndpointUrl |
---|
GET | /api/services/app/DeploymentStepGroups/GetDeploymentStepGroupForView |
GET | /api/services/app/DeploymentStepGroups/GetDeploymentStepGroupForEdit |
POST | /api/services/app/DeploymentStepGroups/CreateOrEdit |
DELETE | /api/services/app/DeploymentStepGroups/Delete |
DeploymentSteps
Method | EndpointUrl |
---|
GET | /api/services/app/DeploymentSteps/GetAllPagedByDeploymentPlanId |
GET | /api/services/app/DeploymentSteps/GetAllByDeploymentPlanId |
GET | /api/services/app/DeploymentSteps/GetDeploymentStepForView |
GET | /api/services/app/DeploymentSteps/GetDeploymentStepForEdit |
POST | /api/services/app/DeploymentSteps/CreateOrEdit |
POST | /api/services/app/DeploymentSteps/CreateOrEditPrivileged |
DELETE | /api/services/app/DeploymentSteps/Delete |
DELETE | /api/services/app/DeploymentSteps/DeletePrivileged |
Groups
Method | EndpointUrl |
---|
GET | /api/services/app/Groups/GetAllPaged |
GET | /api/services/app/Groups/GetAll |
GET | /api/services/app/Groups/GetGroupForEdit |
POST | /api/services/app/Groups/CreateOrEdit |
DELETE | /api/services/app/Groups/Delete |
OutdatedReports
Method | EndpointUrl |
---|
GET | /api/services/app/OutdatedReports/GetAllPaged |
GET | /api/services/app/OutdatedReports/GetAll |
GET | /api/services/app/OutdatedReports/GetAllByReportId |
POST | /api/services/app/OutdatedReports/Create |
DELETE | /api/services/app/OutdatedReports/Delete |
Permission
Method | EndpointUrl |
---|
GET | /api/services/app/Permission/GetAllPermissions |
Role
Method | EndpointUrl |
---|
GET | /api/services/app/Role/GetRoles |
GET | /api/services/app/Role/GetRoleForEdit |
POST | /api/services/app/Role/CreateOrUpdateRole |
DELETE | /api/services/app/Role/DeleteRole |
SensitiveVariables
Method | EndpointUrl |
---|
GET | /api/services/app/SensitiveVariables/GetAllPaged |
GET | /api/services/app/SensitiveVariables/GetAll |
GET | /api/services/app/SensitiveVariables/GetSensitiveVariableForView |
POST | /api/services/app/SensitiveVariables/Create |
DELETE | /api/services/app/SensitiveVariables/Delete |
Software
Method | EndpointUrl |
---|
GET | /api/services/app/Software/GetAll |
GET | /api/services/app/Software/GetAllCurrentlyInstalled |
GET | /api/services/app/Software/GetAllWithoutFilter |
GET | /api/services/app/Software/GetSoftwareByPackageId |
GET | /api/services/app/Software/GetSoftwareByPackageIdAndVersion |
GET | /api/services/app/Software/GetSoftwareForView |
GET | /api/services/app/Software/GetSoftwareForEdit |
GET | /api/services/app/Software/GetSoftwareForEditByPackageIdAndVersion |
TokenAuth
Method | EndpointUrl |
---|
POST | /api/TokenAuth/Authenticate |
POST | /api/TokenAuth/RefreshToken |
GET | /api/TokenAuth/LogOut |
POST | /api/TokenAuth/SendTwoFactorAuthCode |
POST | /api/TokenAuth/ImpersonatedAuthenticate |
POST | /api/TokenAuth/LinkedAccountAuthenticate |
GET | /api/TokenAuth/GetExternalAuthenticationProviders |
POST | /api/TokenAuth/ExternalAuthenticate |
GET | /api/TokenAuth/TestNotification |
WebLog
Method | EndpointUrl |
---|
GET | /api/services/app/WebLog/GetLatestWebLogs |
POST | /api/services/app/WebLog/DownloadWebLogs |