Skip to content

Commit baa35ef

Browse files
authored
Merge branch 'master' into add/sqs/override-header
2 parents 06db449 + afb3931 commit baa35ef

38 files changed

+3382
-177
lines changed

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

Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,16 @@
2929
ConfigurationSchema = str
3030
ConnectionArn = str
3131
Description = str
32+
DetectionReason = str
3233
DisableRollback = bool
3334
DriftedStackInstancesCount = int
35+
EnableStackCreation = bool
3436
EnableTerminationProtection = bool
3537
ErrorCode = str
3638
ErrorMessage = str
3739
EventId = str
3840
ExecutionRoleName = str
41+
ExecutionStatusReason = str
3942
ExportName = str
4043
ExportValue = str
4144
FailedStackInstancesCount = int
@@ -143,6 +146,9 @@
143146
StackPolicyDuringUpdateBody = str
144147
StackPolicyDuringUpdateURL = str
145148
StackPolicyURL = str
149+
StackRefactorId = str
150+
StackRefactorResourceIdentifier = str
151+
StackRefactorStatusReason = str
146152
StackSetARN = str
147153
StackSetId = str
148154
StackSetName = str
@@ -506,6 +512,12 @@ class ResourceStatus(StrEnum):
506512
IMPORT_ROLLBACK_IN_PROGRESS = "IMPORT_ROLLBACK_IN_PROGRESS"
507513
IMPORT_ROLLBACK_FAILED = "IMPORT_ROLLBACK_FAILED"
508514
IMPORT_ROLLBACK_COMPLETE = "IMPORT_ROLLBACK_COMPLETE"
515+
EXPORT_FAILED = "EXPORT_FAILED"
516+
EXPORT_COMPLETE = "EXPORT_COMPLETE"
517+
EXPORT_IN_PROGRESS = "EXPORT_IN_PROGRESS"
518+
EXPORT_ROLLBACK_IN_PROGRESS = "EXPORT_ROLLBACK_IN_PROGRESS"
519+
EXPORT_ROLLBACK_FAILED = "EXPORT_ROLLBACK_FAILED"
520+
EXPORT_ROLLBACK_COMPLETE = "EXPORT_ROLLBACK_COMPLETE"
509521
UPDATE_ROLLBACK_IN_PROGRESS = "UPDATE_ROLLBACK_IN_PROGRESS"
510522
UPDATE_ROLLBACK_COMPLETE = "UPDATE_ROLLBACK_COMPLETE"
511523
UPDATE_ROLLBACK_FAILED = "UPDATE_ROLLBACK_FAILED"
@@ -550,6 +562,42 @@ class StackInstanceStatus(StrEnum):
550562
INOPERABLE = "INOPERABLE"
551563

552564

565+
class StackRefactorActionEntity(StrEnum):
566+
RESOURCE = "RESOURCE"
567+
STACK = "STACK"
568+
569+
570+
class StackRefactorActionType(StrEnum):
571+
MOVE = "MOVE"
572+
CREATE = "CREATE"
573+
574+
575+
class StackRefactorDetection(StrEnum):
576+
AUTO = "AUTO"
577+
MANUAL = "MANUAL"
578+
579+
580+
class StackRefactorExecutionStatus(StrEnum):
581+
UNAVAILABLE = "UNAVAILABLE"
582+
AVAILABLE = "AVAILABLE"
583+
OBSOLETE = "OBSOLETE"
584+
EXECUTE_IN_PROGRESS = "EXECUTE_IN_PROGRESS"
585+
EXECUTE_COMPLETE = "EXECUTE_COMPLETE"
586+
EXECUTE_FAILED = "EXECUTE_FAILED"
587+
ROLLBACK_IN_PROGRESS = "ROLLBACK_IN_PROGRESS"
588+
ROLLBACK_COMPLETE = "ROLLBACK_COMPLETE"
589+
ROLLBACK_FAILED = "ROLLBACK_FAILED"
590+
591+
592+
class StackRefactorStatus(StrEnum):
593+
CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS"
594+
CREATE_COMPLETE = "CREATE_COMPLETE"
595+
CREATE_FAILED = "CREATE_FAILED"
596+
DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS"
597+
DELETE_COMPLETE = "DELETE_COMPLETE"
598+
DELETE_FAILED = "DELETE_FAILED"
599+
600+
553601
class StackResourceDriftStatus(StrEnum):
554602
IN_SYNC = "IN_SYNC"
555603
MODIFIED = "MODIFIED"
@@ -797,6 +845,12 @@ class StackNotFoundException(ServiceException):
797845
status_code: int = 404
798846

