Coverage for src / main / python / services / enrollment.py: 100%
9 statements
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-17 22:29 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-17 22:29 +0000
1from typing import Any, cast
3import requests
6def generate_server_enrollment_token(
7 team_name: str,
8 project_name: str,
9 org_name: str,
10 bearer_token: str,
11 resource_group_id: str,
12 project_id: str,
13 description: str = "Generated by script",
14) -> dict[str, Any]:
15 """
16 Generate an enrollment token from Okta API.
18 Args:
19 team_name: The team name
20 project_name: The project name
21 org_name: The organization name
22 bearer_token: The bearer token for authentication
23 key_secret: The API key secret
25 Returns:
26 dict: The API response data
27 """
28 url = (
29 f"https://{org_name}.pam.okta.com/v1/teams/{team_name}/resource_groups/"
30 f"{resource_group_id}/projects/{project_id}/server_enrollment_tokens"
31 )
32 # POST endpoint for creating server enrollment tokens
34 payload = {"description": description}
36 headers = {
37 "Content-Type": "application/json",
38 "Authorization": f"Bearer {bearer_token}",
39 }
41 response = requests.post(url, json=payload, headers=headers)
42 response.raise_for_status() # Raise an exception for bad status codes
44 return cast(dict[str, Any], response.json())