@@ -107,20 +107,29 @@ def __init__(self, project_details: Dict[str, Any]):
107107
108108 def _validate_required_fields (self ) -> None :
109109 """Validate required fields are present in project_details"""
110- required_fields = ['projectName' , 'modality' ]
110+ required_fields = ['project_name' , 'modality' ]
111111 missing_fields = [field for field in required_fields
112112 if not self .project_details .get (field )]
113113 if missing_fields :
114114 raise ValueError (f"Missing required fields: { ', ' .join (missing_fields )} " )
115115
116116 # Validate project stage
117- if self .project_details ['projectStage' ] not in [e .value for e in ProjectStage ]:
118- raise ValueError (f"Invalid projectStage. Must be one of: { [e .value for e in ProjectStage ]} " )
117+ project_stage = self .project_details .get ('project_stage' )
118+ if project_stage and project_stage not in [e .value for e in ProjectStage ]:
119+ raise ValueError (f"Invalid project_stage. Must be one of: { [e .value for e in ProjectStage ]} " )
119120
120121 def _get_standard_output_config (self ) -> Dict [str , Any ]:
121122 """Get standard output configuration if present"""
122123 config = self .project_details .get ('standardOutputConfiguration' , {})
123124 modality = self .project_details .get ('modality' )
125+
126+ # If modality is not provided, return empty dict
127+ if not modality :
128+ return {}
129+
130+ # Convert modality to lowercase for case-insensitive comparison
131+ modality = modality .lower ()
132+
124133 if modality == Modality .DOCUMENT .value :
125134 return {'document' : self ._get_document_config (config .get ('document' , {}))}
126135 elif modality == Modality .IMAGE .value :
@@ -234,9 +243,9 @@ def _get_audio_config(self, config: Dict[str, Any]) -> Dict[str, Any]:
234243 def project_config (self ) -> Dict [str , Any ]:
235244 """Get complete project configuration"""
236245 config = {
237- 'projectName' : self .project_details [ 'projectName' ] ,
238- 'projectDescription' : self .project_details .get ('projectDescription' , 'sample description' ),
239- 'projectStage' : self .project_details .get ('projectStage' , 'LIVE' )
246+ 'projectName' : self .project_details . get ( 'project_name' ) ,
247+ 'projectDescription' : self .project_details .get ('project_description' , 'sample description' ),
248+ 'projectStage' : self .project_details .get ('project_stage' , 'LIVE' )
240249 }
241250
242251 # Add standard output configuration if present
@@ -268,7 +277,7 @@ def project_config(self) -> Dict[str, Any]:
268277
269278 def __str__ (self ) -> str :
270279 """String representation of project configuration"""
271- return f"ProjectConfig(name={ self .project_details [ 'projectName' ] } , stage={ self .project_details [ 'projectStage' ] } )"
280+ return f"ProjectConfig(name={ self .project_details . get ( 'project_name' ) } , stage={ self .project_details . get ( 'project_stage' ) } )"
272281
273282class ListProjectsConfig :
274283 """Configuration class for listing Bedrock Data Automation projects"""
0 commit comments