799847

848+
class StackRefactorNotFoundException(ServiceException):
849+
code: str = "StackRefactorNotFoundException"
850+
sender_fault: bool = True
851+
status_code: int = 404
852+
853+
800854
class StackSetNotEmptyException(ServiceException):
801855
code: str = "StackSetNotEmptyException"
802856
sender_fault: bool = True
@@ -1206,6 +1260,39 @@ class CreateStackOutput(TypedDict, total=False):
12061260
StackId: Optional[StackId]
12071261

12081262

1263+
class StackDefinition(TypedDict, total=False):
1264+
StackName: Optional[StackName]
1265+
TemplateBody: Optional[TemplateBody]
1266+
TemplateURL: Optional[TemplateURL]
1267+
1268+
1269+
StackDefinitions = List[StackDefinition]
1270+
1271+
1272+
class ResourceLocation(TypedDict, total=False):
1273+
StackName: StackName
1274+
LogicalResourceId: LogicalResourceId
1275+
1276+
1277+
class ResourceMapping(TypedDict, total=False):
1278+
Source: ResourceLocation
1279+
Destination: ResourceLocation
1280+
1281+
1282+
ResourceMappings = List[ResourceMapping]
1283+
1284+
1285+
class CreateStackRefactorInput(ServiceRequest):
1286+
Description: Optional[Description]
1287+
EnableStackCreation: Optional[EnableStackCreation]
1288+
ResourceMappings: Optional[ResourceMappings]
1289+
StackDefinitions: StackDefinitions
1290+
1291+
1292+
class CreateStackRefactorOutput(TypedDict, total=False):
1293+
StackRefactorId: StackRefactorId
1294+
1295+
12091296
class ManagedExecution(TypedDict, total=False):
12101297
Active: Optional[ManagedExecutionNullable]
12111298

@@ -1538,6 +1625,23 @@ class DescribeStackInstanceOutput(TypedDict, total=False):
15381625
StackInstance: Optional[StackInstance]
15391626

15401627

1628+
class DescribeStackRefactorInput(ServiceRequest):
1629+
StackRefactorId: StackRefactorId
1630+
1631+
1632+
StackIds = List[StackId]
1633+
1634+
1635+
class DescribeStackRefactorOutput(TypedDict, total=False):
1636+
Description: Optional[Description]
1637+
StackRefactorId: Optional[StackRefactorId]
1638+
StackIds: Optional[StackIds]
1639+
ExecutionStatus: Optional[StackRefactorExecutionStatus]
1640+
ExecutionStatusReason: Optional[ExecutionStatusReason]
1641+
Status: Optional[StackRefactorStatus]
1642+
StatusReason: Optional[StackRefactorStatusReason]
1643+
1644+
15411645
StackResourceDriftStatusFilters = List[StackResourceDriftStatus]
15421646

15431647

@@ -1888,6 +1992,10 @@ class ExecuteChangeSetOutput(TypedDict, total=False):
18881992
pass
18891993

18901994

1995+
class ExecuteStackRefactorInput(ServiceRequest):
1996+
StackRefactorId: StackRefactorId
1997+
1998+
18911999
class Export(TypedDict, total=False):
18922000
ExportingStackId: Optional[StackId]
18932001
Name: Optional[ExportName]
@@ -2227,6 +2335,63 @@ class ListStackInstancesOutput(TypedDict, total=False):
22272335
NextToken: Optional[NextToken]
22282336

22292337

