Skip to content

Commit

Permalink
Security/corrections (#142)
Browse files Browse the repository at this point in the history
* A collection of small corrections for Security API spec.
- Added missing `security.update_all_distinguished_names` Operation.
- Corrected x-operation-group: `security.get_roles_mapping -> security.get_role_mappings`
- Renamed Message and `MessageStatus ->  SecurityOperationStatus`  and  `Message -> SecurityOperationMessage` for better clarity.
- Renamed `GetAuditConfig -> GetAuditConfiguration`, `PatchAuditConfig -> PatchAuditConfiguration`, and `UpdateAuditConfig -> UpdateAuditConfiguration` (along with their `x-operation-group`s) to match the naming in the [released Python client for Security namespace](https://github.com/opensearch-project/opensearch-py/blob/main/opensearchpy/client/security.py), and to stay consistent with other operations like `UpdateConfiguration`
- Reordered model definitions so that the structures closer to the root of of a multi-level map are defined first, for better readability.
- Corrected API Reference links
- Updated operation descriptions to have consistent language and more in-line with the API docs.
- Added missing descriptions.
- Corrected `audit.smithy -> audit_config.smithy` file.
- Moved `AuditConfigWithReadOnly` and `AuditConfigReadOnlyList` to `model/security/audit_config.smithy`

Signed-off-by: Theo Truong <[email protected]>

* replaced `_opendistro` with `_plugins`

Signed-off-by: Theo Truong <[email protected]>

* renamed Flush_Cache to FlushCache

Signed-off-by: Theo Truong <[email protected]>

* renamed UpdateAllDistinguishedNames to PatchDistinguishedNames

Signed-off-by: Theo Truong <[email protected]>

* moved GetDistinguishedNamesWithClusterName into the same location as GetDistinguishedNames since they are of the same operation group.

Signed-off-by: Theo Truong <[email protected]>

---------

Signed-off-by: Theo Truong <[email protected]>
  • Loading branch information
nhtruong committed Aug 15, 2023
1 parent fb20015 commit 561f5ba
Show file tree
Hide file tree
Showing 67 changed files with 232 additions and 193 deletions.
9 changes: 5 additions & 4 deletions model/opensearch.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -188,13 +188,13 @@ service OpenSearch {
FieldCaps_Get_WithIndex,
FieldCaps_Post,
FieldCaps_Post_WithIndex,
Flush_Cache,
FlushCache,
Get,
GetAccountDetails,
GetAllPits,
GetActionGroup,
GetActionGroups,
GetAuditConfig,
GetAuditConfiguration,
GetCertificates,
GetConfiguration,
GetDistinguishedNames,
Expand Down Expand Up @@ -361,8 +361,9 @@ service OpenSearch {
NodesUsage_WithNodeId,
PatchActionGroup,
PatchActionGroups,
PatchAuditConfig,
PatchAuditConfiguration,
PatchConfiguration,
PatchDistinguishedNames,
PatchRole,
PatchRoles,
PatchTenant,
Expand Down Expand Up @@ -433,7 +434,7 @@ service OpenSearch {
Termvectors_Post,
Termvectors_Post_WithId,
Update,
UpdateAuditConfig,
UpdateAuditConfiguration,
UpdateByQuery,
UpdateByQueryRethrottle,
UpdateConfiguration,
Expand Down
12 changes: 6 additions & 6 deletions model/security/action_group.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@
$version: "2"
namespace OpenSearch

list AllowedActions {
member: String
map ActionGroupsMap {
key: String,
value: Action_Group
}

structure Action_Group{
structure Action_Group {
reserved: Boolean,
hidden: Boolean,
allowed_actions: AllowedActions,
Expand All @@ -20,7 +21,6 @@ structure Action_Group{
static: Boolean
}

map ActionGroupsMap {
key: String,
value: Action_Group
list AllowedActions {
member: String
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@
$version: "2"
namespace OpenSearch

structure AuditConfigWithReadOnly {
_readonly: AuditConfigReadOnlyList,
config: AuditConfig
}

list AuditConfigReadOnlyList {
member: String
}

structure AuditConfig {
compliance: ComplianceConfig
enabled: Boolean
Expand All @@ -16,7 +25,7 @@ structure AuditConfig {
structure ComplianceConfig {
enabled: Boolean
write_log_diffs: Boolean
read_watched_fields: AttributesMap
read_watched_fields: Document
read_ignore_users: IgnoreUsersList
write_watched_indices: WriteWatchedIndices
write_ignore_users: WriteIgnoreUsers
Expand Down
2 changes: 1 addition & 1 deletion model/security/change_password/operations.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace OpenSearch
use opensearch.openapi#vendorExtensions

@externalDocumentation(
"API Reference": "https://opensearch.org/docs/latest/security/access-control/api/"
"API Reference": "https://opensearch.org/docs/latest/security/access-control/api/#change-password"
)

@vendorExtensions(
Expand Down
6 changes: 4 additions & 2 deletions model/security/change_password/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ namespace OpenSearch
@input
structure ChangePassword_Input{
@required
@documentation("The current password")
current_password: String
@required
@documentation("The new password to set")
password: String
}

@output
structure ChangePassword_Output{
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
5 changes: 3 additions & 2 deletions model/security/create_action_group/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ namespace OpenSearch
structure CreateActionGroup_Input {
@required
@httpLabel
@documentation("The name of the action group to create or replace")
action_group: String
@httpPayload
content: Action_Group
}

@output
structure CreateActionGroup_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
4 changes: 2 additions & 2 deletions model/security/create_role/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ structure CreateRole_Input{

@output
structure CreateRole_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
4 changes: 2 additions & 2 deletions model/security/create_role_mapping/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ structure CreateRoleMapping_Input{

@output
structure CreateRoleMapping_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
4 changes: 2 additions & 2 deletions model/security/create_tenant/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ structure CreateTenant_Input {

@output
structure CreateTenant_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}

structure CreateTenantParams{
Expand Down
4 changes: 2 additions & 2 deletions model/security/create_user/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ structure CreateUser_Input {

@output
structure CreateUser_Output {
status: MessageStatus
message: Message
status: SecurityOperationStatus
message: SecurityOperationMessage
}
2 changes: 1 addition & 1 deletion model/security/delete_action_group/operations.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ use opensearch.openapi#vendorExtensions
@readonly
@suppress(["HttpUriConflict", "HttpMethodSemantics.UnexpectedPayload"])
@http(method: "DELETE", uri: "/_plugins/_security/api/actiongroups/{action_group}")
@documentation("Delete specified action group.")
@documentation("Delete a specified action group.")
operation DeleteActionGroup {
input: DeleteActionGroup_Input,
output: DeleteActionGroup_Output
Expand Down
5 changes: 3 additions & 2 deletions model/security/delete_action_group/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@ namespace OpenSearch
structure DeleteActionGroup_Input{
@required
@httpLabel
@documentation("Action group to delete.")
action_group: String
}

@output
structure DeleteActionGroup_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
4 changes: 2 additions & 2 deletions model/security/delete_distinguished_names/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ structure DeleteDistinguishedNames_Input {

@output
structure DeleteDistinguishedNames_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
2 changes: 1 addition & 1 deletion model/security/delete_role/operations.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ use opensearch.openapi#vendorExtensions
@idempotent
@suppress(["HttpUriConflict"])
@http(method: "DELETE", uri: "/_plugins/_security/api/roles/{role}")
@documentation("Delete role.")
@documentation("Delete the specified role.")
operation DeleteRole {
input: DeleteRole_Input,
output: DeleteRole_Output
Expand Down
4 changes: 2 additions & 2 deletions model/security/delete_role/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ structure DeleteRole_Input{

@output
structure DeleteRole_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
5 changes: 2 additions & 3 deletions model/security/delete_role_mapping/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
$version: "2"
namespace OpenSearch


@input
structure DeleteRoleMapping_Input{
@required
Expand All @@ -17,6 +16,6 @@ structure DeleteRoleMapping_Input{

@output
structure DeleteRoleMapping_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
4 changes: 2 additions & 2 deletions model/security/delete_tenant/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ structure DeleteTenant_Input{

@output
structure DeleteTenant_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
4 changes: 2 additions & 2 deletions model/security/delete_user/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ structure DeleteUser_Input {

@output
structure DeleteUser_Output {
status: MessageStatus,
message: Message
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
10 changes: 6 additions & 4 deletions model/security/distinguished_name.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
$version: "2"
namespace OpenSearch

map DistinguishedNamesMap {
key: String,
value: DistinguishedNames
}

structure DistinguishedNames {
nodes_dn: NodesDn
}

list NodesDn {
member: String
}
map DistinguishedNamesMap {
key: String,
value: DistinguishedNames
}
6 changes: 3 additions & 3 deletions model/security/flush_cache/operations.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use opensearch.openapi#vendorExtensions
@idempotent
@http(method: "DELETE", uri: "/_plugins/_security/api/cache")
@documentation("Flushes the Security plugin user, authentication, and authorization cache.")
operation Flush_Cache {
input: Flush_Cache_Input,
output: Flush_Cache_Output
operation FlushCache {
input: FlushCache_Input,
output: FlushCache_Output
}
8 changes: 4 additions & 4 deletions model/security/flush_cache/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ $version: "2"
namespace OpenSearch

@input
structure Flush_Cache_Input {}
structure FlushCache_Input {}

@output
structure Flush_Cache_Output {
status: MessageStatus,
message: Message
structure FlushCache_Output {
status: SecurityOperationStatus,
message: SecurityOperationMessage
}
2 changes: 1 addition & 1 deletion model/security/get_account_details/operations.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace OpenSearch
use opensearch.openapi#vendorExtensions

@externalDocumentation(
"API Reference": "https://opensearch.org/docs/latest/security/access-control/api/"
"API Reference": "https://opensearch.org/docs/latest/security/access-control/api/#get-account-details"
)

@vendorExtensions(
Expand Down
2 changes: 1 addition & 1 deletion model/security/get_action_group/operations.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ use opensearch.openapi#vendorExtensions
@readonly
@suppress(["HttpUriConflict", "HttpMethodSemantics.UnexpectedPayload"])
@http(method: "GET", uri: "/_plugins/_security/api/actiongroups/{action_group}")
@documentation("Providing information about given action group.")
@documentation("Retrieves one action group.")
operation GetActionGroup {
input: GetActionGroup_Input,
output: GetActionGroup_Output
Expand Down
1 change: 1 addition & 0 deletions model/security/get_action_group/structures.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ namespace OpenSearch
structure GetActionGroup_Input{
@required
@httpLabel
@documentation("Action group to retrieve.")
action_group: String
}

Expand Down
2 changes: 1 addition & 1 deletion model/security/get_action_groups/operations.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ use opensearch.openapi#vendorExtensions
@readonly
@suppress(["HttpUriConflict"])
@http(method: "GET", uri: "/_plugins/_security/api/actiongroups/")
@documentation("Lists of all action groups.")
@documentation("Retrieves all action groups.")
operation GetActionGroups {
input: GetActionGroups_Input,
output: GetActionGroups_Output
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ use opensearch.openapi#vendorExtensions
)

@vendorExtensions(
"x-operation-group": "security.get_audit_config",
"x-operation-group": "security.get_audit_configuration",
"x-version-added": "1.0",
)
@readonly
@suppress(["HttpUriConflict"])
@http(method: "GET", uri: "/_opendistro/_security/api/audit")
@documentation("A GET call retrieves the audit configuration.")
operation GetAuditConfig {
input: GetAuditConfig_Input,
output: GetAuditConfig_Output
@http(method: "GET", uri: "/_plugins/_security/api/audit")
@documentation("Retrieves the audit configuration.")
operation GetAuditConfiguration {
input: GetAuditConfiguration_Input,
output: GetAuditConfiguration_Output
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,11 @@ $version: "2"
namespace OpenSearch

@input
structure GetAuditConfig_Input{
structure GetAuditConfiguration_Input{
}

@output
structure GetAuditConfig_Output {
structure GetAuditConfiguration_Output {
@httpPayload
content: AuditConfigWithReadOnly
}

structure AuditConfigWithReadOnly {
_readonly: AuditConfigReadOnlyList,
config: AuditConfig
}

list AuditConfigReadOnlyList {
member: String
}
2 changes: 1 addition & 1 deletion model/security/get_certificates/operations.smithy
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ use opensearch.openapi#vendorExtensions
@readonly
@suppress(["HttpUriConflict"])
@http(method: "GET", uri: "/_plugins/_security/api/ssl/certs")
@documentation("Returns the cluster’s security certificates.")
@documentation("Retrieves the cluster’s security certificates.")
operation GetCertificates {
input: GetCertificates_Input,
output: GetCertificates_Output
Expand Down
Loading

0 comments on commit 561f5ba

Please sign in to comment.