Skip to content

Commit 1f7e772

Browse files
feat(api): Add saved extensions API and enhance transformation options
Added complete CRUD API endpoints for saved extensions, allowing users to save complex extension configurations and reuse them across multiple assets Fixed metadata endpoint path: /v1/files/metadata → /v1/metadata Added and improved transformation options e.g. color replace, layer modes, distort effect, gradient background etc.
1 parent aea74b3 commit 1f7e772

13 files changed

Lines changed: 3678 additions & 153 deletions

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 43
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/imagekit-inc%2Fimagekit-9d184cb502ab32a85db2889c796cdfebe812f2a55a604df79c85dd4b5e7e2add.yml
3-
openapi_spec_hash: a9aa620376fce66532c84f9364209b0b
4-
config_hash: 71cab8223bb5610c6c7ca6e9c4cc1f89
1+
configured_endpoints: 48
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/imagekit-inc%2Fimagekit-7a3257eb171467b637c8d72877f201c2e6038c71ed447a9453230b7309ce7416.yml
3+
openapi_spec_hash: 87b000a9989ad5c9526f28d91b8a1749
4+
config_hash: aeb6eb949d73382270bbd8bbf2e4cf2a

aliases.go

Lines changed: 349 additions & 13 deletions
Large diffs are not rendered by default.

api.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
# Shared Params Types
22

33
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#BaseOverlayParam">BaseOverlayParam</a>
4+
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#ExtensionConfigUnionParam">ExtensionConfigUnionParam</a>
45
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#ExtensionsParam">ExtensionsParam</a>
56
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#GetImageAttributesOptionsParam">GetImageAttributesOptionsParam</a>
67
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#ImageOverlayParam">ImageOverlayParam</a>
78
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#OverlayUnionParam">OverlayUnionParam</a>
89
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#OverlayPositionParam">OverlayPositionParam</a>
910
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#OverlayTimingParam">OverlayTimingParam</a>
1011
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#ResponsiveImageAttributesParam">ResponsiveImageAttributesParam</a>
12+
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#SavedExtensionParam">SavedExtensionParam</a>
1113
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#SolidColorOverlayParam">SolidColorOverlayParam</a>
1214
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#SolidColorOverlayTransformationParam">SolidColorOverlayTransformationParam</a>
1315
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#SrcOptionsParam">SrcOptionsParam</a>
@@ -20,6 +22,11 @@
2022
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#TransformationPosition">TransformationPosition</a>
2123
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#VideoOverlayParam">VideoOverlayParam</a>
2224

25+
# Shared Response Types
26+
27+
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#ExtensionConfigUnion">ExtensionConfigUnion</a>
28+
- <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#SavedExtension">SavedExtension</a>
29+
2330
# Dummy
2431

2532
Methods:
@@ -101,7 +108,17 @@ Methods:
101108
Methods:
102109

103110
- <code title="get /v1/files/{fileId}/metadata">client.Files.Metadata.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#FileMetadataService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, fileID <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2">imagekit</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#Metadata">Metadata</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
104-
- <code title="get /v1/files/metadata">client.Files.Metadata.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#FileMetadataService.GetFromURL">GetFromURL</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, query <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2">imagekit</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#FileMetadataGetFromURLParams">FileMetadataGetFromURLParams</a>) (<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2">imagekit</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#Metadata">Metadata</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
111+
- <code title="get /v1/metadata">client.Files.Metadata.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#FileMetadataService.GetFromURL">GetFromURL</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, query <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2">imagekit</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#FileMetadataGetFromURLParams">FileMetadataGetFromURLParams</a>) (<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2">imagekit</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#Metadata">Metadata</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
112+
113+
# SavedExtensions
114+
115+
Methods:
116+
117+
- <code title="post /v1/saved-extensions">client.SavedExtensions.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#SavedExtensionService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2">imagekit</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#SavedExtensionNewParams">SavedExtensionNewParams</a>) (<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#SavedExtension">SavedExtension</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
118+
- <code title="patch /v1/saved-extensions/{id}">client.SavedExtensions.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#SavedExtensionService.Update">Update</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>, body <a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2">imagekit</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#SavedExtensionUpdateParams">SavedExtensionUpdateParams</a>) (<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#SavedExtension">SavedExtension</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
119+
- <code title="get /v1/saved-extensions">client.SavedExtensions.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#SavedExtensionService.List">List</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>) ([]<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#SavedExtension">SavedExtension</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
120+
- <code title="delete /v1/saved-extensions/{id}">client.SavedExtensions.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#SavedExtensionService.Delete">Delete</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) <a href="https://pkg.go.dev/builtin#error">error</a></code>
121+
- <code title="get /v1/saved-extensions/{id}">client.SavedExtensions.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2#SavedExtensionService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared">shared</a>.<a href="https://pkg.go.dev/github.com/imagekit-developer/imagekit-go/v2/shared#SavedExtension">SavedExtension</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
105122

106123
# Assets
107124