2338+
class ListStackRefactorActionsInput(ServiceRequest):
2339+
StackRefactorId: StackRefactorId
2340+
NextToken: Optional[NextToken]
2341+
MaxResults: Optional[MaxResults]
2342+
2343+
2344+
StackRefactorUntagResources = List[TagKey]
2345+
StackRefactorTagResources = List[Tag]
2346+
2347+
2348+
class StackRefactorAction(TypedDict, total=False):
2349+
Action: Optional[StackRefactorActionType]
2350+
Entity: Optional[StackRefactorActionEntity]
2351+
PhysicalResourceId: Optional[PhysicalResourceId]
2352+
ResourceIdentifier: Optional[StackRefactorResourceIdentifier]
2353+
Description: Optional[Description]
2354+
Detection: Optional[StackRefactorDetection]
2355+
DetectionReason: Optional[DetectionReason]
2356+
TagResources: Optional[StackRefactorTagResources]
2357+
UntagResources: Optional[StackRefactorUntagResources]
2358+
ResourceMapping: Optional[ResourceMapping]
2359+
2360+
2361+
StackRefactorActions = List[StackRefactorAction]
2362+
2363+
2364+
class ListStackRefactorActionsOutput(TypedDict, total=False):
2365+
StackRefactorActions: StackRefactorActions
2366+
NextToken: Optional[NextToken]
2367+
2368+
2369+
StackRefactorExecutionStatusFilter = List[StackRefactorExecutionStatus]
2370+
2371+
2372+
class ListStackRefactorsInput(ServiceRequest):
2373+
ExecutionStatusFilter: Optional[StackRefactorExecutionStatusFilter]
2374+
NextToken: Optional[NextToken]
2375+
MaxResults: Optional[MaxResults]
2376+
2377+
2378+
class StackRefactorSummary(TypedDict, total=False):
2379+
StackRefactorId: Optional[StackRefactorId]
2380+
Description: Optional[Description]
2381+
ExecutionStatus: Optional[StackRefactorExecutionStatus]
2382+
ExecutionStatusReason: Optional[ExecutionStatusReason]
2383+
Status: Optional[StackRefactorStatus]
2384+
StatusReason: Optional[StackRefactorStatusReason]
2385+
2386+
2387+
StackRefactorSummaries = List[StackRefactorSummary]
2388+
2389+
2390+
class ListStackRefactorsOutput(TypedDict, total=False):
2391+
StackRefactorSummaries: StackRefactorSummaries
2392+
NextToken: Optional[NextToken]
2393+
2394+
22302395
class ListStackResourcesInput(ServiceRequest):
22312396
StackName: StackName
22322397
NextToken: Optional[NextToken]
@@ -2847,6 +3012,18 @@ def create_stack_instances(
28473012
) -> CreateStackInstancesOutput:
28483013
raise NotImplementedError
28493014

