8000 Use `StrEnums` instead of `str` for generated constant classes in the ASF APIs by dfangl · Pull Request #11176 · localstack/localstack · GitHub
[go: up one dir, main page]

Skip to content

Use StrEnums instead of str for generated constant classes in the ASF APIs #11176

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 11, 2024
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
31 changes: 16 additions & 15 deletions localstack-core/localstack/aws/api/acm/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from datetime import datetime
from enum import StrEnum
from typing import List, Optional, TypedDict

from localstack.aws.api import RequestContext, ServiceException, ServiceRequest, handler
Expand All @@ -22,7 +23,7 @@
ValidationExceptionMessage = str


class CertificateStatus(str):
class CertificateStatus(StrEnum):
PENDING_VALIDATION = "PENDING_VALIDATION"
ISSUED = "ISSUED"
INACTIVE = "INACTIVE"
Expand All @@ -32,24 +33,24 @@ class CertificateStatus(str):
FAILED = "FAILED"


class CertificateTransparencyLoggingPreference(str):
class CertificateTransparencyLoggingPreference(StrEnum):
ENABLED = "ENABLED"
DISABLED = "DISABLED"


class CertificateType(str):
class CertificateType(StrEnum):
IMPORTED = "IMPORTED"
AMAZON_ISSUED = "AMAZON_ISSUED"
PRIVATE = "PRIVATE"


class DomainStatus(str):
class DomainStatus(StrEnum):
PENDING_VALIDATION = "PENDING_VALIDATION"
SUCCESS = "SUCCESS"
FAILED = "FAILED"


class ExtendedKeyUsageName(str):
class ExtendedKeyUsageName(StrEnum):
TLS_WEB_SERVER_AUTHENTICATION = "TLS_WEB_SERVER_AUTHENTICATION"
TLS_WEB_CLIENT_AUTHENTICATION = "TLS_WEB_CLIENT_AUTHENTICATION"
CODE_SIGNING = "CODE_SIGNING"
Expand All @@ -64,7 +65,7 @@ class ExtendedKeyUsageName(str):
CUSTOM = "CUSTOM"


class FailureReason(str):
class FailureReason(StrEnum):
NO_AVAILABLE_CONTACTS = "NO_AVAILABLE_CONTACTS"
ADDITIONAL_VERIFICATION_REQUIRED = "ADDITIONAL_VERIFICATION_REQUIRED"
DOMAIN_NOT_ALLOWED = "DOMAIN_NOT_ALLOWED"
Expand All @@ -84,7 +85,7 @@ class FailureReason(str):
OTHER = "OTHER"


class KeyAlgorithm(str):
class KeyAlgorithm(StrEnum):
RSA_1024 = "RSA_1024"
RSA_2048 = "RSA_2048"
RSA_3072 = "RSA_3072"
Expand All @@ -94,7 +95,7 @@ class KeyAlgorithm(str):
EC_secp521r1 = "EC_secp521r1"


class KeyUsageName(str):
class KeyUsageName(StrEnum):
DIGITAL_SIGNATURE = "DIGITAL_SIGNATURE"
NON_REPUDIATION = "NON_REPUDIATION"
KEY_ENCIPHERMENT = "KEY_ENCIPHERMENT"
Expand All @@ -108,23 +109,23 @@ class KeyUsageName(str):
CUSTOM = "CUSTOM"


class RecordType(str):
class RecordType(StrEnum):
CNAME = "CNAME"


class RenewalEligibility(str):
class RenewalEligibility(StrEnum):
ELIGIBLE = "ELIGIBLE"
INELIGIBLE = "INELIGIBLE"


class RenewalStatus(str):
class RenewalStatus(StrEnum):
PENDING_AUTO_RENEWAL = "PENDING_AUTO_RENEWAL"
PENDING_VALIDATION = "PENDING_VALIDATION"
SUCCESS = "SUCCESS"
FAILED = "FAILED"


class RevocationReason(str):
class RevocationReason(StrEnum):
UNSPECIFIED = "UNSPECIFIED"
KEY_COMPROMISE = "KEY_COMPROMISE"
CA_COMPROMISE = "CA_COMPROMISE"
Expand All @@ -137,16 +138,16 @@ class RevocationReason(str):
A_A_COMPROMISE = "A_A_COMPROMISE"


class SortBy(str):
class SortBy(StrEnum):
CREATED_AT = "CREATED_AT"


class SortOrder(str):
class SortOrder(StrEnum):
ASCENDING = "ASCENDING"
DESCENDING = "DESCENDING"


class ValidationMethod(str):
class ValidationMethod(StrEnum):
EMAIL = "EMAIL"
DNS = "DNS"

Expand Down
39 changes: 20 additions & 19 deletions localstack-core/localstack/aws/api/apigateway/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from datetime import datetime
from enum import StrEnum
from typing import IO, Dict, Iterable, List, Optional, TypedDict, Union

from localstack.aws.api import RequestContext, ServiceException, ServiceRequest, handler
Expand All @@ -14,22 +15,22 @@
String = str


class ApiKeySourceType(str):
class ApiKeySourceType(StrEnum):
HEADER = "HEADER"
AUTHORIZER = "AUTHORIZER"


class ApiKeysFormat(str):
class ApiKeysFormat(StrEnum):
csv = "csv"


