@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Management Groups API
@base https://management.azure.com
@version 2018-03-01-preview
@auth OAuth2
@common_fields {api-version: any # Version of the API to be used with the client request. The current version is 2018-01-01-preview.}
@endpoints 13
@toc providers(13)

@endpoint GET /providers/Microsoft.Management/managementGroups
@desc List management groups for the authenticated user.
@optional {Cache-Control: any # Indicates that the request shouldn't utilize any caches., $skiptoken: any # Page continuation token is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls.}
@returns(200) OK

@endpoint GET /providers/Microsoft.Management/managementGroups/{groupId}
@desc Get the details of the management group.
@required {groupId: any # Management Group ID.}
@optional {$expand: any # The $expand=children query string parameter allows clients to request inclusion of children in the response payload., $recurse: any # The $recurse=true query string parameter allows clients to request inclusion of entire hierarchy in the response payload. Note that  $expand=children must be passed up if $recurse is set to true., $filter: any # A filter which allows the exclusion of subscriptions from results (i.e. '$filter=children.childType ne Subscription'), Cache-Control: any # Indicates that the request shouldn't utilize any caches.}
@returns(200) OK

@endpoint PUT /providers/Microsoft.Management/managementGroups/{groupId}
@desc Create or update a management group. If a management group is already created and a subsequent create request is issued with different properties, the management group properties will be updated.
@required {groupId: any # Management Group ID., createManagementGroupRequest: map # Management group creation parameters.}
@optional {Cache-Control: any # Indicates that the request shouldn't utilize any caches.}
@returns(200) OK
@returns(202) Accepted

@endpoint PATCH /providers/Microsoft.Management/managementGroups/{groupId}
@desc Update a management group.
@required {groupId: any # Management Group ID., patchGroupRequest: map # Management group patch parameters.}
@optional {Cache-Control: any # Indicates that the request shouldn't utilize any caches.}
@returns(200) OK

@endpoint DELETE /providers/Microsoft.Management/managementGroups/{groupId}
@desc Delete management group. If a management group contains child resources, the request will fail.
@required {groupId: any # Management Group ID.}
@optional {Cache-Control: any # Indicates that the request shouldn't utilize any caches.}
@returns(202) Accepted
@returns(204) NoContent

@endpoint GET /providers/Microsoft.Management/managementGroups/{groupId}/descendants
@desc List all entities that descend from a management group.
@required {groupId: any # Management Group ID.}
@optional {$skiptoken: any # Page continuation token is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls., $top: any # Number of elements to return when retrieving results. Passing this in will override $skipToken.}
@returns(200) OK

@endpoint PUT /providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}
@desc Associates existing subscription with the management group.
@required {groupId: any # Management Group ID., subscriptionId: any # Subscription ID.}
@optional {Cache-Control: any # Indicates that the request shouldn't utilize any caches.}
@returns(204) NoContent

@endpoint DELETE /providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}
@desc De-associates subscription from the management group.
@required {groupId: any # Management Group ID., subscriptionId: any # Subscription ID.}
@optional {Cache-Control: any # Indicates that the request shouldn't utilize any caches.}
@returns(204) NoContent

@endpoint GET /providers/Microsoft.Management/operations
@desc Lists all of the available Management REST API operations.
@returns(200) OK. The request has succeeded.

@endpoint POST /providers/Microsoft.Management/checkNameAvailability
@desc Checks if the specified management group name is valid and unique
@required {checkNameAvailabilityRequest: map # Management group name availability check parameters.}
@returns(200) OK. The request has succeeded.

@endpoint POST /providers/Microsoft.Management/getEntities
@desc List all entities (Management Groups, Subscriptions, etc.) for the authenticated user.
@optional {$skiptoken: any # Page continuation token is only used if a previous operation returned a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls., $skip: any # Number of entities to skip over when retrieving results. Passing this in will override $skipToken., $top: any # Number of elements to return when retrieving results. Passing this in will override $skipToken., $select: any # This parameter specifies the fields to include in the response. Can include any combination of Name,DisplayName,Type,ParentDisplayNameChain,ParentChain, e.g. '$select=Name,DisplayName,Type,ParentDisplayNameChain,ParentNameChain'. When specified the $select parameter can override select in $skipToken., $search: any # The $search parameter is used in conjunction with the $filter parameter to return three different outputs depending on the parameter passed in. With $search=AllowedParents the API will return the entity info of all groups that the requested entity will be able to reparent to as determined by the user's permissions. With $search=AllowedChildren the API will return the entity info of all entities that can be added as children of the requested entity. With $search=ParentAndFirstLevelChildren the API will return the parent and  first level of children that the user has either direct access to or indirect access via one of their descendants., $filter: any # The filter parameter allows you to filter on the name or display name fields. You can check for equality on the name field (e.g. name eq '{entityName}')  and you can check for substrings on either the name or display name fields(e.g. contains(name, '{substringToSearch}'), contains(displayName, '{substringToSearch')). Note that the '{entityName}' and '{substringToSearch}' fields are checked case insensitively., $view: any # The view parameter allows clients to filter the type of data that is returned by the getEntities call., groupName: any # A filter which allows the get entities call to focus on a particular group (i.e. "$filter=name eq 'groupName'"), Cache-Control: any # Indicates that the request shouldn't utilize any caches.}
@returns(200) OK

@endpoint POST /providers/Microsoft.Management/startTenantBackfill
@desc Starts backfilling subscriptions for the Tenant.
@returns(200) OK. The request has succeeded.

@endpoint POST /providers/Microsoft.Management/tenantBackfillStatus
@desc Gets tenant backfill status
@returns(200) OK. The request has succeeded.

@end
