Skip to content
Open
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
4 changes: 2 additions & 2 deletions okta/models/log_stream_settings_aws.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ class LogStreamSettingsAws(BaseModel):
@field_validator("event_source_name")
def event_source_name_validate_regular_expression(cls, value):
"""Validates the regular expression"""
if not re.match(r"^[a-zA-Z0-9.\-_]$", value):
if not re.match(r"^[a-zA-Z0-9.\-_]+$", value):
raise ValueError(
r"must validate the regular expression /^[a-zA-Z0-9.\-_]$/"
r"must validate the regular expression /^[a-zA-Z0-9.\-_]+$/"
)
return value

Expand Down
2 changes: 1 addition & 1 deletion openapi/api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61407,7 +61407,7 @@ components:
maxLength: 75
example: your-event-source-name
type: string
pattern: ^[a-zA-Z0-9.\-_]$
pattern: ^[a-zA-Z0-9.\-_]+$
AwsRegion:
description: The destination AWS region where your event source is located
type: string
Expand Down
2 changes: 1 addition & 1 deletion openapi/management.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23752,7 +23752,7 @@ components:
maxLength: 75
example: your-event-source-name
type: string
pattern: ^[a-zA-Z0-9.\-_]$
pattern: ^[a-zA-Z0-9.\-_]+$
AwsRegion:
description: The destination AWS region where your event source is located
type: string
Expand Down
70 changes: 70 additions & 0 deletions tests/test_log_stream_settings_aws.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import pytest
from pydantic import ValidationError

from okta.models.log_stream import LogStream
from okta.models.log_stream_aws import LogStreamAws
from okta.models.log_stream_settings_aws import LogStreamSettingsAws


@pytest.mark.parametrize(
"event_source_name",
[
"p",
"MultiCharacter",
"event.source-name_123",
"a" * 75,
],
)
def test_log_stream_settings_aws_accepts_valid_event_source_names(event_source_name):
settings = LogStreamSettingsAws(
accountId="123456789012",
eventSourceName=event_source_name,
region="us-east-1",
)

assert settings.event_source_name == event_source_name


@pytest.mark.parametrize(
"event_source_name",
[
"",
"contains space",
"contains/slash",
"a" * 76,
],
)
def test_log_stream_settings_aws_rejects_invalid_event_source_names(event_source_name):
with pytest.raises(ValidationError):
LogStreamSettingsAws(
accountId="123456789012",
eventSourceName=event_source_name,
region="us-east-1",
)


def test_log_stream_aws_deserializes_multi_character_event_source_name():
log_stream = LogStream.from_dict(
{
"created": "2026-01-01T00:00:00.000Z",
"id": "logstream123",
"lastUpdated": "2026-01-01T00:00:00.000Z",
"name": "AWS EventBridge Log Stream",
"status": "ACTIVE",
"type": "aws_eventbridge",
"_links": {
"self": {
"href": "/api/v1/logStreams/logstream123",
"method": "GET",
}
},
"settings": {
"accountId": "123456789012",
"eventSourceName": "MultiCharacter",
"region": "us-east-1",
},
}
)

assert isinstance(log_stream, LogStreamAws)
assert log_stream.settings.event_source_name == "MultiCharacter"