Create
Creates origin inside origin group.
- TypeScript
- Python
import {
cloudApi,
decodeMessage,
serviceClients,
Session,
waitForOperation,
} from "@yandex-cloud/nodejs-sdk";
const CreateOriginRequest = cloudApi.cdn.origin_service.CreateOriginRequest;
const Origin = cloudApi.cdn.origin.Origin;
(async () => {
const authToken = process.env["YC_OAUTH_TOKEN"];
const session = new Session({ oauthToken: authToken });
const client = session.client(serviceClients.OriginServiceClient);
const operation = await client.create(
CreateOriginRequest.fromPartial({
folderId: "folderId",
// originGroupId: 0,
source: "source",
// enabled: {
// value: true
// },
// backup: {
// value: true
// },
// meta: {
// common: {
// name: "name"
// },
// bucket: {
// name: "name"
// },
// website: {
// name: "name"
// },
// balancer: {
// id: "id"
// }
// }
})
);
const finishedOp = await waitForOperation(operation, session);
if (finishedOp.response) {
const result = decodeMessage<typeof Origin>(finishedOp.response);
console.log(result);
}
})();
import os
import grpc
import yandexcloud
from yandex.cloud.cdn.v1.origin_service_pb2 import CreateOriginMetadata
from yandex.cloud.cdn.v1.origin_service_pb2 import CreateOriginRequest
from yandex.cloud.cdn.v1.origin_pb2 import Origin
from yandex.cloud.cdn.v1.origin_pb2 import OriginBalancerMeta
from yandex.cloud.cdn.v1.origin_pb2 import OriginMeta
from yandex.cloud.cdn.v1.origin_pb2 import OriginNamedMeta
from yandex.cloud.cdn.v1.origin_service_pb2_grpc import OriginServiceStub
token = os.getenv("YC_OAUTH_TOKEN")
sdk = yandexcloud.SDK(token=token)
service = sdk.client(OriginServiceStub)
operation = service.Create(
CreateOriginRequest(
folder_id="folderId",
# origin_group_id = 0,
source="source",
# enabled = BoolValue(
# value = true
# ),
# backup = BoolValue(
# value = true
# ),
# meta = OriginMeta(
# common = OriginNamedMeta(
# name = "name"
# ),
# bucket = OriginNamedMeta(
# name = "name"
# ),
# website = OriginNamedMeta(
# name = "name"
# ),
# balancer = OriginBalancerMeta(
# id = "id"
# )
# )
)
)
operation_result = sdk.wait_operation_and_get_result(
operation,
response_type=Origin,
meta_type=CreateOriginMetadata,
)
print(operation_result)
CreateOriginRequest
folderId
: string
ID of the folder that the origin belongs to.
originGroupId
: int64
origin_group_id group ID to request origins from.
source
: string
IP address or Domain name of your origin and the port (if custom).
Used if meta variant is common
.
enabled
: google.protobuf.BoolValue
The setting allows to enable or disable an Origin source in the Origins group.
It has two possible values:
True - The origin is enabled and used as a source for the CDN. An origins group must contain at least one enabled origin. Default value. False - The origin is disabled and the CDN is not using it to pull content.
backup
: google.protobuf.BoolValue
Specifies whether the origin is used in its origin group as backup. A backup origin is used when one of active origins becomes unavailable.
Default value: False.
meta
: OriginMeta
Set up origin of the content.
OriginMeta
Origin type. For details about the concept, see documentation.
One of originMetaVariant
Type of the origin.
common
: OriginNamedMetaA server with a domain name linked to it
bucket
: OriginNamedMetaAn Object Storage bucket not configured as a static site hosting.
website
: OriginNamedMetaAn Object Storage bucket configured as a static site hosting.
balancer
: OriginBalancerMetaAn L7 load balancer from Application Load Balancer.
CDN servers will access the load balancer at one of its IP addresses that must be selected in the origin settings.
OriginNamedMeta
Origin info. For details about the concept, see documentation.
name
: string
Name of the origin.
OriginBalancerMeta
Application Load Balancer origin info. For details about the concept, see documentation.
id
: string
ID of the origin.
Operation
An Operation resource. For more information, see Operation.
id
: string
ID of the operation.
description
: string
Description of the operation. 0-256 characters long.
createdAt
: google.protobuf.Timestamp
Creation timestamp.
createdBy
: string
ID of the user or service account who initiated the operation.
modifiedAt
: google.protobuf.Timestamp
The time when the Operation resource was last modified.
done
: bool
If the value is false
, it means the operation is still in progress.
If true
, the operation is completed, and either error
or response
is available.
metadata
: google.protobuf.Any
Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any.
One of result
The operation result.
If done == false
and there was no failure detected, neither error
nor response
is set.
If done == false
and there was a failure detected, error
is set.
If done == true
, exactly one of error
or response
is set.
error
: google.rpc.StatusThe error result of the operation in case of failure or cancellation.
response
: google.protobuf.AnyThe normal response of the operation in case of success.
If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is the standard Create/Update, the response should be the target resource of the operation. Any method that returns a long-running operation should document the response type, if any.