Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@ docs/GroupRemoteInfoGitlabGroup.md
docs/GroupRemoteInfoGoogleGroup.md
docs/GroupRemoteInfoLdapGroup.md
docs/GroupRemoteInfoOktaGroup.md
docs/GroupRemoteInfoOktaGroupRule.md
docs/GroupRemoteInfoSnowflakeRole.md
docs/GroupRemoteInfoWorkdayUserSecurityGroup.md
docs/GroupResource.md
docs/GroupResourceList.md
docs/GroupTypeEnum.md
Expand Down Expand Up @@ -298,7 +300,9 @@ opal_security/models/group_remote_info_gitlab_group.py
opal_security/models/group_remote_info_google_group.py
opal_security/models/group_remote_info_ldap_group.py
opal_security/models/group_remote_info_okta_group.py
opal_security/models/group_remote_info_okta_group_rule.py
opal_security/models/group_remote_info_snowflake_role.py
opal_security/models/group_remote_info_workday_user_security_group.py
opal_security/models/group_resource.py
opal_security/models/group_resource_list.py
opal_security/models/group_type_enum.py
Expand Down Expand Up @@ -435,4 +439,6 @@ setup.cfg
setup.py
test-requirements.txt
test/__init__.py
test/test_group_remote_info_okta_group_rule.py
test/test_group_remote_info_workday_user_security_group.py
tox.ini
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,9 @@ Class | Method | HTTP request | Description
- [GroupRemoteInfoGoogleGroup](docs/GroupRemoteInfoGoogleGroup.md)
- [GroupRemoteInfoLdapGroup](docs/GroupRemoteInfoLdapGroup.md)
- [GroupRemoteInfoOktaGroup](docs/GroupRemoteInfoOktaGroup.md)
- [GroupRemoteInfoOktaGroupRule](docs/GroupRemoteInfoOktaGroupRule.md)
- [GroupRemoteInfoSnowflakeRole](docs/GroupRemoteInfoSnowflakeRole.md)
- [GroupRemoteInfoWorkdayUserSecurityGroup](docs/GroupRemoteInfoWorkdayUserSecurityGroup.md)
- [GroupResource](docs/GroupResource.md)
- [GroupResourceList](docs/GroupResourceList.md)
- [GroupTypeEnum](docs/GroupTypeEnum.md)
Expand Down
40 changes: 40 additions & 0 deletions api/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,26 @@ info:
servers:
- description: Production
url: https://api.opal.dev/v1
# keep tags alphabetized, also add any new tags to the list below
tags:
- name: access-rules
- name: apps
- name: bundles
- name: configuration-templates
- name: events
- name: groups
- name: group-bindings
- name: idp-group-mappings
- name: message-channels
- name: non-human-identities
- name: on-call-schedules
- name: owners
- name: requests
- name: resources
- name: sessions
- name: tags
- name: uars
- name: users
paths:
/apps:
get:
Expand Down Expand Up @@ -6323,6 +6343,26 @@ components:
type: object
required:
- role_id
okta_group_rule:
description: Remote info for Okta Directory group rule.
properties:
rule_id:
description: The id of the Okta group rule.
example: 0pr3f7zMZZHPgUoWO0g4
type: string
type: object
required:
- rule_id
workday_user_security_group:
description: Remote info for Workday User Security group.
properties:
group_id:
description: The id of the Workday User Security group.
example: 123abc456def
type: string
type: object
required:
- group_id
type: object
ResourceRemoteInfo:
description: Information that defines the remote resource. This replaces the deprecated remote_id and metadata fields.
Expand Down
2 changes: 2 additions & 0 deletions docs/GroupRemoteInfo.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ Name | Type | Description | Notes
**azure_ad_security_group** | [**GroupRemoteInfoAzureAdSecurityGroup**](GroupRemoteInfoAzureAdSecurityGroup.md) | | [optional]
**azure_ad_microsoft_365_group** | [**GroupRemoteInfoAzureAdMicrosoft365Group**](GroupRemoteInfoAzureAdMicrosoft365Group.md) | | [optional]
**snowflake_role** | [**GroupRemoteInfoSnowflakeRole**](GroupRemoteInfoSnowflakeRole.md) | | [optional]
**okta_group_rule** | [**GroupRemoteInfoOktaGroupRule**](GroupRemoteInfoOktaGroupRule.md) | | [optional]
**workday_user_security_group** | [**GroupRemoteInfoWorkdayUserSecurityGroup**](GroupRemoteInfoWorkdayUserSecurityGroup.md) | | [optional]

## Example

