@@ -1082,15 +1082,18 @@ type EnvironmentSpecDevcontainer struct {
10821082 // ```
10831083 // this.matches('^$|^[^/].*')
10841084 // ```
1085- DevcontainerFilePath string `json:"devcontainerFilePath"`
1086- Session string `json:"session"`
1087- JSON environmentSpecDevcontainerJSON `json:"-"`
1085+ DevcontainerFilePath string `json:"devcontainerFilePath"`
1086+ // Experimental: dotfiles is the dotfiles configuration of the devcontainer
1087+ Dotfiles EnvironmentSpecDevcontainerDotfiles `json:"dotfiles"`
1088+ Session string `json:"session"`
1089+ JSON environmentSpecDevcontainerJSON `json:"-"`
10881090}
10891091
10901092// environmentSpecDevcontainerJSON contains the JSON metadata for the struct
10911093// [EnvironmentSpecDevcontainer]
10921094type environmentSpecDevcontainerJSON struct {
10931095 DevcontainerFilePath apijson.Field
1096+ Dotfiles apijson.Field
10941097 Session apijson.Field
10951098 raw string
10961099 ExtraFields map [string ]apijson.Field
@@ -1104,6 +1107,39 @@ func (r environmentSpecDevcontainerJSON) RawJSON() string {
11041107 return r .raw
11051108}
11061109
1110+ // Experimental: dotfiles is the dotfiles configuration of the devcontainer
1111+ type EnvironmentSpecDevcontainerDotfiles struct {
1112+ // URL of a dotfiles Git repository (e.g. https://github.com/owner/repository)
1113+ Repository string `json:"repository,required" format:"uri"`
1114+ // install_command is the command to run after cloning the dotfiles repository.
1115+ // Defaults to run the first file of `install.sh`, `install`, `bootstrap.sh`,
1116+ // `bootstrap`, `setup.sh` and `setup` found in the dotfiles repository's root
1117+ // folder.
1118+ InstallCommand string `json:"installCommand"`
1119+ // target_path is the path to clone the dotfiles repository to. Defaults to
1120+ // `~/dotfiles`.
1121+ TargetPath string `json:"targetPath"`
1122+ JSON environmentSpecDevcontainerDotfilesJSON `json:"-"`
1123+ }
1124+
1125+ // environmentSpecDevcontainerDotfilesJSON contains the JSON metadata for the
1126+ // struct [EnvironmentSpecDevcontainerDotfiles]
1127+ type environmentSpecDevcontainerDotfilesJSON struct {
1128+ Repository apijson.Field
1129+ InstallCommand apijson.Field
1130+ TargetPath apijson.Field
1131+ raw string
1132+ ExtraFields map [string ]apijson.Field
1133+ }
1134+
1135+ func (r * EnvironmentSpecDevcontainerDotfiles ) UnmarshalJSON (data []byte ) (err error ) {
1136+ return apijson .UnmarshalRoot (data , r )
1137+ }
1138+
1139+ func (r environmentSpecDevcontainerDotfilesJSON ) RawJSON () string {
1140+ return r .raw
1141+ }
1142+
11071143// machine is the machine spec of the environment
11081144type EnvironmentSpecMachine struct {
11091145 // Class denotes the class of the environment we ought to start
@@ -1378,13 +1414,33 @@ type EnvironmentSpecDevcontainerParam struct {
13781414 // this.matches('^$|^[^/].*')
13791415 // ```
13801416 DevcontainerFilePath param.Field [string ] `json:"devcontainerFilePath"`
1381- Session param.Field [string ] `json:"session"`
1417+ // Experimental: dotfiles is the dotfiles configuration of the devcontainer
1418+ Dotfiles param.Field [EnvironmentSpecDevcontainerDotfilesParam ] `json:"dotfiles"`
1419+ Session param.Field [string ] `json:"session"`
13821420}
13831421
13841422func (r EnvironmentSpecDevcontainerParam ) MarshalJSON () (data []byte , err error ) {
13851423 return apijson .MarshalRoot (r )
13861424}
13871425
1426+ // Experimental: dotfiles is the dotfiles configuration of the devcontainer
1427+ type EnvironmentSpecDevcontainerDotfilesParam struct {
1428+ // URL of a dotfiles Git repository (e.g. https://github.com/owner/repository)
1429+ Repository param.Field [string ] `json:"repository,required" format:"uri"`
1430+ // install_command is the command to run after cloning the dotfiles repository.
1431+ // Defaults to run the first file of `install.sh`, `install`, `bootstrap.sh`,
1432+ // `bootstrap`, `setup.sh` and `setup` found in the dotfiles repository's root
1433+ // folder.
1434+ InstallCommand param.Field [string ] `json:"installCommand"`
1435+ // target_path is the path to clone the dotfiles repository to. Defaults to
1436+ // `~/dotfiles`.
1437+ TargetPath param.Field [string ] `json:"targetPath"`
1438+ }
1439+
1440+ func (r EnvironmentSpecDevcontainerDotfilesParam ) MarshalJSON () (data []byte , err error ) {
1441+ return apijson .MarshalRoot (r )
1442+ }
1443+
13881444// machine is the machine spec of the environment
13891445type EnvironmentSpecMachineParam struct {
13901446 // Class denotes the class of the environment we ought to start
@@ -2215,7 +2271,7 @@ func (r EnvironmentStatusSSHPublicKeysPhase) IsKnown() bool {
22152271
22162272type EnvironmentNewResponse struct {
22172273 // +resource get environment
2218- Environment Environment `json:"environment"`
2274+ Environment Environment `json:"environment,required "`
22192275 JSON environmentNewResponseJSON `json:"-"`
22202276}
22212277
@@ -2237,7 +2293,7 @@ func (r environmentNewResponseJSON) RawJSON() string {
22372293
22382294type EnvironmentGetResponse struct {
22392295 // +resource get environment
2240- Environment Environment `json:"environment"`
2296+ Environment Environment `json:"environment,required "`
22412297 JSON environmentGetResponseJSON `json:"-"`
22422298}
22432299
@@ -2263,7 +2319,7 @@ type EnvironmentDeleteResponse = interface{}
22632319
22642320type EnvironmentNewFromProjectResponse struct {
22652321 // +resource get environment
2266- Environment Environment `json:"environment"`
2322+ Environment Environment `json:"environment,required "`
22672323 JSON environmentNewFromProjectResponseJSON `json:"-"`
22682324}
22692325
@@ -2285,7 +2341,7 @@ func (r environmentNewFromProjectResponseJSON) RawJSON() string {
22852341
22862342type EnvironmentNewLogsTokenResponse struct {
22872343 // access_token is the token that can be used to access the logs of the environment
2288- AccessToken string `json:"accessToken"`
2344+ AccessToken string `json:"accessToken,required "`
22892345 JSON environmentNewLogsTokenResponseJSON `json:"-"`
22902346}
22912347
0 commit comments