diff --git a/internal/cloudapi/v2/handler.go b/internal/cloudapi/v2/handler.go index 390c828c78d..a1246c9df21 100644 --- a/internal/cloudapi/v2/handler.go +++ b/internal/cloudapi/v2/handler.go @@ -384,7 +384,12 @@ func targetResultToUploadStatus(t *target.TargetResult) (*UploadStatus, error) { uploadOptions = OCIUploadStatus{ Url: ociOptions.URL, } - + case target.TargetNamePulpOSTree: + uploadType = UploadTypesPulp + pulpOSTreeOptions := t.Options.(*target.PulpOSTreeTargetResultOptions) + uploadOptions = PulpOSTreeUploadStatus{ + RepoUrl: pulpOSTreeOptions.RepoURL, + } default: return nil, fmt.Errorf("unknown upload target: %s", t.Name) } diff --git a/internal/cloudapi/v2/imagerequest.go b/internal/cloudapi/v2/imagerequest.go index 51ba08a2b1f..9eeabb6c34c 100644 --- a/internal/cloudapi/v2/imagerequest.go +++ b/internal/cloudapi/v2/imagerequest.go @@ -217,6 +217,35 @@ func newOCITarget(ir *ImageRequest, imageType distro.ImageType) (*target.Target, return t, nil } +func newPulpOSTreeTarget(ir *ImageRequest, imageType distro.ImageType) (*target.Target, error) { + var pulpUploadOptions PulpOSTreeUploadOptions + jsonUploadOptions, err := json.Marshal(*ir.UploadOptions) + if err != nil { + return nil, HTTPError(ErrorJSONMarshallingError) + } + err = json.Unmarshal(jsonUploadOptions, &pulpUploadOptions) + if err != nil { + return nil, HTTPError(ErrorJSONUnMarshallingError) + } + serverAddress := "" + if pulpUploadOptions.ServerAddress != nil { + serverAddress = *pulpUploadOptions.ServerAddress + } + repository := "" + if pulpUploadOptions.Repository != nil { + repository = *pulpUploadOptions.Repository + } + t := target.NewPulpOSTreeTarget(&target.PulpOSTreeTargetOptions{ + ServerAddress: serverAddress, + Repository: repository, + BasePath: pulpUploadOptions.Basepath, + }) + + t.ImageName = fmt.Sprintf("composer-api-%s", uuid.New().String()) + t.OsbuildArtifact.ExportFilename = imageType.Filename() + return t, nil +} + // Returns the name of the default target for a given image type name or error // if the image type name is unknown. func getDefaultTarget(imageType ImageTypes) (ImageRequestUploadTarget, error) { @@ -318,6 +347,10 @@ func targetSupportMap() map[ImageRequestUploadTarget]map[ImageTypes]bool { ImageRequestUploadTargetOrgOsbuildOci: { ImageTypesOci: true, }, + ImageRequestUploadTargetOrgOsbuildPulpOstree: { + ImageTypesEdgeCommit: true, + ImageTypesIotCommit: true, + }, } } @@ -364,6 +397,9 @@ func (ir *ImageRequest) GetTarget(request *ComposeRequest, imageType distro.Imag case ImageRequestUploadTargetOrgOsbuildOci: irTarget, err = newOCITarget(ir, imageType) + case ImageRequestUploadTargetOrgOsbuildPulpOstree: + irTarget, err = newPulpOSTreeTarget(ir, imageType) + default: return nil, HTTPError(ErrorInvalidUploadTarget) } diff --git a/internal/cloudapi/v2/openapi.v2.gen.go b/internal/cloudapi/v2/openapi.v2.gen.go index c006400db5f..8d47348f8eb 100644 --- a/internal/cloudapi/v2/openapi.v2.gen.go +++ b/internal/cloudapi/v2/openapi.v2.gen.go @@ -44,6 +44,8 @@ const ( ImageRequestUploadTargetOrgOsbuildGcp ImageRequestUploadTarget = "org.osbuild.gcp" ImageRequestUploadTargetOrgOsbuildOci ImageRequestUploadTarget = "org.osbuild.oci" + + ImageRequestUploadTargetOrgOsbuildPulpOstree ImageRequestUploadTarget = "org.osbuild.pulp.ostree" ) // Defines values for ImageStatusValue. @@ -136,6 +138,8 @@ const ( UploadTypesGcp UploadTypes = "gcp" UploadTypesOciObjectstorage UploadTypes = "oci.objectstorage" + + UploadTypesPulp UploadTypes = "pulp" ) // AWSEC2CloneCompose defines model for AWSEC2CloneCompose. @@ -694,6 +698,21 @@ type PackageMetadata struct { Version string `json:"version"` } +// PulpOSTreeUploadOptions defines model for PulpOSTreeUploadOptions. +type PulpOSTreeUploadOptions struct { + // Basepath for distributing the repository + Basepath string `json:"basepath"` + + // Repository to import the ostree commit to + Repository *string `json:"repository,omitempty"` + ServerAddress *string `json:"server_address,omitempty"` +} + +// PulpOSTreeUploadStatus defines model for PulpOSTreeUploadStatus. +type PulpOSTreeUploadStatus struct { + RepoUrl string `json:"repo_url"` +} + // Repository configuration. // At least one of the 'baseurl', 'mirrorlist', 'metalink' properties must // be specified. If more of them are specified, the order of precedence is @@ -1064,154 +1083,155 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "H4sIAAAAAAAC/+x9eXPiONP4V1Hx/qpmpsJ9BJKqreclhCQk5IScy1QeYQtbwZYcSYaQqfnuv5JkGxtM", - "gJnZfY539o+dYEutVqvV6lP+ljGo61GCiOCZ/W8ZDzLoIoFY8MtC8l8TcYNhT2BKMvuZK2ghgImJ3jLZ", - "DHqDruegRPMJdHyU2c+UMt+/ZzNY9nn1EZtlshkCXflGtcxmuGEjF8ouYubJ51wwTCzVjeP3lLEvfHeI", - "GKAjgAVyOcAEIGjYIAAYxyYEEGFTLK7ER7X9CJ/v4UsFunnfa7fKLYcS1JLk42ogaJpYogmdK0Y9xASW", - "iIygw1E248UefcswZKn5LA2UzXAbMvQ8xcJ+hoZB/WBhgpll9v/MlMqVam233tgrlsqZr9mMokQqrOAB", - "ZAzO1NwZevUxQ6YEE+DwNWpGhy/IELKfnt+t51BoXirS8x+eYIR4Bvm5KeIiV8pk/85pZzOcQI/bVDzr", - "1Y7j5M5y4dtlrNIJlo7rOjL2BBS+3iUJQkEXJzGCLs4VjUalWN+r1Ou12l7NrA7TKLYliRcmI8fNruGB", - "XuVnWMDzhw429BYeQd8RUbvklu6MAEcCCArUa/BZ2AgEXYDavF+yAAKHEisL6HDkcwMKZILbm+6AYA4Y", - "Ej4jyMyDjuAAvXmYQQkauNiyBRgiwCkliAFhQwJGlAEqbMSAr+Y2IAIyCwmeH5ABmeMimI/ksNymTCAm", - "RwOxwQAk5oDg5ICYA4k7hy4CkKuh5O/4cGA+2nyJhpQ6CJKfX9TNlnMVK/rMSRfF8SFko1T47z5DP8Mu", - "2IUWinbogtSXFKUjRU1NR2QC1UEuOnB9rtbZJ/jVl0eTamjhCSKAIU59ZiBgMep7ebXEchC5WNTFQnLS", - "iFFXdZETRVzIdWeQmNQFlCAwhByZgBIAwe1t5xBgPiAWIohJNtQLmRAoCrG0HetQA4pgeZMT7AZvwkl6", - "jE6wnGSI/rNCPwumNmJINVGjSPb0HVNNPqQLJLKbhblATOF3QqeSox3MBYCOA0I0+P6A2EJ4fL9QMKnB", - "8y42GOV0JPIGdQuI5HxeMBxcgHJtC4Go+8cEo+kf6lHOcHDOgQJx8T/wPZSFz3Kg52iQT4rkEuPwkSQ9", - "oQJwDxl4hJGZBVjIhyYyfSOxICvosEh0uT2QL9kpXVDG+37MXUl22YDci6j0qW9AchOAOVYjph13/jBC", - "4Rmby0h1DiVK8WY/gEwV1czGsGzk4LBczVWrpUpur2jUcrulcqW4ixrFPVROw04gAon4AC+JhG60GVYB", - "C44wMdVa6x2qZAa4okxAZxNeDPlQ4AnKmZghQ1A2K4x8YkIXEQEdvvQ2Z9NpTtCcHDqnUV4gUs2oo1Ft", - "uJsrGZVRrmrCYg7ulsu54rC4WyxX9sy6WV8reecUW17bJQ5cIz9XyeekhNxE5CwgGQOQhkJcnz2g5kyO", - "Qgm6HGX2//yW+X8MjTL7mf8pzA2GQqASF1L04e9fFyDeIO5REmjKjrMB1EuF2Q0aIYaIgTLfs0sUMZOU", - "KJUrSOqIOdTYG+ZKZbOSg9Xabq5a3t2t1arVYrFYzGQzI8pcKDL7Gd9Xy7OGamYKtaLZzRfrxyf1UfsE", - "S+hhNT075n8RJfWUutTiv3RSit+HPnZM/XvBYghQyGbechbNBQ8xEYiNoIG+fU+zJcb0RSnsH2F2Rl+w", - "mkv6BgwQ+pAU55DgEeLil9LDjQP9eWIsTG4O/eOZIQFNKOCvnBjlgiH0bFDXxSL1zPpsQ25/CY8uuQIC", - "BM1Tzj8PGmNoadiLvg/1RitTmBiOb2JigYv23U0zE7NJP5pPACMiRBphV9PvRuuoW2rXhs8FdfE7jFTz", - "jzBsJVt/z2ZMLKkz9MWSdcJs5OQaaVTU3M7m+H40ZEc2Due22DnJsNuA+dHtu8TdCQLEluNXyP80qcUj", - "uGunGx4O2URXtCXR5lDSaLYhPpJ0c0Cb9UkQ8k456xaJHwBKTvBjMaPBtRmjbFmTMpGA2JF/SqKZMSko", - "BZ6FmDYbIE/10S2falHjJQT0fOSGIb6rpuIbBuJyLiOIHZ9Jrc1DREoROaH5vpo3XNpYLUoExASlzOwD", - "+1lQ4HMUeSWMEMjc2lppuGrtdRluxMbKY5IAKihA7hCZCVVbm6Vslg8eKd1ejbovoJVqiTj8eYIYHs2W", - "R5dkYNQB/W4PqDZ4hAMDOzaocuQseVoWGUxPMFUrDqf0M86ND5YlWg+GlFtrTkJFmAVjhXKlPaSSClrL", - "Q/ShteUI2p5P1eXW0SYmCzcnjYmt4HhIYn6onocndqhcLHmB5pOhJLDgNY/FHWxzIgU+ruRQR9eHF+nu", - "pQXavPpwlse04M4CX0chWI/9D6i26D3LhlNO5TZ18t4gj3IszdflHT6EHAWziIT7HMPQhjZMkmfItKG2", - "nyWVEBEFeYoV5IndKDQKb43d591qQQKkvEB5IaHQM5zKZAtng2EjY/xseVZMTsbcmfo1Qx5d3QYROHSQ", - "mf5yhB0Ubp4lZCzPGqNZmjK7GuGEtJ83c5GADibjdGq6WJ4jPD9CJmXQY1QuV54yqxD2+4ec4x/6fa5S", - "HvjFYnkXMsP+Q1N5A9LqQaRiuYxEhIN8nTcQEZSr8f/BkIMgR380clIHhm5sZCj/v1vVTxR+B5Cjy94G", - "uKwkuccwZVjM0o9Mzp2YtF4jc1OtwXAHxDXVbdTcUBpsrvzMD9M09lbIKAZW+xGn2QTtN8EgiLdRIjc0", - "IuZ+ToAJSCriedC3EUcDkug9xY6jHGgcmfIgNZHHqTNBgWtXMIwmKIKfB82IQM4sOyBCgpwPH0LjcBJ4", - "h7HrUSY0bCnz/llAwijMfDev0MibhX+CyIE2IIFgnQvEzei6KMlSyBsOgrdQVg9DxNIAjky6rv/R4WUo", - "WDYf9Ag7KHU8CWXGBXK3AhV0SQXI0BQ6znooul1ityiZmO7j7mJ9dqrXXC681gY2XU3tyE5B2KZcpGs3", - "LUpG2PIZ0lGxqGEyWhJ7vGxAWgSHBueH9kvYTkX3uYCOo+jxbKIJNtbEk+IdgO6QBYbPGCLCmQFKnJnc", - "iCPfiRQpZFoox7HrOWpb5wIQUuudeYs6Q8FEkwI3YdoEx4gRtHatz3SrIIDkoHXtu7rV92yGeohwA3rr", - "elx6iPRazatF30cs+u5RLiyG+HaRdw/OpDr1LxGgauU2lqIDEq7uZQ9gwZEzUpHomQZGqIowwgnEjlRX", - "Il5Q6h9glApA2YBAMgvivR5kIu5vMoHHqLToviicw4GfORIcjDByzBDm0nQwB9gilIUBno127MeSlyMm", - "OX0tlF7YTp3udqBupcsWzm0wRjO+KYa93skZSscuFkFZCyXeVsLCLnqnZO0u6YftpFXAt9EYbnmaspBm", - "H83PqiWiNQNGnh+0c6EcxsdGmEAHQCbwCBpCr31S30GE+ww9e5CFCVwf51q0VXsgbCh0fFV1BLFzGKA3", - "HDdkYrr4iqNFHQ0hp89nAzmAQRRVxdspk7/xgkOAqrybeZRpUaIsa5lfpapMzbS8NMRczLkUC0ADiHbp", - "HC1MADUEVMJcqsBxbIr1Wi3dHSzsNFewsEMNKoKfFP1SrXJnJmappijXDpwk1Msp0fltKdSUPWLE9H8F", - "MReUcjXVNLU88qT9KjenEazhEl0SzjnZA8aC5CnB/c28dGq4qPkC4HRPoppyN7DHNpu2ap3i0g3Fykby", - "RZN6XbhFg0rHXOq46wynBRdI5/Ay0H4AJUMKmXKtKAUudKkt+m188uz5w+cxmj3bkNvpixlvhQlHhs/Q", - "+paSlZ8NxES6muFC4kuR6MsHz/IsQ+x5ZfrSEi8rbX61RJZK/Y8I4zCqteyllMsb7mkFHXLgOVBCRm+p", - "Eai/ULCv8YxuJufDWSiRHsj2SNb/S0S8wuhD6b5brf6YdJeg0wR78PxHJPucfn5Iv0i6/31C/Shhvi4E", - "izF5Ts/Blk/j89AQJO2HM4F4HP1yqVqvNiq71UYyruxjInaraitTnwiPYrLg9SpMIFvrTo11zs4RTp9p", - "mr28pYwMYKyTjB5lgq9Wk9Vr8FkaOJQJwCCxEP+irBKPUUEN6igDXRpvcVr+mSmX94XhZbKZRjH4A7vQ", - "U39ulw8dU/5/aP4hABXlUe5bycIm5vLPlJOCRx7eFZZDDN4cSmzmAjkEie1mGfMrrx9VN04OOhKSxER4", - "WybZLzBf2gl03Lr6mXDS0DfGSKz2a0Cipb2Uj71+8+KweXMIeoIyaCFgOJBzcKBA5BdzV4MfuWCElVH9", - "dJePtGtJSqwxcjhKJlfZ8yZoUdfzBQJtYmESeBfzA9KPEgkVoIXU3ikWdnAeH7euQOCJz4KpjQ1b2snS", - "2E+a8gpWkHw9d37mQWeUTEKNcn4H5JOhQ7gsBz2cG/jFYsXwfWyqv9Cn8OQJhpNiXCSw3iYneJ7wvUxK", - "OUX9PpZlGc0p9OvGvbkx+o4YdQN6qiT6iJRQ/samgh6m5OZBDyEQBY8c6pt5i1IrCNFyzToqM7MQZfYG", - "ydTJTF4VrPMdgXMB5lHWr+FQjrgID1Udch2Qz0HCbciemjGjbl8kmQ2bckQA9AV1ocAGdJzZIpGRv0VZ", - "SbpACOii5g3C5hJfBSXJyWnsq9gzPyBtaNghkyiqB2EJACNKRYpAMIzyHObBncJAKy8cQIb2BwSAHPgk", - "lYP9b8iF2MHm90/7oEmA+gWgaTLEuVb9GPIY4krdjMYyJAiwMK08OKIMBNTLgk/QwQb631hY/lM+GDmQ", - "kk3db0sc9NABiFVju7OccpnloOf9L/Q87lGRt4JOYZ84SkrT3JYawfzD/HGJ1wIJTBcTnkoDk7oQk/1v", - "+l85oNqeoOdjgYB+Cj57DLuQzb4sD+44ekAVYOaIBcYAFEHfRYrMt94nebB+WsApfdd9zJphzr0WDpJR", - "ASSzAQnpO1jQNRTDLXFFJlIeQn7YdPEygV2xv0zmTDYTEDj+8C8pbIvO3V+XY63OZgn/eTGHFnIDERMS", - "kRsyiM1cpViplSprldoYuOy6lO3j0FTbQnmw0tL6tXEnTREtlrQxNzeCP1NPg/8yxz8W+F1ftrMAcC0V", - "Vk65EwsKbaG8ht3W6O4qZ8nUWuMmIad22F7H7rgYSnttw85HUYdUJXFpjK1j4SNsbeIZU+0+ovVRfGZb", - "oJCabXPF6ARLE14ej7c33Y2SZlKxi+d6bocYZIaNBTJE4I2ab9ooXWOF4qsfb5BP2Z95Omyik5PXhuB6", - "fdlKTT0ZK/sV0Z7Ijg98SMXF7dELbHo1yWxky+fBvY1IWBNZjJf5yA5YHqwuJtj13QEx0QgTZILhLNZO", - "6TXJw6Va3qvu7dbLe7urnAJaXX+m3kbZyklLat5dl1p+YKUkUr6Cykx9LLtQGHYQuE4iIw2HAUk5fsOK", - "1SQ0qZAHPWPWkEqkkLOWKh6AnPtuVLwV5IlSZuWD5LI8nPJMdvFJnlcWH777DOXDYyr+JkqLWXhuKSdC", - "/Ak1cGyvraodju+exMZY4N6v4S5dddyiMKqwcYJw5BzfOkE6SC2O2GMzAMn6m/S85IVpbpXzm80owus/", - "NWb677CEM0gMXhJHMSETG0qzCpzynA1zzPZx8Cv2J4de9PNdI6OrORH06ok3yR+xfioBIiqfCH7NWUw9", - "iJIipOan+MwyIgCWlNmRRqX+TXTAVMzh6x9z8PL3YmMGpxE4B0+S0CRTZzMT7kkjev5Xjk5gJpuZcieV", - "wGdRcsY2B4snFzYluKCeS5PO8l0UmJUqNYBSoTJOGdDZIKosRYoNB5OkK5hQ7oo/RpQZ6KOcvdU6WDCA", - "ds4kQOs3ORMNfWuz1N+zoJDiB5Kg58Me6XzJlkN9M3cA+QoPicpwTPYsF8vF4l6xni+mWv0qIpSeyzmm", - "LzglkVM+tv3hJimwkI8Xdf1qOU0rniDGl+plKuvL+AP050MFizuHOKfK1xVrE9bSLZo30kYM6h6IqpVa", - "iisSvel0y1XgVwl0Jcw2oU4aT4Wx1iTIMSbpod/wupmUPNRA31l+I6iATtqrBSqoQbPRPTX6ehjdObsy", - "9JpVdfzOz3h2VYbXM4cTtD7m17cxj5yQWFo27hAT7WxTBr52Fx7cdrqHz93LVrPba961ASITzCjRBdMD", - "MoEMaw++9qtq5ot59jmcSE1dl3eok1g55xxnlgcSBXUJh9RtTDRBDvUkYOX9pcSZZbXPVTsf5tlTWgSx", - "FddgLKxFjCYraY62NAd1pzXG4BjNVCR8War2kOCBSNVNgANn1E8GHP3U4h0HEstPLy4M/ZA6zU8dEcMo", - "QTHUM5WVqe+lQAZ1EQeB3ymrbguQ5hBR75X/EHBkUGLCoB4i5uBB5Pm2l7/tH+UaPxffyGYuW53teH41", - "hL/kbpLAttr/lpItjohItVKb6sYXFVfIAqyuhclGm01y+wgJw5YbI4CSBx3XczAKfI//9JnzT9lB2k6Q", - "gylynOyA6EBFIsFbAnODWlC1Z/LppSs6pJ+SYACJhIWwSjuEQVkr+Bys9T4olneL1WHZhLtor1YdmpXq", - "sDFslGGjUkM1WK+b5eFucTSCX7I6ED1kkBh2zsFjBFhU4TWHx2zkzMtHpLL3ZcEXv9wi/WAfLZeSbtDN", - "5u564XiIBGIulttgaqOANNrBn7hUw4UEWoiBzwYkpoM8TL4AbCIisJjpC380fwFBlbNUO5fVi9DizoMW", - "JdKEY8CQzKWq0BbT+CEHhoPl1ky2sREZkIiXIj6QUjNkrBVXBW2e77KYjLW0EexgKZZ9Hukn74ojOa0w", - "MjhI1QipezNMPV5CymN0hB20KvFLQOxQ9WPD5OZ+1CHF4xqO9BGK/fiISVw5cpAhtItu8wi1T36kX9oK", - "L5aUL18zxoz0BC3k0RVvVtYAxRTyZc0bW65ZW/WKQLEq/Sv0qy29iCnRa65g0Q6IlZpyVhMhwlFa7clC", - "u8Xi1vBdUk3ID0hTAAlTH8OBcfUpKMz7lAWf5rVa6ldQI/YJzNdExQUHZIjmbiQVknYpCyG6+vxOepko", - "M3Xs0GPIQKaSzFIFi987JseVEmdIJygtTy1WQfj3FQ5uXSi4Lt9N6pEcWJ4V1P4mL9CaS+dIpq4Qo/Mi", - "woWIyNWx1O6i8gHJvvOSBJWEkDwFEidgTv530D7uXICr4ytwdXvQ7bTAWfsRHHQvW2fq9YAMiHvduTg4", - "bho9gx60m4fdUePxZIzeT3eh6Zw/Tuvw+LjjnEJHNE5fym+Fg/LZjt0Zdfy3Y+HdvdTRgHRvrMPb+u4L", - "7Ne8u8Oae3R+WvHGiKCbgtF3X1+vxxeza24/lOn1w7T9ftsblloX561R69gaPzSuywPy/jRmHaPFjorX", - "5Sk7GzrQN+3bHXwHSfOQu6XGY/uVD2vN20rdFLfsvHL9aN5bezc7D/hqdNe4GZCzg5d+sTK5O7g0z3v8", - "sbLXhS2y2/FKlxOv0WnTQge17x5Lr27r8qoJz4rD05OKP7KqLR+N+U6/NyDT6/s+anXf/Kfu7uX5A728", - "OptOzq9Hb0Or9HDYmPhPxTPxUjAuTspv0C++ubzp752cemg8uby6eXMGZPYqXmZPI0bvMDqaedMna3I9", - "FYScNwpWr+0XTu/67LFYK7vt2369ZQzr1bFxctQ/Gp2PHTI+LgxIcXRbbd7AWrF6Unl7KY7FEFUmZ8bV", - "A7269M8O7vhJb1Is3h4/NmdXyJ/tNOrGbeGxbZ/Xx5Xe3dnLgOyizpM1w+eXxalTejw+vDkzfGc65nvN", - "Hd8ZWyXaH1Z55d19mlwV68e0/3ZfLb/As9p9b+fCfkJoQBq7xQd6Zw+N0pnX23kZPdEXztriqXE1vH3a", - "eZwcNW48Zt432cvJ8HRcPvVuzppvffuNXzf5gX1cGpBi138r38Pzg6JV7tSujHPztGC8vtBiwzDYy8GD", - "j9/uGa5hf+/8wWu89guj3vuFy82ORRqF16ezAcGNa98Z+fW6/2rfF6aiPBQEC+uGv77Yb+f+y+Nt9WlY", - "tcfiqGGf3RYeHurV8qvdrZ1NmzfN6+bBgIjDo+On+5uJ4bats8Pz0lmv2Xhy78bDyqnd7Z+Xug8HM3hf", - "sg3iNMPnxsnpBLp3L2arNhkQwzV28PXp5cHB+UGr2awe4XYbney6zD46qft3/Lp7fl4uPtaMJ5u8PTaO", - "mq7aQ63jaeOoNR13BuRg2jk+uqanrSZvHRw8tprTduvEareOqs1myxpfz3vvXDw2C/WDR89yZr3m0+OJ", - "/TI7sweksDPafb8a3U2GJ+Vi+7Uy7tQvjw4uiqT7sHNwW3L9SW/nte/3KvdddlBxK8e+I7yzm/bpWVe4", - "tfbhgJTY8ftDk/ZLM2/vsdPoNg/N81brcvbSfOH0/rZRf7z1WzuFIXlhfXRT7t5ctkazq1Z9936vUcOX", - "dwPi1no7Q359OK23yl3mmM3z6vmhT2dPpR4Wx/CpenbdvRM7/TYsVTF/7B23Xt5p/eqxcVc5vRzXigNi", - "vd5bjfJFYeiW2++9er9RuW8fDkvO5KXacSZvVuf1DFml0vvD45vLHntPp6et0eR9tONc9Hb9N+tkQF7e", - "CqfFmfNU7uLhMds9bjZnl3u396z51Jv2zott46XfmLZb5G3cO/Rnr+799G5ycfDgtzt3jUtUeRyQc3xb", - "Gp1eNLhZP/T40VvtfOfBJOfkurdzwl76V2eHFfeeOU2TtPu2+XjXeHkae/f24YxXCnt76HJA7HGRdcms", - "+HIxHUN/VMC3jUtj92FyPn7p3pyfWrXbvbuz2al/fy/epw/k5fyidn9zdPB6VuVP1D0/H5CRGPZPSju1", - "2fDmvtCsTA6G8O3mvizqt+8XL8Y7Gvee2hh2L/a6hRPjtNW5KV0fNXYb5UOz6bSP9swBGZeta/zYu25C", - "eFo8PW2+n0xuxjen3a51Vn68fsQnF3ezsqiczo5GnEG3Nu217i9H9hXqzLoH/afTAZkw78K5GqIR7+/V", - "6v1R+eCi41vvT6xVu3s77J2Nn6wbu3R3POl1rklr9j6+nu22b8uvVx6+r+1JGWVfdR6e2Bk1zipn3d5e", - "Ab+fXvdvHPFy3vxjQP64GvXrA6JOl/bF4UdHz4p6S8rQM+dO+iH9u0g+7ZYoVcGX6niXFl3QCOgyP2Vf", - "x3QTyKVawQFW8dV5ypaqHhyQzx72kIMJ+pJaSbiUtBPeDUK3LNP8tSZ10moGK4zmdL/fkmUTFAlu50VN", - "Veiaphn57MLoi88R+8QB9IVNGX5H5vMYzfhywj/ndg6Z5VqttAeazWazVbl4h62S83TYKV302zX5rNPs", - "3WMxvjyp3jbq1bbJD27JTAwrw+nkxrJOnGtn+Pjg1EmpONlbcTlJat3ALdfu2NAI0YmIQbGlZKkEpiq9", - "an1KBVfxBUmnNIu3t2mC+C9I9AbDWRg7jxeOzmcUlsSb6fKAdHSX0i/JAF+LDRkJZXlsiUwqay9UuS5Y", - "7IbAE12hFrBz8tZyZDAkcvJVTFJ5kPMpZamkkubac6rdt2z2bSD9MOHYshduaV9VUkSZBUms6iIeyKsW", - "K+VquqNvg9vDL4O8NDByoBXmnTPbkH+GIXS9YVSVSpgqDh1OAXSmcMaDleegE8xoQayumlOy7Cx+cdd8", - "WfNSssYIu5auC/s0QbfsIk8kcIgtcGxx0nZ3P1YhvUXIJOy2JmhChKex+iDAQYQHwkaJA6yYJ5QJOwdd", - "xLAB8x6lTp4ITx7jmWym9NHrrU68eJX46oB52CobygQlKW77rYTIve0V2lDyGdksdL4cKyGzjS/ZXUx2", - "Wttn8RL/dV2WSlPWjrF88/u6LivuVFvXLSW6uq7LUmjq+9fUMGpwazVD0NG3RqiCOzD0BVimoc57U9E2", - "yc4DkrI0OjYKXARJEBGCjgNSGgLNGHxAVC6YlEtap1oaF0ZtAyE2wVTdO6Y9gxLhAWG+g/StGAyNKENZ", - "MEXAhpOoJkcxG1DlJHJ2QwTgFIalo+oedvJJDIhHOcdBqNbFbyogobLitIsyoC8Q1FKaoJSZEWuvCuLF", - "8vm2uVc6mYK1Ocdv2GMxJ3wLft+wR/o1eRuzbvzy5+2T1qK0t00yV3XHIHV11SWcgaM9XM2vC+u+Zfob", - "8wlZleMWRyctyU3nQOrssjCXLZHraOB8sGV0dVH6KIHavU0OvbpGacUdfOplaZPb85YUu43sjAt2fNZm", - "54945/z8duqfwJvmqXvTpZ33m1H59bBsHtbeiwf9t8Lu20d5YvFEBcRKP5qRrzQhw2dYzHqSizSBDhBk", - "mqpD9ddRqPWc3vfDDy0pfUq3i6BKdVR/bgmTEU1LvNClRIIGprBKL9EZEjqxludVCqCBgrvmgy88NT1o", - "2AiUVcKY0tkix8V0Os1D9Vp5C4K+vNDttNoXvXaunC/mbeE6Wm8QimSXvQM1fJCbyoCqmQPQw7HY036m", - "HN7CJF/sZyr5Yr6U0SXnikwFw6EE8cI3bH5XfJWWr3yMdE2/3oCqvhMEuwZQppJyHCTCKyv1da4wzNVR", - "JYCYB3dVx0x3ylROzjxTWxVmSPtd7VdkIjMfvyejY2pU4rfeZxPfC/sz/VsRQb64Rl5QYKm6UvUVLlWY", - "Hn2EK7hIN+Q4rXfPP8n1yy+n/6o+zKA+SqAWo1wsxrJCgmxOJwgsFV6Ca0bmCH0o8mNUUuycpEycJpJF", - "qr9w6CBDennQDtGKRZjFhU09dOmvH7rpq9sUxkh5h7BGRI9e+etHvyVzB4/kQA8xyRsg4m2NSfXvwGRM", - "6JQsLEHt71j9W4LePJVsAFTWPaCGuuXOTIhwtYtD4f3nV7lHuO+6kM2Cwom4EFLCK+InBadgzL+H59G0", - "e31buqAMAoKmYdcs8KicOlbat0EJD4rXlY9mghgMhbuS90GJhfrwn3bkYQZMJLsElclLguuKchF+mkQL", - "GcRF+JGTX7Pjk9fzf08en1KYfV+SN6VfPXrHTFv64CWwIZfrxwQy/2VCh83v5v8teX5Lng0lTyA00iTN", - "r1KettCXQhquUZQSH4jYSFWKAP8fU5YSlErhoCRdfitMv8XWf6jCtFJ+aUMwrjWl6C/x76ttJE9iwurf", - "SIr8BbrX4pfr/m7tK+07dykspSqP0XR+JccQqQoC/WGOdLkm0JsoqMsCk/ikfKF6M+lV/VUDpO3N74lT", - "W5IlcRnVBxvACQrWfuQUH2GCuR07xMGHZzgW86NbFygpt7uLBASYaB7GlAA4pL4IPwvqO+KjY17V2/0+", - "5Nce8sF38VK3hmSBqEpef743MhAxAYSqtBhs+A5kwSVJ4LOwqW/ZQczktHd58SX/X7eRjtWFWFaYQBRy", - "edo2Snzj78O9FLXcYDvdqM9ec5XvHn2KRyKjbPBAnJH4N5TzQN2CFTU2qNpYUd1zsHzhnRFQgLg7NrqO", - "gFlyRuFndnIhuHztg604/3bi7/24dj/OibViUyaWe2lj/nfuteT22GDTxepuPt5zUZ2f3HJL+0xf14fe", - "oCESB1H01XkT6WsEaGKvRa5/ddnKRzsjxPP3xli/MaLPc67YF+FSbrMvfhupv43UfzcjdUk2pck7BTyu", - "UyyJmPlt+UvCJW1m8yYFdcnCqmyIWDt1C8NfuvXnc0jjdv3RXzoCATF+b7N/zTbTjP6ft8lgxEDQcUCU", - "YBVy03ybrfdoQ6KTHogR5SpqzObXGQ9nQB2d6Rt1c/8RCpr/1Klf+ZvP8JVLqV6A+LPfu/j3Lt5mF6Nl", - "DpI7N0ryWX1CXgZNfpLvF/OvliYaoKJkgbTKJYjwgxj/gXrJh9P5HiXip0mx8+BeZmr6hr5MPLpaK5kC", - "Bj2cVx/Ls/FIV0BAD+svU+eU5wGxXHgpfGFSVtrKQmKagBYm1kcDcAEt9JPDBB8mDO6NjoZZB+fr9/8f", - "AAD//8tm1XjpkQAA", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/internal/cloudapi/v2/openapi.v2.yml b/internal/cloudapi/v2/openapi.v2.yml index f815814ef8f..88c1b15d122 100644 --- a/internal/cloudapi/v2/openapi.v2.yml +++ b/internal/cloudapi/v2/openapi.v2.yml @@ -612,6 +612,7 @@ components: - $ref: '#/components/schemas/AzureUploadStatus' - $ref: '#/components/schemas/ContainerUploadStatus' - $ref: '#/components/schemas/OCIUploadStatus' + - $ref: '#/components/schemas/PulpOSTreeUploadStatus' UploadStatusValue: type: string enum: ['success', 'failure', 'pending', 'running'] @@ -624,6 +625,7 @@ components: - azure - container - oci.objectstorage + - pulp AWSEC2UploadStatus: type: object required: @@ -692,6 +694,13 @@ components: properties: url: type: string + PulpOSTreeUploadStatus: + type: object + required: + - repo_url + properties: + repo_url: + type: string ComposeMetadata: allOf: - $ref: '#/components/schemas/ObjectReference' @@ -776,6 +785,7 @@ components: - org.osbuild.container - org.osbuild.gcp - org.osbuild.oci + - org.osbuild.pulp.ostree description: | The name of the upload target that matches the upload_options. If not specified, the default upload target and options for the image @@ -914,11 +924,11 @@ components: properties: selected: type: array - items: + items: type: string unselected: type: array - items: + items: type: string UploadOptions: anyOf: @@ -929,6 +939,7 @@ components: - $ref: '#/components/schemas/ContainerUploadOptions' - $ref: '#/components/schemas/LocalUploadOptions' - $ref: '#/components/schemas/OCIUploadOptions' + - $ref: '#/components/schemas/PulpOSTreeUploadOptions' description: | This should really be oneOf but AWSS3UploadOptions is a subset of AWSEC2UploadOptions. This means that all AWSEC2UploadOptions objects @@ -1096,6 +1107,21 @@ components: example: 'latest' description: | Tag for the created container image + PulpOSTreeUploadOptions: + type: object + additionalProperties: false + required: + - basepath + properties: + basepath: + type: string + description: 'Basepath for distributing the repository' + repository: + type: string + description: 'Repository to import the ostree commit to' + server_address: + type: string + format: uri Customizations: type: object additionalProperties: false