Expand Down
30 changes: 30 additions & 0 deletions docs/GroupRemoteInfoOktaGroupRule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# GroupRemoteInfoOktaGroupRule

Remote info for Okta Directory group rule.

## Properties

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**rule_id** | **str** | The id of the Okta group rule. |

## Example

```python
from opal_security.models.group_remote_info_okta_group_rule import GroupRemoteInfoOktaGroupRule

# TODO update the JSON string below
json = "{}"
# create an instance of GroupRemoteInfoOktaGroupRule from a JSON string
group_remote_info_okta_group_rule_instance = GroupRemoteInfoOktaGroupRule.from_json(json)
# print the JSON string representation of the object
print(GroupRemoteInfoOktaGroupRule.to_json())

# convert the object into a dict
group_remote_info_okta_group_rule_dict = group_remote_info_okta_group_rule_instance.to_dict()
# create an instance of GroupRemoteInfoOktaGroupRule from a dict
group_remote_info_okta_group_rule_from_dict = GroupRemoteInfoOktaGroupRule.from_dict(group_remote_info_okta_group_rule_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)


30 changes: 30 additions & 0 deletions docs/GroupRemoteInfoWorkdayUserSecurityGroup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# GroupRemoteInfoWorkdayUserSecurityGroup

Remote info for Workday User Security group.

## Properties

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**group_id** | **str** | The id of the Workday User Security group. |

## Example

```python
from opal_security.models.group_remote_info_workday_user_security_group import GroupRemoteInfoWorkdayUserSecurityGroup

# TODO update the JSON string below
json = "{}"
# create an instance of GroupRemoteInfoWorkdayUserSecurityGroup from a JSON string
group_remote_info_workday_user_security_group_instance = GroupRemoteInfoWorkdayUserSecurityGroup.from_json(json)
# print the JSON string representation of the object
print(GroupRemoteInfoWorkdayUserSecurityGroup.to_json())

# convert the object into a dict
group_remote_info_workday_user_security_group_dict = group_remote_info_workday_user_security_group_instance.to_dict()
# create an instance of GroupRemoteInfoWorkdayUserSecurityGroup from a dict
group_remote_info_workday_user_security_group_from_dict = GroupRemoteInfoWorkdayUserSecurityGroup.from_dict(group_remote_info_workday_user_security_group_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)


2 changes: 2 additions & 0 deletions opal_security/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,9 @@
from opal_security.models.group_remote_info_google_group import GroupRemoteInfoGoogleGroup
from opal_security.models.group_remote_info_ldap_group import GroupRemoteInfoLdapGroup
from opal_security.models.group_remote_info_okta_group import GroupRemoteInfoOktaGroup
from opal_security.models.group_remote_info_okta_group_rule import GroupRemoteInfoOktaGroupRule
from opal_security.models.group_remote_info_snowflake_role import GroupRemoteInfoSnowflakeRole
from opal_security.models.group_remote_info_workday_user_security_group import GroupRemoteInfoWorkdayUserSecurityGroup
from opal_security.models.group_resource import GroupResource
from opal_security.models.group_resource_list import GroupResourceList
from opal_security.models.group_type_enum import GroupTypeEnum
Expand Down
2 changes: 2 additions & 0 deletions opal_security/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,9 @@
from opal_security.models.group_remote_info_google_group import GroupRemoteInfoGoogleGroup
from opal_security.models.group_remote_info_ldap_group import GroupRemoteInfoLdapGroup
from opal_security.models.group_remote_info_okta_group import GroupRemoteInfoOktaGroup
from opal_security.models.group_remote_info_okta_group_rule import GroupRemoteInfoOktaGroupRule
from opal_security.models.group_remote_info_snowflake_role import GroupRemoteInfoSnowflakeRole
from opal_security.models.group_remote_info_workday_user_security_group import GroupRemoteInfoWorkdayUserSecurityGroup
from opal_security.models.group_resource import GroupResource
from opal_security.models.group_resource_list import GroupResourceList
from opal_security.models.group_type_enum import GroupTypeEnum
Expand Down
16 changes: 14 additions & 2 deletions opal_security/models/group_remote_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@
from opal_security.models.group_remote_info_google_group import GroupRemoteInfoGoogleGroup
from opal_security.models.group_remote_info_ldap_group import GroupRemoteInfoLdapGroup
from opal_security.models.group_remote_info_okta_group import GroupRemoteInfoOktaGroup
from opal_security.models.group_remote_info_okta_group_rule import GroupRemoteInfoOktaGroupRule
from opal_security.models.group_remote_info_snowflake_role import GroupRemoteInfoSnowflakeRole
from opal_security.models.group_remote_info_workday_user_security_group import GroupRemoteInfoWorkdayUserSecurityGroup
from typing import Optional, Set
from typing_extensions import Self