betav2file_test.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,64 @@ func TestBetaV2FileUploadWithOptionalParams(t *testing.T) {
5858
},
5959
}, shared.ExtensionUnionParam{
6060
OfAIAutoDescription: &shared.ExtensionAIAutoDescriptionParam{},
61+
}, shared.ExtensionUnionParam{
62+
OfAITasks: &shared.ExtensionAITasksParam{
63+
Tasks: []shared.ExtensionAITasksTaskUnionParam{{
64+
OfSelectTags: &shared.ExtensionAITasksTaskSelectTagsParam{
65+
Instruction: "What types of clothing items are visible in this image?",
66+
Vocabulary: []string{"shirt", "tshirt", "dress", "trousers", "jacket"},
67+
MaxSelections: imagekit.Int(1),
68+
MinSelections: imagekit.Int(0),
69+
},
70+
}, {
71+
OfYesNo: &shared.ExtensionAITasksTaskYesNoParam{
72+
Instruction: "Is this a luxury or high-end fashion item?",
73+
OnNo: shared.ExtensionAITasksTaskYesNoOnNoParam{
74+
AddTags: []string{"luxury", "premium"},
75+
RemoveTags: []string{"budget", "affordable"},
76+
SetMetadata: []shared.ExtensionAITasksTaskYesNoOnNoSetMetadataParam{{
77+
Field: "price_range",
78+
Value: shared.ExtensionAITasksTaskYesNoOnNoSetMetadataValueUnionParam{
79+
OfString: imagekit.String("premium"),
80+
},
81+
}},
82+
UnsetMetadata: []shared.ExtensionAITasksTaskYesNoOnNoUnsetMetadataParam{{
83+
Field: "price_range",
84+
}},
85+
},
86+
OnUnknown: shared.ExtensionAITasksTaskYesNoOnUnknownParam{
87+
AddTags: []string{"luxury", "premium"},
88+
RemoveTags: []string{"budget", "affordable"},
89+
SetMetadata: []shared.ExtensionAITasksTaskYesNoOnUnknownSetMetadataParam{{
90+
Field: "price_range",
91+
Value: shared.ExtensionAITasksTaskYesNoOnUnknownSetMetadataValueUnionParam{
92+
OfString: imagekit.String("premium"),
93+
},
94+
}},
95+
UnsetMetadata: []shared.ExtensionAITasksTaskYesNoOnUnknownUnsetMetadataParam{{
96+
Field: "price_range",
97+
}},
98+
},
99+
OnYes: shared.ExtensionAITasksTaskYesNoOnYesParam{
100+
AddTags: []string{"luxury", "premium"},
101+
RemoveTags: []string{"budget", "affordable"},
102+
SetMetadata: []shared.ExtensionAITasksTaskYesNoOnYesSetMetadataParam{{
103+
Field: "price_range",
104+
Value: shared.ExtensionAITasksTaskYesNoOnYesSetMetadataValueUnionParam{
105+
OfString: imagekit.String("premium"),
106+
},
107+
}},
108+
UnsetMetadata: []shared.ExtensionAITasksTaskYesNoOnYesUnsetMetadataParam{{
109+
Field: "price_range",
110+
}},
111+
},
112+
},
113+
}},
114+
},
115+
}, shared.ExtensionUnionParam{
116+
OfSavedExtension: &shared.ExtensionSavedExtensionParam{
117+
ID: "ext_abc123",
118+
},
61119
}},
62120
Folder: imagekit.String("folder"),
63121
IsPrivateFile: imagekit.Bool(true),

client.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type Client struct {
2121
Dummy DummyService
2222
CustomMetadataFields CustomMetadataFieldService
2323
Files FileService
24+
SavedExtensions SavedExtensionService
2425
Assets AssetService
2526
Cache CacheService
2627
Folders FolderService
@@ -64,6 +65,7 @@ func NewClient(opts ...option.RequestOption) (r Client) {
6465
r.Dummy = NewDummyService(opts...)
6566
r.CustomMetadataFields = NewCustomMetadataFieldService(opts...)
6667
r.Files = NewFileService(opts...)
68+
r.SavedExtensions = NewSavedExtensionService(opts...)
6769
r.Assets = NewAssetService(opts...)
6870
r.Cache = NewCacheService(opts...)
6971
r.Folders = NewFolderService(opts...)

dummy.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ func (r *DummyService) New(ctx context.Context, body DummyNewParams, opts ...opt
4646

4747
type DummyNewParams struct {
4848
BaseOverlay shared.BaseOverlayParam `json:"baseOverlay,omitzero"`
49+
// Configuration object for an extension (base extensions only, not saved extension
50+
// references).
51+
ExtensionConfig shared.ExtensionConfigUnionParam `json:"extensionConfig,omitzero"`
4952
// Array of extensions to be applied to the asset. Each extension can be configured
5053
// with specific parameters based on the extension type.
5154
Extensions shared.ExtensionsParam `json:"extensions,omitzero"`
@@ -63,7 +66,9 @@ type DummyNewParams struct {
6366
OverlayTiming shared.OverlayTimingParam `json:"overlayTiming,omitzero"`
6467
// Resulting set of attributes suitable for an HTML `<img>` element. Useful for
6568
// enabling responsive image loading with `srcSet` and `sizes`.
66-
ResponsiveImageAttributes shared.ResponsiveImageAttributesParam `json:"responsiveImageAttributes,omitzero"`
69+
ResponsiveImageAttributes shared.ResponsiveImageAttributesParam `json:"responsiveImageAttributes,omitzero"`
70+
// Saved extension object containing extension configuration.
71+
SavedExtensions shared.SavedExtensionParam `json:"savedExtensions,omitzero"`
6772
SolidColorOverlay shared.SolidColorOverlayParam `json:"solidColorOverlay,omitzero"`
6873
SolidColorOverlayTransformation shared.SolidColorOverlayTransformationParam `json:"solidColorOverlayTransformation,omitzero"`
6974
// Options for generating ImageKit URLs with transformations. See the

0 commit comments

Comments
 (0)