3015+
@handler("CreateStackRefactor")
3016+
def create_stack_refactor(
3017+
self,
3018+
context: RequestContext,
3019+
stack_definitions: StackDefinitions,
3020+
description: Description = None,
3021+
enable_stack_creation: EnableStackCreation = None,
3022+
resource_mappings: ResourceMappings = None,
3023+
**kwargs,
3024+
) -> CreateStackRefactorOutput:
3025+
raise NotImplementedError
3026+
28503027
@handler("CreateStackSet")
28513028
def create_stack_set(
28523029
self,
@@ -3025,6 +3202,12 @@ def describe_stack_instance(
30253202
) -> DescribeStackInstanceOutput:
30263203
raise NotImplementedError
30273204

3205+
@handler("DescribeStackRefactor")
3206+
def describe_stack_refactor(
3207+
self, context: RequestContext, stack_refactor_id: StackRefactorId, **kwargs
3208+
) -> DescribeStackRefactorOutput:
3209+
raise NotImplementedError
3210+
30283211
@handler("DescribeStackResource")
30293212
def describe_stack_resource(
30303213
self,
@@ -3157,6 +3340,12 @@ def execute_change_set(
31573340
) -> ExecuteChangeSetOutput:
31583341
raise NotImplementedError
31593342

3343+
@handler("ExecuteStackRefactor")
3344+
def execute_stack_refactor(
3345+
self, context: RequestContext, stack_refactor_id: StackRefactorId, **kwargs
3346+
) -> None:
3347+
raise NotImplementedError
3348+
31603349
@handler("GetGeneratedTemplate")
31613350
def get_generated_template(
31623351
self,
@@ -3328,6 +3517,28 @@ def list_stack_instances(
33283517
) -> ListStackInstancesOutput:
33293518
raise NotImplementedError
33303519

3520+
@handler("ListStackRefactorActions")
3521+
def list_stack_refactor_actions(
3522+
self,
3523+
context: RequestContext,
3524+
stack_refactor_id: StackRefactorId,
3525+
next_token: NextToken = None,
3526+
max_results: MaxResults = None,
3527+
**kwargs,
3528+
) -> ListStackRefactorActionsOutput:
3529+
raise NotImplementedError
3530+
3531+
@handler("ListStackRefactors")
3532+
def list_stack_refactors(
3533+
self,
3534+
context: RequestContext,
3535+
execution_status_filter: StackRefactorExecutionStatusFilter = None,
3536+
next_token: NextToken = None,
3537+
max_results: MaxResults = None,
3538+
**kwargs,
3539+
) -> ListStackRefactorsOutput:
3540+
raise NotImplementedError
3541+
33313542
@handler("ListStackResources")
33323543
def list_stack_resources(
33333544
self, context: RequestContext, stack_name: StackName, next_token: NextToken = None, **kwargs

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

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
policyNotAttachableMessage = str
8282
policyPathType = str
8383
policyVersionIdType = str
84+
privateKeyIdType = str
8485
privateKeyType = str
8586
publicKeyFingerprintType = str
8687
publicKeyIdType = str
@@ -186,6 +187,11 @@ class ReportStateType(StrEnum):
186187
COMPLETE = "COMPLETE"
187188

188189

190+
class assertionEncryptionModeType(StrEnum):
191+
Required = "Required"
192+
Allowed = "Allowed"
193+
194+
189195
class assignmentStatusType(StrEnum):
190196
Assigned = "Assigned"
191197
Unassigned = "Unassigned"
@@ -742,6 +748,8 @@ class CreateSAMLProviderRequest(ServiceRequest):
742748
SAMLMetadataDocument: SAMLMetadataDocumentType
743749
Name: SAMLProviderNameType
744750
Tags: Optional[tagListType]
751+
AssertionEncryptionMode: Optional[assertionEncryptionModeType]
752+
AddPrivateKey: Optional[privateKeyType]
745753

746754

747755
class CreateSAMLProviderResponse(TypedDict, total=False):
@@ -1373,11 +1381,22 @@ class GetSAMLProviderRequest(ServiceRequest):
13731381
SAMLProviderArn: arnType
13741382

13751383

1384+
class SAMLPrivateKey(TypedDict, total=False):
1385+
KeyId: Optional[privateKeyIdType]
1386+
Timestamp: Optional[dateType]
1387+
1388+
1389+
privateKeyList = List[SAMLPrivateKey]
1390+
1391+
13761392
class GetSAMLProviderResponse(TypedDict, total=False):
1393+
SAMLProviderUUID: Optional[privateKeyIdType]
13771394
SAMLMetadataDocument: Optional[SAMLMetadataDocumentType]
13781395
CreateDate: Optional[dateType]
13791396
ValidUntil: Optional[dateType]
13801397
Tags: Optional[tagListType]
1398+
AssertionEncryptionMode: Optional[assertionEncryptionModeType]
1399+
PrivateKeyList: Optional[privateKeyList]
13811400

13821401

13831402
class GetSSHPublicKeyRequest(ServiceRequest):
@@ -2301,8 +2320,11 @@ class UpdateRoleResponse(TypedDict, total=False):
23012320

23022321

23032322
class UpdateSAMLProviderRequest(ServiceRequest):
2304-
SAMLMetadataDocument: SAMLMetadataDocumentType
2323+
SAMLMetadataDocument: Optional[SAMLMetadataDocumentType]
23052324
SAMLProviderArn: arnType
2325+
AssertionEncryptionMode: Optional[assertionEncryptionModeType]
2326+
AddPrivateKey: Optional[privateKeyType]
2327+
RemovePrivateKey: Optional[privateKeyIdType]
23062328

23072329

23082330
class UpdateSAMLProviderResponse(TypedDict, total=False):
@@ -2531,6 +2553,8 @@ def create_saml_provider(
25312553
saml_metadata_document: SAMLMetadataDocumentType,
25322554
name: SAMLProviderNameType,
25332555
tags: tagListType = None,
2556+
assertion_encryption_mode: assertionEncryptionModeType = None,
2557+
add_private_key: privateKeyType = None,
25342558
**kwargs,
25352559
) -> CreateSAMLProviderResponse:
25362560
raise NotImplementedError
@@ -3802,8 +3826,11 @@ def update_role_description(
38023826
def update_saml_provider(
38033827
self,
38043828
context: RequestContext,
3805-
saml_metadata_document: SAMLMetadataDocumentType,
38063829
saml_provider_arn: arnType,
3830+
saml_metadata_document: SAMLMetadataDocumentType = None,
3831+
assertion_encryption_mode: assertionEncryptionModeType = None,
3832+
add_private_key: privateKeyType = None,
3833+
remove_private_key: privateKeyIdType = None,
38073834
**kwargs,
38083835
) -> UpdateSAMLProviderResponse:
38093836
raise NotImplementedError

0 commit comments

Comments
 (0)