Skip to content

Commit fa3e8c4

Browse files
Update ASF APIs, update IAM provider signature (localstack#12836)
Co-authored-by: LocalStack Bot <localstack-bot@users.noreply.github.com> Co-authored-by: Alexander Rashed <alexander.rashed@localstack.cloud>
1 parent 1fcf3e9 commit fa3e8c4

File tree

15 files changed

+149
-30
lines changed

15 files changed

+149
-30
lines changed

localstack-core/localstack/aws/api/cloudformation/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@
150150
StackRefactorId = str
151151
StackRefactorResourceIdentifier = str
152152
StackRefactorStatusReason = str
153+
StackResourceDriftStatusReason = str
153154
StackSetARN = str
154155
StackSetId = str
155156
StackSetName = str
@@ -609,6 +610,7 @@ class StackResourceDriftStatus(StrEnum):
609610
MODIFIED = "MODIFIED"
610611
DELETED = "DELETED"
611612
NOT_CHECKED = "NOT_CHECKED"
613+
UNKNOWN = "UNKNOWN"
612614

613615

614616
class StackSetDriftDetectionStatus(StrEnum):
@@ -1700,6 +1702,7 @@ class StackResourceDrift(TypedDict, total=False):
17001702
StackResourceDriftStatus: StackResourceDriftStatus
17011703
Timestamp: Timestamp
17021704
ModuleInfo: Optional[ModuleInfo]
1705+
DriftStatusReason: Optional[StackResourceDriftStatusReason]
17031706

17041707

17051708
StackResourceDrifts = List[StackResourceDrift]

localstack-core/localstack/aws/api/config/__init__.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,41 @@ class ResourceType(StrEnum):
741741
AWS_Redshift_EndpointAccess = "AWS::Redshift::EndpointAccess"
742742
AWS_Route53Resolver_FirewallRuleGroup = "AWS::Route53Resolver::FirewallRuleGroup"
743743
AWS_SSM_Document = "AWS::SSM::Document"
744+
AWS_AppConfig_ExtensionAssociation = "AWS::AppConfig::ExtensionAssociation"
745+
AWS_AppIntegrations_Application = "AWS::AppIntegrations::Application"
746+
AWS_AppSync_ApiCache = "AWS::AppSync::ApiCache"
747+
AWS_Bedrock_Guardrail = "AWS::Bedrock::Guardrail"
748+
AWS_Bedrock_KnowledgeBase = "AWS::Bedrock::KnowledgeBase"
749+
AWS_Cognito_IdentityPool = "AWS::Cognito::IdentityPool"
750+
AWS_Connect_Rule = "AWS::Connect::Rule"
751+
AWS_Connect_User = "AWS::Connect::User"
752+
AWS_EC2_ClientVpnTargetNetworkAssociation = "AWS::EC2::ClientVpnTargetNetworkAssociation"
753+
AWS_EC2_EIPAssociation = "AWS::EC2::EIPAssociation"
754+
AWS_EC2_IPAMResourceDiscovery = "AWS::EC2::IPAMResourceDiscovery"
755+
AWS_EC2_IPAMResourceDiscoveryAssociation = "AWS::EC2::IPAMResourceDiscoveryAssociation"
756+
AWS_EC2_InstanceConnectEndpoint = "AWS::EC2::InstanceConnectEndpoint"
757+
AWS_EC2_SnapshotBlockPublicAccess = "AWS::EC2::SnapshotBlockPublicAccess"
758+
AWS_EC2_VPCBlockPublicAccessExclusion = "AWS::EC2::VPCBlockPublicAccessExclusion"
759+
AWS_EC2_VPCBlockPublicAccessOptions = "AWS::EC2::VPCBlockPublicAccessOptions"
760+
AWS_EC2_VPCEndpointConnectionNotification = "AWS::EC2::VPCEndpointConnectionNotification"
761+
AWS_EC2_VPNConnectionRoute = "AWS::EC2::VPNConnectionRoute"
762+
AWS_Evidently_Segment = "AWS::Evidently::Segment"
763+
AWS_IAM_OIDCProvider = "AWS::IAM::OIDCProvider"
764+
AWS_InspectorV2_Activation = "AWS::InspectorV2::Activation"
765+
AWS_MSK_ClusterPolicy = "AWS::MSK::ClusterPolicy"
766+
AWS_MSK_VpcConnection = "AWS::MSK::VpcConnection"
767+
AWS_MediaConnect_Gateway = "AWS::MediaConnect::Gateway"
768+
AWS_MemoryDB_SubnetGroup = "AWS::MemoryDB::SubnetGroup"
769+
AWS_OpenSearchServerless_Collection = "AWS::OpenSearchServerless::Collection"
770+
AWS_OpenSearchServerless_VpcEndpoint = "AWS::OpenSearchServerless::VpcEndpoint"
771+
AWS_Redshift_EndpointAuthorization = "AWS::Redshift::EndpointAuthorization"
772+
AWS_Route53Profiles_Profile = "AWS::Route53Profiles::Profile"
773+
AWS_S3_StorageLensGroup = "AWS::S3::StorageLensGroup"
774+
AWS_S3Express_BucketPolicy = "AWS::S3Express::BucketPolicy"
775+
AWS_S3Express_DirectoryBucket = "AWS::S3Express::DirectoryBucket"
776+
AWS_SageMaker_InferenceExperiment = "AWS::SageMaker::InferenceExperiment"
777+
AWS_SecurityHub_Standard = "AWS::SecurityHub::Standard"
778+
AWS_Transfer_Profile = "AWS::Transfer::Profile"
744779

745780

746781
class ResourceValueType(StrEnum):

localstack-core/localstack/aws/api/dynamodb/__init__.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,9 @@ class ReplicaStatus(StrEnum):
270270
ACTIVE = "ACTIVE"
271271
REGION_DISABLED = "REGION_DISABLED"
272272
INACCESSIBLE_ENCRYPTION_CREDENTIALS = "INACCESSIBLE_ENCRYPTION_CREDENTIALS"
273+
ARCHIVING = "ARCHIVING"
274+
ARCHIVED = "ARCHIVED"
275+
REPLICATION_NOT_AUTHORIZED = "REPLICATION_NOT_AUTHORIZED"
273276

274277

275278
class ReturnConsumedCapacity(StrEnum):
@@ -347,6 +350,7 @@ class TableStatus(StrEnum):
347350
INACCESSIBLE_ENCRYPTION_CREDENTIALS = "INACCESSIBLE_ENCRYPTION_CREDENTIALS"
348351
ARCHIVING = "ARCHIVING"
349352
ARCHIVED = "ARCHIVED"
353+
REPLICATION_NOT_AUTHORIZED = "REPLICATION_NOT_AUTHORIZED"
350354

351355

352356
class TimeToLiveStatus(StrEnum):
@@ -356,6 +360,12 @@ class TimeToLiveStatus(StrEnum):
356360
DISABLED = "DISABLED"
357361

358362

363+
class WitnessStatus(StrEnum):
364+
CREATING = "CREATING"
365+
DELETING = "DELETING"
366+
ACTIVE = "ACTIVE"
367+
368+
359369
class BackupInUseException(ServiceException):
360370
code: str = "BackupInUseException"
361371
sender_fault: bool = False
@@ -1075,6 +1085,10 @@ class CreateGlobalTableOutput(TypedDict, total=False):
10751085
GlobalTableDescription: Optional[GlobalTableDescription]
10761086

10771087

1088+
class CreateGlobalTableWitnessGroupMemberAction(TypedDict, total=False):
1089+
RegionName: RegionName
1090+
1091+
10781092
class CreateReplicaAction(TypedDict, total=False):
10791093
RegionName: RegionName
10801094

@@ -1157,6 +1171,12 @@ class RestoreSummary(TypedDict, total=False):
11571171
RestoreInProgress: RestoreInProgress
11581172

11591173

1174+
class GlobalTableWitnessDescription(TypedDict, total=False):
1175+
RegionName: Optional[RegionName]
1176+
WitnessStatus: Optional[WitnessStatus]
1177+
1178+
1179+
GlobalTableWitnessDescriptionList = List[GlobalTableWitnessDescription]
11601180
NonNegativeLongObject = int
11611181

11621182

@@ -1216,6 +1236,7 @@ class TableDescription(TypedDict, total=False):
12161236
LatestStreamArn: Optional[StreamArn]
12171237
GlobalTableVersion: Optional[String]
12181238
Replicas: Optional[ReplicaDescriptionList]
1239+
GlobalTableWitnesses: Optional[GlobalTableWitnessDescriptionList]
12191240
RestoreSummary: Optional[RestoreSummary]
12201241
SSEDescription: Optional[SSEDescription]
12211242
ArchivalSummary: Optional[ArchivalSummary]
@@ -1259,6 +1280,10 @@ class DeleteGlobalSecondaryIndexAction(TypedDict, total=False):
12591280
IndexName: IndexName
12601281

12611282

1283+
class DeleteGlobalTableWitnessGroupMemberAction(TypedDict, total=False):
1284+
RegionName: RegionName
1285+
1286+
12621287
class ExpectedAttributeValue(TypedDict, total=False):
12631288
Value: Optional[AttributeValue]
12641289
Exists: Optional[BooleanObject]
@@ -1759,6 +1784,14 @@ class GlobalTableGlobalSecondaryIndexSettingsUpdate(TypedDict, total=False):
17591784
GlobalTableList = List[GlobalTable]
17601785

17611786

1787+
class GlobalTableWitnessGroupUpdate(TypedDict, total=False):
1788+
Create: Optional[CreateGlobalTableWitnessGroupMemberAction]
1789+
Delete: Optional[DeleteGlobalTableWitnessGroupMemberAction]
1790+
1791+
1792+
GlobalTableWitnessGroupUpdateList = List[GlobalTableWitnessGroupUpdate]
1793+
1794+
17621795
class ImportSummary(TypedDict, total=False):
17631796
ImportArn: Optional[ImportArn]
17641797
ImportStatus: Optional[ImportStatus]
@@ -2253,6 +2286,7 @@ class UpdateTableInput(ServiceRequest):
22532286
TableClass: Optional[TableClass]
22542287
DeletionProtectionEnabled: Optional[DeletionProtectionEnabled]
22552288
MultiRegionConsistency: Optional[MultiRegionConsistency]
2289+
GlobalTableWitnessUpdates: Optional[GlobalTableWitnessGroupUpdateList]
22562290
OnDemandThroughput: Optional[OnDemandThroughput]
22572291
WarmThroughput: Optional[WarmThroughput]
22582292

@@ -2901,6 +2935,7 @@ def update_table(
29012935
table_class: TableClass | None = None,
29022936
deletion_protection_enabled: DeletionProtectionEnabled | None = None,
29032937
multi_region_consistency: MultiRegionConsistency | None = None,
2938+
global_table_witness_updates: GlobalTableWitnessGroupUpdateList | None = None,
29042939
on_demand_throughput: OnDemandThroughput | None = None,
29052940
warm_throughput: WarmThroughput | None = None,
29062941
**kwargs,

localstack-core/localstack/aws/api/ec2/__init__.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14605,6 +14605,7 @@ class SecurityGroupVpcAssociation(TypedDict, total=False):
1460514605
VpcOwnerId: Optional[String]
1460614606
State: Optional[SecurityGroupVpcAssociationState]
1460714607
StateReason: Optional[String]
14608+
GroupOwnerId: Optional[String]
1460814609

1460914610

1461014611
SecurityGroupVpcAssociationList = List[SecurityGroupVpcAssociation]
@@ -17244,6 +17245,7 @@ class GetInstanceTypesFromInstanceRequirementsRequest(ServiceRequest):
1724417245
InstanceRequirements: InstanceRequirementsRequest
1724517246
MaxResults: Optional[Integer]
1724617247
NextToken: Optional[String]
17248+
Context: Optional[String]
1724717249

1724817250

1724917251
class InstanceTypeInfoFromInstanceRequirements(TypedDict, total=False):
@@ -26579,16 +26581,11 @@ def get_instance_tpm_ek_pub(
2657926581
) -> GetInstanceTpmEkPubResult:
2658026582
raise NotImplementedError
2658126583

26582-
@handler("GetInstanceTypesFromInstanceRequirements")
26584+
@handler("GetInstanceTypesFromInstanceRequirements", expand=False)
2658326585
def get_instance_types_from_instance_requirements(
2658426586
self,
2658526587
context: RequestContext,
26586-
architecture_types: ArchitectureTypeSet,
26587-
virtualization_types: VirtualizationTypeSet,
26588-
instance_requirements: InstanceRequirementsRequest,
26589-
dry_run: Boolean | None = None,
26590-
max_results: Integer | None = None,
26591-
next_token: String | None = None,
26588+
request: GetInstanceTypesFromInstanceRequirementsRequest,
2659226589
**kwargs,
2659326590
) -> GetInstanceTypesFromInstanceRequirementsResult:
2659426591
raise NotImplementedError

localstack-core/localstack/aws/api/iam/__init__.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
accessKeyIdType = str
2828
accessKeySecretType = str
2929
accountAliasType = str
30+
allUsers = bool
3031
arnType = str
3132
attachmentCountType = int
3233
authenticationCodeType = str
@@ -36,6 +37,7 @@
3637
certificateChainType = str
3738
certificateIdType = str
3839
clientIDType = str
40+
credentialAgeDays = int
3941
credentialReportExpiredExceptionMessage = str
4042
credentialReportNotPresentExceptionMessage = str
4143
credentialReportNotReadyExceptionMessage = str
@@ -93,6 +95,8 @@
9395
roleNameType = str
9496
serialNumberType = str
9597
serverCertificateNameType = str
98+
serviceCredentialAlias = str
99+
serviceCredentialSecret = str
96100
serviceFailureExceptionMessage = str
97101
serviceName = str
98102
serviceNameType = str
@@ -241,6 +245,7 @@ class sortKeyType(StrEnum):
241245
class statusType(StrEnum):
242246
Active = "Active"
243247
Inactive = "Inactive"
248+
Expired = "Expired"
244249

245250

246251
class summaryKeyType(StrEnum):
@@ -770,13 +775,17 @@ class CreateServiceLinkedRoleResponse(TypedDict, total=False):
770775
class CreateServiceSpecificCredentialRequest(ServiceRequest):
771776
UserName: userNameType
772777
ServiceName: serviceName
778+
CredentialAgeDays: Optional[credentialAgeDays]
773779

774780

775781
class ServiceSpecificCredential(TypedDict, total=False):
776782
CreateDate: dateType
783+
ExpirationDate: Optional[dateType]
777784
ServiceName: serviceName
778-
ServiceUserName: serviceUserName
779-
ServicePassword: servicePassword
785+
ServiceUserName: Optional[serviceUserName]
786+
ServicePassword: Optional[servicePassword]
787+
ServiceCredentialAlias: Optional[serviceCredentialAlias]
788+
ServiceCredentialSecret: Optional[serviceCredentialSecret]
780789
ServiceSpecificCredentialId: serviceSpecificCredentialId
781790
UserName: userNameType
782791
Status: statusType
@@ -1979,13 +1988,18 @@ class ListServerCertificatesResponse(TypedDict, total=False):
19791988
class ListServiceSpecificCredentialsRequest(ServiceRequest):
19801989
UserName: Optional[userNameType]
19811990
ServiceName: Optional[serviceName]
1991+
AllUsers: Optional[allUsers]
1992+
Marker: Optional[markerType]
1993+
MaxItems: Optional[maxItemsType]
19821994

19831995

19841996
class ServiceSpecificCredentialMetadata(TypedDict, total=False):
19851997
UserName: userNameType
19861998
Status: statusType
1987-
ServiceUserName: serviceUserName
1999+
ServiceUserName: Optional[serviceUserName]
2000+
ServiceCredentialAlias: Optional[serviceCredentialAlias]
19882001
CreateDate: dateType
2002+
ExpirationDate: Optional[dateType]
19892003
ServiceSpecificCredentialId: serviceSpecificCredentialId
19902004
ServiceName: serviceName
19912005

@@ -1995,6 +2009,8 @@ class ServiceSpecificCredentialMetadata(TypedDict, total=False):
19952009

19962010
class ListServiceSpecificCredentialsResponse(TypedDict, total=False):
19972011
ServiceSpecificCredentials: Optional[ServiceSpecificCredentialsListType]
2012+
Marker: Optional[responseMarkerType]
2013+
IsTruncated: Optional[booleanType]
19982014

19992015

20002016
class ListSigningCertificatesRequest(ServiceRequest):
@@ -2576,7 +2592,12 @@ def create_service_linked_role(
25762592

25772593
@handler("CreateServiceSpecificCredential")
25782594
def create_service_specific_credential(
2579-
self, context: RequestContext, user_name: userNameType, service_name: serviceName, **kwargs
2595+
self,
2596+
context: RequestContext,
2597+
user_name: userNameType,
2598+
service_name: serviceName,
2599+
credential_age_days: credentialAgeDays | None = None,
2600+
**kwargs,
25802601
) -> CreateServiceSpecificCredentialResponse:
25812602
raise NotImplementedError
25822603

@@ -3381,6 +3402,9 @@ def list_service_specific_credentials(
33813402
context: RequestContext,
33823403
user_name: userNameType | None = None,
33833404
service_name: serviceName | None = None,
3405+
all_users: allUsers | None = None,
3406+
marker: markerType | None = None,
3407+
max_items: maxItemsType | None = None,
33843408
**kwargs,
33853409
) -> ListServiceSpecificCredentialsResponse:
33863410
raise NotImplementedError

localstack-core/localstack/aws/api/route53/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ class CloudWatchRegion(StrEnum):
165165
us_isof_east_1 = "us-isof-east-1"
166166
ap_southeast_7 = "ap-southeast-7"
167167
ap_east_2 = "ap-east-2"
168+
eu_isoe_west_1 = "eu-isoe-west-1"
168169

169170

170171
class ComparisonOperator(StrEnum):
@@ -343,6 +344,7 @@ class VPCRegion(StrEnum):
343344
us_isof_east_1 = "us-isof-east-1"
344345
ap_southeast_7 = "ap-southeast-7"
345346
ap_east_2 = "ap-east-2"
347+
eu_isoe_west_1 = "eu-isoe-west-1"
346348

347349

348350
class CidrBlockInUseException(ServiceException):

localstack-core/localstack/aws/api/s3/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@
150150
Restore = str
151151
RestoreOutputPath = str
152152
Role = str
153+
S3RegionalOrS3ExpressBucketArnString = str
153154
S3TablesArn = str
154155
S3TablesBucketArn = str
155156
S3TablesName = str
@@ -1154,6 +1155,7 @@ class Bucket(TypedDict, total=False):
11541155
Name: Optional[BucketName]
11551156
CreationDate: Optional[CreationDate]
11561157
BucketRegion: Optional[BucketRegion]
1158+
BucketArn: Optional[S3RegionalOrS3ExpressBucketArnString]
11571159

11581160

11591161
class BucketInfo(TypedDict, total=False):
@@ -1497,6 +1499,7 @@ class CreateBucketConfiguration(TypedDict, total=False):
14971499
LocationConstraint: Optional[BucketLocationConstraint]
14981500
Location: Optional[LocationInfo]
14991501
Bucket: Optional[BucketInfo]
1502+
Tags: Optional[TagSet]
15001503

15011504

15021505
class S3TablesDestination(TypedDict, total=False):
@@ -1518,6 +1521,7 @@ class CreateBucketMetadataTableConfigurationRequest(ServiceRequest):
15181521

15191522
class CreateBucketOutput(TypedDict, total=False):
15201523
Location: Optional[Location]
1524+
BucketArn: Optional[S3RegionalOrS3ExpressBucketArnString]
15211525

15221526

15231527
class CreateBucketRequest(ServiceRequest):

localstack-core/localstack/aws/api/ssm/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,11 @@ class AccessRequestStatus(StrEnum):
394394
Pending = "Pending"
395395

396396

397+
class AccessType(StrEnum):
398+
Standard = "Standard"
399+
JustInTime = "JustInTime"
400+
401+
397402
class AssociationComplianceSeverity(StrEnum):
398403
CRITICAL = "CRITICAL"
399404
HIGH = "HIGH"
@@ -1104,6 +1109,7 @@ class SessionFilterKey(StrEnum):
11041109
Owner = "Owner"
11051110
Status = "Status"
11061111
SessionId = "SessionId"
1112+
AccessType = "AccessType"
11071113

11081114

11091115
class SessionState(StrEnum):
@@ -4228,6 +4234,7 @@ class Session(TypedDict, total=False):
42284234
Details: Optional[SessionDetails]
42294235
OutputUrl: Optional[SessionManagerOutputUrl]
42304236
MaxSessionDuration: Optional[MaxSessionDuration]
4237+
AccessType: Optional[AccessType]
42314238

42324239

42334240
SessionList = List[Session]

0 commit comments

Comments
 (0)