@@ -28,7 +28,8 @@ import {
2828 FormControlLabel ,
2929 Typography ,
3030 Box ,
31- CircularProgress
31+ CircularProgress ,
32+ Checkbox
3233} from '@mui/material' ;
3334import CalendarMonthIcon from '@mui/icons-material/CalendarMonth' ;
3435import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider' ;
@@ -195,6 +196,7 @@ const CreateVertexScheduler = ({
195196 network : string ;
196197 subnetwork : string ;
197198 } | null > ( null ) ;
199+ const [ enablePublicIp , setEnablePublicIp ] = useState < boolean > ( true ) ;
198200 const [ maxRuns , setMaxRuns ] = useState < string > ( '' ) ;
199201 const [ scheduleField , setScheduleField ] = useState < string > ( '' ) ;
200202 const [ scheduleMode , setScheduleMode ] = useState < scheduleMode > ( 'runNow' ) ;
@@ -897,7 +899,8 @@ const CreateVertexScheduler = ({
897899 end_time : endDate ,
898900 disk_type : diskTypeSelected ,
899901 disk_size : diskSize ,
900- parameters : [ ] // Parameters for future scope
902+ parameters : [ ] , // Parameters for future scope
903+ enable_public_ip : enablePublicIp
901904 } ;
902905
903906 if ( acceleratorType && acceleratedCount ) {
@@ -1070,6 +1073,7 @@ const CreateVertexScheduler = ({
10701073 setDiskTypeSelected ( vertexSchedulerDetails . disk_type ) ;
10711074 setDiskSize ( vertexSchedulerDetails . disk_size ) ;
10721075 setGcsPath ( vertexSchedulerDetails . gcs_notebook_source ?? '' ) ;
1076+ setEnablePublicIp ( vertexSchedulerDetails . enable_public_ip ?? true ) ;
10731077
10741078 if ( 'kms_key_name' in vertexSchedulerDetails ) {
10751079 if ( vertexSchedulerDetails . kms_key_name ) {
@@ -1869,6 +1873,27 @@ const CreateVertexScheduler = ({
18691873 ) }
18701874 </ >
18711875 ) }
1876+
1877+ { /* Enable public IP checkbox - shown when custom network is configured */ }
1878+ { ( primaryNetworkSelected || sharedNetworkSelected ) && (
1879+ < div className = "create-scheduler-form-element" >
1880+ < FormControlLabel
1881+ control = {
1882+ < Checkbox
1883+ checked = { enablePublicIp }
1884+ onChange = { ( e ) => setEnablePublicIp ( e . target . checked ) }
1885+ disabled = { editMode }
1886+ />
1887+ }
1888+ label = {
1889+ < Typography variant = "body2" >
1890+ Enable public IP (allows internet access)
1891+ </ Typography >
1892+ }
1893+ />
1894+ </ div >
1895+ ) }
1896+
18721897 < div className = "create-scheduler-label" > Schedule</ div >
18731898 < div className = "create-scheduler-form-element" >
18741899 < FormControl >
0 commit comments