class AuthorizerType(str):
class AuthorizerType(StrEnum):
TOKEN = "TOKEN"
REQUEST = "REQUEST"
COGNITO_USER_POOLS = "COGNITO_USER_POOLS"


class CacheClusterSize(str):
class CacheClusterSize(StrEnum):
i_0_5 = "0.5"
i_1_6 = "1.6"
i_6_1 = "6.1"
Expand All @@ -40,25 +41,25 @@ class CacheClusterSize(str):
i_237 = "237"


class CacheClusterStatus(str):
class CacheClusterStatus(StrEnum):
CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS"
AVAILABLE = "AVAILABLE"
DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS"
NOT_AVAILABLE = "NOT_AVAILABLE"
FLUSH_IN_PROGRESS = "FLUSH_IN_PROGRESS"


class ConnectionType(str):
class ConnectionType(StrEnum):
INTERNET = "INTERNET"
VPC_LINK = "VPC_LINK"


class ContentHandlingStrategy(str):
class ContentHandlingStrategy(StrEnum):
CONVERT_TO_BINARY = "CONVERT_TO_BINARY"
CONVERT_TO_TEXT = "CONVERT_TO_TEXT"


class DocumentationPartType(str):
class DocumentationPartType(StrEnum):
API = "API"
AUTHORIZER = "AUTHORIZER"
MODEL = "MODEL"
Expand All @@ -73,21 +74,21 @@ class DocumentationPartType(str):
RESPONSE_BODY = "RESPONSE_BODY"


class DomainNameStatus(str):
class DomainNameStatus(StrEnum):
AVAILABLE = "AVAILABLE"
UPDATING = "UPDATING"
PENDING = "PENDING"
PENDING_CERTIFICATE_REIMPORT = "PENDING_CERTIFICATE_REIMPORT"
PENDING_OWNERSHIP_VERIFICATION = "PENDING_OWNERSHIP_VERIFICATION"


class EndpointType(str):
class EndpointType(StrEnum):
REGIONAL = "REGIONAL"
EDGE = "EDGE"
PRIVATE = "PRIVATE"


class GatewayResponseType(str):
class GatewayResponseType(StrEnum):
DEFAULT_4XX = "DEFAULT_4XX"
DEFAULT_5XX = "DEFAULT_5XX"
RESOURCE_NOT_FOUND = "RESOURCE_NOT_FOUND"
Expand All @@ -111,20 +112,20 @@ class GatewayResponseType(str):
WAF_FILTERED = "WAF_FILTERED"


class IntegrationType(str):
class IntegrationType(StrEnum):
HTTP = "HTTP"
AWS = "AWS"
MOCK = "MOCK"
HTTP_PROXY = "HTTP_PROXY"
AWS_PROXY = "AWS_PROXY"


class LocationStatusType(str):
class LocationStatusType(StrEnum):
DOCUMENTED = "DOCUMENTED"
UNDOCUMENTED = "UNDOCUMENTED"


class Op(str):
class Op(StrEnum):
add = "add"
remove = "remove"
replace = "replace"
Expand All @@ -133,29 +134,29 @@ class Op(str):
test = "test"


class PutMode(str):
class PutMode(StrEnum):
merge = "merge"
overwrite = "overwrite"


class QuotaPeriodType(str):
class QuotaPeriodType(StrEnum):
DAY = "DAY"
WEEK = "WEEK"
MONTH = "MONTH"


class SecurityPolicy(str):
class SecurityPolicy(StrEnum):
TLS_1_0 = "TLS_1_0"
TLS_1_2 = "TLS_1_2"


class UnauthorizedCacheControlHeaderStrategy(str):
class UnauthorizedCacheControlHeaderStrategy(StrEnum):
FAIL_WITH_403 = "FAIL_WITH_403"
SUCCEED_WITH_RESPONSE_HEADER = "SUCCEED_WITH_RESPONSE_HEADER"
SUCCEED_WITHOUT_RESPONSE_HEADER = "SUCCEED_WITHOUT_RESPONSE_HEADER"


class VpcLinkStatus(str):
class VpcLinkStatus(StrEnum):
AVAILABLE = "AVAILABLE"
PENDING = "PENDING"
DELETING = "DELETING"
Expand Down
7 changes: 4 additions & 3 deletions localstack-core/localstack/aws/api/cloudcontrol/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from datetime import datetime
from enum import StrEnum
from typing import List, Optional, TypedDict

from localstack.aws.api import RequestContext, ServiceException, ServiceRequest, handler
Expand All @@ -18,7 +19,7 @@
TypeVersionId = str


class HandlerErrorCode(str):
class HandlerErrorCode(StrEnum):
NotUpdatable = "NotUpdatable"
InvalidRequest = "InvalidRequest"
AccessDenied = "AccessDenied"
Expand All @@ -36,13 +37,13 @@ class HandlerErrorCode(str):
InternalFailure = "InternalFailure"


class Operation(str):
class Operation(StrEnum):
CREATE = "CREATE"
DELETE = "DELETE"
UPDATE = "UPDATE"


class OperationStatus(str):
class OperationStatus(StrEnum):
PENDING = "PENDING"
IN_PROGRESS = "IN_PROGRESS"
SUCCESS = "SUCCESS"
Expand Down
Loading
Loading
0