Expand All @@ -47,8 +49,10 @@ class GroupRemoteInfo(BaseModel):
azure_ad_security_group: Optional[GroupRemoteInfoAzureAdSecurityGroup] = None
azure_ad_microsoft_365_group: Optional[GroupRemoteInfoAzureAdMicrosoft365Group] = None
snowflake_role: Optional[GroupRemoteInfoSnowflakeRole] = None
okta_group_rule: Optional[GroupRemoteInfoOktaGroupRule] = None
workday_user_security_group: Optional[GroupRemoteInfoWorkdayUserSecurityGroup] = None
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["active_directory_group", "github_team", "gitlab_group", "google_group", "ldap_group", "okta_group", "duo_group", "azure_ad_security_group", "azure_ad_microsoft_365_group", "snowflake_role"]
__properties: ClassVar[List[str]] = ["active_directory_group", "github_team", "gitlab_group", "google_group", "ldap_group", "okta_group", "duo_group", "azure_ad_security_group", "azure_ad_microsoft_365_group", "snowflake_role", "okta_group_rule", "workday_user_security_group"]

model_config = ConfigDict(
populate_by_name=True,
Expand Down Expand Up @@ -121,6 +125,12 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of snowflake_role
if self.snowflake_role:
_dict['snowflake_role'] = self.snowflake_role.to_dict()
# override the default output from pydantic by calling `to_dict()` of okta_group_rule
if self.okta_group_rule:
_dict['okta_group_rule'] = self.okta_group_rule.to_dict()
# override the default output from pydantic by calling `to_dict()` of workday_user_security_group
if self.workday_user_security_group:
_dict['workday_user_security_group'] = self.workday_user_security_group.to_dict()
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
Expand All @@ -147,7 +157,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"duo_group": GroupRemoteInfoDuoGroup.from_dict(obj["duo_group"]) if obj.get("duo_group") is not None else None,
"azure_ad_security_group": GroupRemoteInfoAzureAdSecurityGroup.from_dict(obj["azure_ad_security_group"]) if obj.get("azure_ad_security_group") is not None else None,
"azure_ad_microsoft_365_group": GroupRemoteInfoAzureAdMicrosoft365Group.from_dict(obj["azure_ad_microsoft_365_group"]) if obj.get("azure_ad_microsoft_365_group") is not None else None,
"snowflake_role": GroupRemoteInfoSnowflakeRole.from_dict(obj["snowflake_role"]) if obj.get("snowflake_role") is not None else None
"snowflake_role": GroupRemoteInfoSnowflakeRole.from_dict(obj["snowflake_role"]) if obj.get("snowflake_role") is not None else None,
"okta_group_rule": GroupRemoteInfoOktaGroupRule.from_dict(obj["okta_group_rule"]) if obj.get("okta_group_rule") is not None else None,
"workday_user_security_group": GroupRemoteInfoWorkdayUserSecurityGroup.from_dict(obj["workday_user_security_group"]) if obj.get("workday_user_security_group") is not None else None
})
# store additional fields in additional_properties
for _key in obj.keys():
Expand Down
101 changes: 101 additions & 0 deletions opal_security/models/group_remote_info_okta_group_rule.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# coding: utf-8

"""
Opal API

The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.

The version of the OpenAPI document: 1.0
Contact: [email protected]
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
""" # noqa: E501


from __future__ import annotations
import pprint
import re # noqa: F401
import json

from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self

class GroupRemoteInfoOktaGroupRule(BaseModel):
"""
Remote info for Okta Directory group rule.
""" # noqa: E501
rule_id: StrictStr = Field(description="The id of the Okta group rule.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["rule_id"]

model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)


def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))

def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())

@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of GroupRemoteInfoOktaGroupRule from a JSON string"""
return cls.from_dict(json.loads(json_str))

def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.

This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:

* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
* Fields in `self.additional_properties` are added to the output dict.
"""
excluded_fields: Set[str] = set([
"additional_properties",
])

_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
_dict[_key] = _value

return _dict

@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of GroupRemoteInfoOktaGroupRule from a dict"""
if obj is None:
return None

if not isinstance(obj, dict):
return cls.model_validate(obj)

_obj = cls.model_validate({
"rule_id": obj.get("rule_id")
})
# store additional fields in additional_properties
for _key in obj.keys():
if _key not in cls.__properties:
_obj.additional_properties[_key] = obj.get(_key)

return _obj


Loading