APIGateway: add connection type field to integration model (#5867)
This commit is contained in:
		
							parent
							
								
									00ad788975
								
							
						
					
					
						commit
						931bb6d960
					
				| @ -161,6 +161,7 @@ class Integration(BaseModel): | ||||
|         request_parameters: Optional[Dict[str, Any]] = None, | ||||
|         content_handling: Optional[str] = None, | ||||
|         credentials: Optional[str] = None, | ||||
|         connection_type: Optional[str] = None, | ||||
|     ): | ||||
|         self.integration_type = integration_type | ||||
|         self.uri = uri | ||||
| @ -174,6 +175,7 @@ class Integration(BaseModel): | ||||
|         self.request_parameters = request_parameters | ||||
|         self.content_handling = content_handling | ||||
|         self.credentials = credentials | ||||
|         self.connection_type = connection_type | ||||
|         self.integration_responses: Optional[Dict[str, IntegrationResponse]] = None | ||||
| 
 | ||||
|     def to_json(self) -> Dict[str, Any]: | ||||
| @ -196,6 +198,7 @@ class Integration(BaseModel): | ||||
|             "requestParameters": self.request_parameters, | ||||
|             "contentHandling": self.content_handling, | ||||
|             "credentials": self.credentials, | ||||
|             "connectionType": self.connection_type, | ||||
|         } | ||||
| 
 | ||||
|     def create_integration_response( | ||||
| @ -502,6 +505,7 @@ class Resource(CloudFormationModel): | ||||
|         request_parameters: Optional[Dict[str, Any]] = None, | ||||
|         content_handling: Optional[str] = None, | ||||
|         credentials: Optional[str] = None, | ||||
|         connection_type: Optional[str] = None, | ||||
|     ) -> Integration: | ||||
|         integration_method = integration_method or method_type | ||||
|         integration = Integration( | ||||
| @ -516,6 +520,7 @@ class Resource(CloudFormationModel): | ||||
|             request_parameters=request_parameters, | ||||
|             content_handling=content_handling, | ||||
|             credentials=credentials, | ||||
|             connection_type=connection_type, | ||||
|         ) | ||||
|         self.resource_methods[method_type].method_integration = integration | ||||
|         return integration | ||||
| @ -1911,6 +1916,7 @@ class APIGatewayBackend(BaseBackend): | ||||
|         timeout_in_millis: Optional[str] = None, | ||||
|         request_parameters: Optional[Dict[str, Any]] = None, | ||||
|         content_handling: Optional[str] = None, | ||||
|         connection_type: Optional[str] = None, | ||||
|     ) -> Integration: | ||||
|         resource = self.get_resource(function_id, resource_id) | ||||
|         if credentials and not re.match( | ||||
| @ -1955,6 +1961,7 @@ class APIGatewayBackend(BaseBackend): | ||||
|             request_parameters=request_parameters, | ||||
|             content_handling=content_handling, | ||||
|             credentials=credentials, | ||||
|             connection_type=connection_type, | ||||
|         ) | ||||
|         return integration | ||||
| 
 | ||||
|  | ||||
| @ -470,6 +470,7 @@ class APIGatewayResponse(BaseResponse): | ||||
|             timeout_in_millis = self._get_param("timeoutInMillis") | ||||
|             request_parameters = self._get_param("requestParameters") | ||||
|             content_handling = self._get_param("contentHandling") | ||||
|             connection_type = self._get_param("connectionType") | ||||
|             self.backend.get_method(function_id, resource_id, method_type) | ||||
| 
 | ||||
|             integration_http_method = self._get_param( | ||||
| @ -491,6 +492,7 @@ class APIGatewayResponse(BaseResponse): | ||||
|                 timeout_in_millis=timeout_in_millis, | ||||
|                 request_parameters=request_parameters, | ||||
|                 content_handling=content_handling, | ||||
|                 connection_type=connection_type, | ||||
|             ) | ||||
|             return 201, {}, json.dumps(integration_response.to_json()) | ||||
|         elif self.method == "DELETE": | ||||
|  | ||||
| @ -533,6 +533,7 @@ def test_integrations(): | ||||
|         contentHandling="CONVERT_TO_TEXT", | ||||
|         credentials=f"arn:aws:iam::{DEFAULT_ACCOUNT_ID}:role/apigateway-invoke-lambda-exec-role", | ||||
|         tlsConfig={"insecureSkipVerification": True}, | ||||
|         connectionType="INTERNET", | ||||
|     ) | ||||
| 
 | ||||
|     # this is hard to match against, so remove it | ||||
| @ -550,6 +551,7 @@ def test_integrations(): | ||||
|             "contentHandling": "CONVERT_TO_TEXT", | ||||
|             "credentials": f"arn:aws:iam::{DEFAULT_ACCOUNT_ID}:role/apigateway-invoke-lambda-exec-role", | ||||
|             "tlsConfig": {"insecureSkipVerification": True}, | ||||
|             "connectionType": "INTERNET", | ||||
|         } | ||||
|     ) | ||||
| 
 | ||||
| @ -571,6 +573,7 @@ def test_integrations(): | ||||
|             "contentHandling": "CONVERT_TO_TEXT", | ||||
|             "credentials": f"arn:aws:iam::{DEFAULT_ACCOUNT_ID}:role/apigateway-invoke-lambda-exec-role", | ||||
|             "tlsConfig": {"insecureSkipVerification": True}, | ||||
|             "connectionType": "INTERNET", | ||||
|         } | ||||
|     ) | ||||
| 
 | ||||
| @ -591,6 +594,7 @@ def test_integrations(): | ||||
|             "contentHandling": "CONVERT_TO_TEXT", | ||||
|             "credentials": f"arn:aws:iam::{DEFAULT_ACCOUNT_ID}:role/apigateway-invoke-lambda-exec-role", | ||||
|             "tlsConfig": {"insecureSkipVerification": True}, | ||||
|             "connectionType": "INTERNET", | ||||
|         } | ||||
|     ) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user