@huaweicloud/huaweicloud-sdk-core 3.1.30 → 3.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,121 @@
1
+ # 3.1.31 2023-03-23
2
+
3
+ ### HuaweiCloud SDK CCE
4
+
5
+ - _Features_
6
+ - None
7
+ - _Bug Fix_
8
+ - None
9
+ - _Change_
10
+ - **ShowNode**
11
+ - changes of response param
12
+ - `+ spec.extendParam.agency_name`
13
+ - **UpdateNode**
14
+ - changes of response param
15
+ - `+ spec.extendParam.agency_name`
16
+ - **DeleteNode**
17
+ - changes of response param
18
+ - `+ spec.extendParam.agency_name`
19
+ - **CreateNode**
20
+ - changes of request param
21
+ - `+ spec.extendParam.agency_name`
22
+ - changes of response param
23
+ - `+ spec.extendParam.agency_name`
24
+ - **ListNodes**
25
+ - changes of response param
26
+ - `+ items.spec.extendParam.agency_name`
27
+ - **ShowNodePool**
28
+ - changes of response param
29
+ - `+ spec.nodeTemplate.extendParam.agency_name`
30
+ - **UpdateNodePool**
31
+ - changes of response param
32
+ - `+ spec.nodeTemplate.extendParam.agency_name`
33
+ - **DeleteNodePool**
34
+ - changes of response param
35
+ - `+ spec.nodeTemplate.extendParam.agency_name`
36
+ - **CreateNodePool**
37
+ - changes of request param
38
+ - `+ spec.nodeTemplate.extendParam.agency_name`
39
+ - changes of response param
40
+ - `+ spec.nodeTemplate.extendParam.agency_name`
41
+ - **ListNodePools**
42
+ - changes of response param
43
+ - `+ items.spec.nodeTemplate.extendParam.agency_name`
44
+
45
+ ### HuaweiCloud SDK CDN
46
+
47
+ - _Features_
48
+ - None
49
+ - _Bug Fix_
50
+ - None
51
+ - _Change_
52
+ - **ShowDomainDetailByName**
53
+ - changes of response param
54
+ - `- domain.banned_reason`
55
+ - `- domain.locked_reason`
56
+ - `- domain.enterprise_project_id`
57
+
58
+ ### HuaweiCloud SDK DCS
59
+
60
+ - _Features_
61
+ - None
62
+ - _Bug Fix_
63
+ - None
64
+ - _Change_
65
+ - **CreateMigrationTask**
66
+ - changes of request param
67
+ - `+ backup_files.file_source: enum value [backup_record]`
68
+ - **ShowMigrationTask**
69
+ - changes of response param
70
+ - `+ backup_files.file_source: enum value [backup_record]`
71
+ - **StopMigrationTask**
72
+ - changes of response param
73
+ - `+ backup_files.file_source: enum value [backup_record]`
74
+
75
+ ### HuaweiCloud SDK WAF
76
+
77
+ - _Features_
78
+ - Support the following interfaces:
79
+ - `ListCcRules`
80
+ - `CreateCcRule`
81
+ - `ShowCcRule`
82
+ - `UpdateCcRule`
83
+ - `DeleteCcRule`
84
+ - `ListCustomRules`
85
+ - `CreateCustomRule`
86
+ - `ShowCustomRule`
87
+ - `UpdateCustomRule`
88
+ - `DeleteCustomRule`
89
+ - `ListAnticrawlerRules`
90
+ - `UpdateAnticrawlerRuleType`
91
+ - `CreateAnticrawlerRule`
92
+ - `ShowAnticrawlerRule`
93
+ - `UpdateAnticrawlerRule`
94
+ - `DeleteAnticrawlerRule`
95
+ - `ListPunishmentRules`
96
+ - `CreatePunishmentRule`
97
+ - `ShowPunishmentRule`
98
+ - `UpdatePunishmentRule`
99
+ - `DeletePunishmentRule`
100
+ - `ListAntileakageRules`
101
+ - `CreateAntileakageRule`
102
+ - `ShowAntileakageRule`
103
+ - `UpdateAntileakageRule`
104
+ - `DeleteAntileakageRule`
105
+ - `UpdateAntiTamperRuleRefresh`
106
+ - `ShowGeoipRule`
107
+ - `ShowIgnoreRule`
108
+ - `UpdateIgnoreRule`
109
+ - _Bug Fix_
110
+ - None
111
+ - _Change_
112
+ - **ListHost**
113
+ - changes of response param
114
+ - `- items.paid_type: enum value [prePaid]`
115
+ - **DeleteHost**
116
+ - changes of response param
117
+ - `- paid_type: enum value [prePaid]`
118
+
1
119
  # 3.1.30 2023-03-16
2
120
 
3
121
  ### HuaweiCloud SDK CDN
package/CHANGELOG_CN.md CHANGED
@@ -1,3 +1,121 @@
1
+ # 3.1.31 2023-03-23
2
+
3
+ ### HuaweiCloud SDK CCE
4
+
5
+ - _新增特性_
6
+ - 无
7
+ - _解决问题_
8
+ - 无
9
+ - _特性变更_
10
+ - **ShowNode**
11
+ - 响应参数变更
12
+ - `+ spec.extendParam.agency_name`
13
+ - **UpdateNode**
14
+ - 响应参数变更
15
+ - `+ spec.extendParam.agency_name`
16
+ - **DeleteNode**
17
+ - 响应参数变更
18
+ - `+ spec.extendParam.agency_name`
19
+ - **CreateNode**
20
+ - 请求参数变更
21
+ - `+ spec.extendParam.agency_name`
22
+ - 响应参数变更
23
+ - `+ spec.extendParam.agency_name`
24
+ - **ListNodes**
25
+ - 响应参数变更
26
+ - `+ items.spec.extendParam.agency_name`
27
+ - **ShowNodePool**
28
+ - 响应参数变更
29
+ - `+ spec.nodeTemplate.extendParam.agency_name`
30
+ - **UpdateNodePool**
31
+ - 响应参数变更
32
+ - `+ spec.nodeTemplate.extendParam.agency_name`
33
+ - **DeleteNodePool**
34
+ - 响应参数变更
35
+ - `+ spec.nodeTemplate.extendParam.agency_name`
36
+ - **CreateNodePool**
37
+ - 请求参数变更
38
+ - `+ spec.nodeTemplate.extendParam.agency_name`
39
+ - 响应参数变更
40
+ - `+ spec.nodeTemplate.extendParam.agency_name`
41
+ - **ListNodePools**
42
+ - 响应参数变更
43
+ - `+ items.spec.nodeTemplate.extendParam.agency_name`
44
+
45
+ ### HuaweiCloud SDK CDN
46
+
47
+ - _新增特性_
48
+ - 无
49
+ - _解决问题_
50
+ - 无
51
+ - _特性变更_
52
+ - **ShowDomainDetailByName**
53
+ - 响应参数变更
54
+ - `- domain.banned_reason`
55
+ - `- domain.locked_reason`
56
+ - `- domain.enterprise_project_id`
57
+
58
+ ### HuaweiCloud SDK DCS
59
+
60
+ - _新增特性_
61
+ - 无
62
+ - _解决问题_
63
+ - 无
64
+ - _特性变更_
65
+ - **CreateMigrationTask**
66
+ - 请求参数变更
67
+ - `+ backup_files.file_source: enum value [backup_record]`
68
+ - **ShowMigrationTask**
69
+ - 响应参数变更
70
+ - `+ backup_files.file_source: enum value [backup_record]`
71
+ - **StopMigrationTask**
72
+ - 响应参数变更
73
+ - `+ backup_files.file_source: enum value [backup_record]`
74
+
75
+ ### HuaweiCloud SDK WAF
76
+
77
+ - _新增特性_
78
+ - 支持以下接口:
79
+ - `ListCcRules`
80
+ - `CreateCcRule`
81
+ - `ShowCcRule`
82
+ - `UpdateCcRule`
83
+ - `DeleteCcRule`
84
+ - `ListCustomRules`
85
+ - `CreateCustomRule`
86
+ - `ShowCustomRule`
87
+ - `UpdateCustomRule`
88
+ - `DeleteCustomRule`
89
+ - `ListAnticrawlerRules`
90
+ - `UpdateAnticrawlerRuleType`
91
+ - `CreateAnticrawlerRule`
92
+ - `ShowAnticrawlerRule`
93
+ - `UpdateAnticrawlerRule`
94
+ - `DeleteAnticrawlerRule`
95
+ - `ListPunishmentRules`
96
+ - `CreatePunishmentRule`
97
+ - `ShowPunishmentRule`
98
+ - `UpdatePunishmentRule`
99
+ - `DeletePunishmentRule`
100
+ - `ListAntileakageRules`
101
+ - `CreateAntileakageRule`
102
+ - `ShowAntileakageRule`
103
+ - `UpdateAntileakageRule`
104
+ - `DeleteAntileakageRule`
105
+ - `UpdateAntiTamperRuleRefresh`
106
+ - `ShowGeoipRule`
107
+ - `ShowIgnoreRule`
108
+ - `UpdateIgnoreRule`
109
+ - _解决问题_
110
+ - 无
111
+ - _特性变更_
112
+ - **ListHost**
113
+ - 响应参数变更
114
+ - `- items.paid_type: enum value [prePaid]`
115
+ - **DeleteHost**
116
+ - 响应参数变更
117
+ - `- paid_type: enum value [prePaid]`
118
+
1
119
  # 3.1.30 2023-03-16
2
120
 
3
121
  ### HuaweiCloud SDK CDN
package/HcClient.js CHANGED
@@ -62,7 +62,7 @@ var ExceptionUtil_1 = require("./exception/ExceptionUtil");
62
62
  var logger_1 = require("./logger");
63
63
  var SdkStreamResponse_1 = require("./SdkStreamResponse");
64
64
  var DefaultHttpClient_1 = require("./http/DefaultHttpClient");
65
- var HcClient = /** @class */ (function () {
65
+ var HcClient = exports.HcClient = /** @class */ (function () {
66
66
  function HcClient(client, clientOptions) {
67
67
  this.proxyAgent = '';
68
68
  this.httpClient = client;
@@ -192,4 +192,3 @@ var HcClient = /** @class */ (function () {
192
192
  HcClient.loggerName = 'HcClient';
193
193
  return HcClient;
194
194
  }());
195
- exports.HcClient = HcClient;
@@ -66,7 +66,7 @@ var crypto = __importStar(require("crypto"));
66
66
  var moment_1 = __importDefault(require("moment"));
67
67
  var url_1 = __importDefault(require("url"));
68
68
  var _ = __importStar(require("lodash"));
69
- var AKSKSigner = /** @class */ (function () {
69
+ var AKSKSigner = exports.AKSKSigner = /** @class */ (function () {
70
70
  function AKSKSigner() {
71
71
  }
72
72
  AKSKSigner.hexTable = function () {
@@ -272,7 +272,6 @@ var AKSKSigner = /** @class */ (function () {
272
272
  };
273
273
  return AKSKSigner;
274
274
  }());
275
- exports.AKSKSigner = AKSKSigner;
276
275
  /**
277
276
  *
278
277
  * @export
@@ -153,7 +153,7 @@ var BasicCredentials = /** @class */ (function () {
153
153
  this.projectId = cachedProjectId;
154
154
  return [2 /*return*/, this];
155
155
  }
156
- return [4 /*yield*/, new iam_service_1.IamService(hcClient, this.iamEndpoint).getProjecId(region)];
156
+ return [4 /*yield*/, new iam_service_1.IamService(hcClient, this.iamEndpoint).getProjectId(region)];
157
157
  case 1:
158
158
  projectId = _a.sent();
159
159
  authCacheInstance.putCache(akWithName, projectId);
@@ -1,4 +1,4 @@
1
1
  import { ServiceResponseException } from "./ServiceResponseException";
2
2
  export declare class ClientRequestException extends ServiceResponseException {
3
- constructor(httpStatusCode: string | number, errorMsg: string, errorCode: string, requestId?: string);
3
+ constructor(httpStatusCode: string | number, errorMsg?: string, errorCode?: string, requestId?: string, encodedAuthorizationMessage?: string);
4
4
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright 2020 Huawei Technologies Co.,Ltd.
3
+ * Copyright 2023 Huawei Technologies Co.,Ltd.
4
4
  *
5
5
  * Licensed to the Apache Software Foundation (ASF) under one
6
6
  * or more contributor license agreements. See the NOTICE file
@@ -39,9 +39,9 @@ exports.ClientRequestException = void 0;
39
39
  var ServiceResponseException_1 = require("./ServiceResponseException");
40
40
  var ClientRequestException = /** @class */ (function (_super) {
41
41
  __extends(ClientRequestException, _super);
42
- function ClientRequestException(httpStatusCode, errorMsg, errorCode, requestId) {
43
- var _this = _super.call(this, httpStatusCode, errorMsg, errorCode, requestId) || this;
44
- _this.name = 'ClientRequestException';
42
+ function ClientRequestException(httpStatusCode, errorMsg, errorCode, requestId, encodedAuthorizationMessage) {
43
+ var _this = _super.call(this, httpStatusCode, errorMsg, errorCode, requestId, encodedAuthorizationMessage) || this;
44
+ _this.name = "ClientRequestException";
45
45
  return _this;
46
46
  }
47
47
  return ClientRequestException;
@@ -1,10 +1,19 @@
1
- export interface ExceptionResponse {
2
- data?: any;
1
+ export type ExceptionResponse = {
2
+ data?: {
3
+ error?: {
4
+ code: string;
5
+ message: string;
6
+ encoded_authorization_message?: string;
7
+ };
8
+ error_code?: string;
9
+ error_msg?: string;
10
+ encoded_authorization_message?: string;
11
+ };
3
12
  status?: number;
13
+ message?: string;
14
+ requestId?: string;
4
15
  headers?: any;
5
16
  request?: any;
6
- message?: string;
7
17
  config?: any;
8
18
  originalError?: any;
9
- requestId?: string;
10
- }
19
+ };
@@ -1,22 +1,2 @@
1
1
  "use strict";
2
- /*
3
- * Copyright 2020 Huawei Technologies Co.,Ltd.
4
- *
5
- * Licensed to the Apache Software Foundation (ASF) under one
6
- * or more contributor license agreements. See the NOTICE file
7
- * distributed with this work for additional information
8
- * regarding copyright ownership. The ASF licenses this file
9
- * to you under the Apache License, Version 2.0 (the
10
- * "License"); you may not use this file except in compliance
11
- * with the License. You may obtain a copy of the License at
12
- *
13
- * http://www.apache.org/licenses/LICENSE-2.0
14
- *
15
- * Unless required by applicable law or agreed to in writing,
16
- * software distributed under the License is distributed on an
17
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18
- * KIND, either express or implied. See the License for the
19
- * specific language governing permissions and limitations
20
- * under the License.
21
- */
22
2
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright 2020 Huawei Technologies Co.,Ltd.
3
+ * Copyright 2023 Huawei Technologies Co.,Ltd.
4
4
  *
5
5
  * Licensed to the Apache Software Foundation (ASF) under one
6
6
  * or more contributor license agreements. See the NOTICE file
@@ -30,19 +30,20 @@ var ExceptionUtil = /** @class */ (function () {
30
30
  ExceptionUtil.generalException = function (exception) {
31
31
  var _a, _b, _c, _d;
32
32
  var _e = exception.data, data = _e === void 0 ? {} : _e, status = exception.status, message = exception.message, requestId = exception.requestId;
33
- var error = data.error, error_code = data.error_code, error_msg = data.error_msg;
34
- var errorCode = (_b = (_a = error === null || error === void 0 ? void 0 : error.code) !== null && _a !== void 0 ? _a : error_code) !== null && _b !== void 0 ? _b : status;
35
- var errorMsg = (_d = (_c = error === null || error === void 0 ? void 0 : error.message) !== null && _c !== void 0 ? _c : error_msg) !== null && _d !== void 0 ? _d : message;
33
+ var error = data.error, error_code = data.error_code, error_msg = data.error_msg, encoded_authorization_message = data.encoded_authorization_message;
34
+ var errorCode = (_a = error === null || error === void 0 ? void 0 : error.code) !== null && _a !== void 0 ? _a : error_code;
35
+ var errorMsg = (_c = (_b = error === null || error === void 0 ? void 0 : error.message) !== null && _b !== void 0 ? _b : error_msg) !== null && _c !== void 0 ? _c : message;
36
+ var encodedAuthorizationMessage = (_d = error === null || error === void 0 ? void 0 : error.encoded_authorization_message) !== null && _d !== void 0 ? _d : encoded_authorization_message;
36
37
  var httpStatusCode = status;
37
38
  if (httpStatusCode) {
38
39
  if (isClientError(httpStatusCode)) {
39
- return new ClientRequestException_1.ClientRequestException(httpStatusCode, errorMsg, errorCode, requestId);
40
+ return new ClientRequestException_1.ClientRequestException(httpStatusCode, errorMsg, errorCode, requestId, encodedAuthorizationMessage);
40
41
  }
41
42
  else if (isServerError(httpStatusCode)) {
42
- return new ServerResponseException_1.ServerResponseException(httpStatusCode, errorMsg, errorCode, requestId);
43
+ return new ServerResponseException_1.ServerResponseException(httpStatusCode, errorMsg, errorCode, requestId, encodedAuthorizationMessage);
43
44
  }
44
45
  }
45
- return new ServiceResponseException_1.ServiceResponseException(httpStatusCode, errorMsg, errorCode, requestId);
46
+ return new ServiceResponseException_1.ServiceResponseException(httpStatusCode, errorMsg, errorCode, requestId, encodedAuthorizationMessage);
46
47
  };
47
48
  return ExceptionUtil;
48
49
  }());
@@ -1,4 +1,4 @@
1
1
  import { ServiceResponseException } from "./ServiceResponseException";
2
2
  export declare class ServerResponseException extends ServiceResponseException {
3
- constructor(httpStatusCode: string | number, errorMsg: string, errorCode: string, requestId?: string);
3
+ constructor(httpStatusCode: string | number, errorMsg?: string, errorCode?: string, requestId?: string, encodedAuthorizationMessage?: string);
4
4
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright 2020 Huawei Technologies Co.,Ltd.
3
+ * Copyright 2023 Huawei Technologies Co.,Ltd.
4
4
  *
5
5
  * Licensed to the Apache Software Foundation (ASF) under one
6
6
  * or more contributor license agreements. See the NOTICE file
@@ -39,9 +39,9 @@ exports.ServerResponseException = void 0;
39
39
  var ServiceResponseException_1 = require("./ServiceResponseException");
40
40
  var ServerResponseException = /** @class */ (function (_super) {
41
41
  __extends(ServerResponseException, _super);
42
- function ServerResponseException(httpStatusCode, errorMsg, errorCode, requestId) {
43
- var _this = _super.call(this, httpStatusCode, errorMsg, errorCode, requestId) || this;
44
- _this.name = 'ServerResponseException';
42
+ function ServerResponseException(httpStatusCode, errorMsg, errorCode, requestId, encodedAuthorizationMessage) {
43
+ var _this = _super.call(this, httpStatusCode, errorMsg, errorCode, requestId, encodedAuthorizationMessage) || this;
44
+ _this.name = "ServerResponseException";
45
45
  return _this;
46
46
  }
47
47
  return ServerResponseException;
@@ -4,5 +4,6 @@ export declare class ServiceResponseException extends SdkException {
4
4
  errorMsg?: string;
5
5
  errorCode?: string;
6
6
  requestId?: string;
7
- constructor(httpStatusCode?: string | number, errorMsg?: string, errorCode?: string, requestId?: string);
7
+ encodedAuthorizationMessage?: string;
8
+ constructor(httpStatusCode?: string | number, errorMsg?: string, errorCode?: string, requestId?: string, encodedAuthorizationMessage?: string);
8
9
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright 2020 Huawei Technologies Co.,Ltd.
3
+ * Copyright 2023 Huawei Technologies Co.,Ltd.
4
4
  *
5
5
  * Licensed to the Apache Software Foundation (ASF) under one
6
6
  * or more contributor license agreements. See the NOTICE file
@@ -39,13 +39,14 @@ exports.ServiceResponseException = void 0;
39
39
  var SdkException_1 = require("./SdkException");
40
40
  var ServiceResponseException = /** @class */ (function (_super) {
41
41
  __extends(ServiceResponseException, _super);
42
- function ServiceResponseException(httpStatusCode, errorMsg, errorCode, requestId) {
42
+ function ServiceResponseException(httpStatusCode, errorMsg, errorCode, requestId, encodedAuthorizationMessage) {
43
43
  var _this = _super.call(this, errorMsg) || this;
44
- _this.name = 'ServiceResponseException';
44
+ _this.name = "ServiceResponseException";
45
45
  _this.httpStatusCode = httpStatusCode;
46
46
  _this.errorMsg = errorMsg;
47
47
  _this.errorCode = errorCode;
48
48
  _this.requestId = requestId;
49
+ _this.encodedAuthorizationMessage = encodedAuthorizationMessage;
49
50
  return _this;
50
51
  }
51
52
  return ServiceResponseException;
@@ -258,6 +258,9 @@ var DefaultHttpClient = /** @class */ (function () {
258
258
  message: error.message || error.code,
259
259
  requestId: (_a = error.response) === null || _a === void 0 ? void 0 : _a.headers['x-request-id'],
260
260
  };
261
+ if (error.isAxiosError) {
262
+ transformedResponse.config = error.config;
263
+ }
261
264
  return transformedResponse;
262
265
  };
263
266
  return DefaultHttpClient;
@@ -5,7 +5,7 @@ import { KeystoneListRegionsResponse } from "../model/KeystoneListRegionsRespons
5
5
  export declare class IamService {
6
6
  private client;
7
7
  constructor(hclient: HcClient, iamEndpoint?: string);
8
- getProjecId(regionId: string): Promise<string>;
8
+ getProjectId(regionId: string): Promise<string>;
9
9
  getDomainId(): Promise<string>;
10
10
  private getCreateProjectId;
11
11
  private getSupportedRegions;
@@ -66,7 +66,7 @@ var IamService = /** @class */ (function () {
66
66
  function IamService(hclient, iamEndpoint) {
67
67
  this.client = hclient.overrideEndpoints(iamEndpoint ? [iamEndpoint] : [constant_1.Constants.DEFAULT_IAM_ENDPOINT]);
68
68
  }
69
- IamService.prototype.getProjecId = function (regionId) {
69
+ IamService.prototype.getProjectId = function (regionId) {
70
70
  return __awaiter(this, void 0, void 0, function () {
71
71
  var request, projectRes;
72
72
  return __generator(this, function (_a) {
package/logger/index.js CHANGED
@@ -39,7 +39,7 @@ var LogLevel;
39
39
  LogLevel["INFO"] = "info";
40
40
  LogLevel["WARN"] = "warn";
41
41
  })(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
42
- var LoggerUtils = /** @class */ (function () {
42
+ var LoggerUtils = exports.LoggerUtils = /** @class */ (function () {
43
43
  function LoggerUtils() {
44
44
  }
45
45
  LoggerUtils.isMoreOrEqualSevere = function (a, b) {
@@ -54,7 +54,6 @@ var LoggerUtils = /** @class */ (function () {
54
54
  _a);
55
55
  return LoggerUtils;
56
56
  }());
57
- exports.LoggerUtils = LoggerUtils;
58
57
  var LocalLogger = /** @class */ (function () {
59
58
  function LocalLogger() {
60
59
  this.level = LogLevel.INFO;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@huaweicloud/huaweicloud-sdk-core",
3
- "version": "3.1.30",
3
+ "version": "3.1.31",
4
4
  "description": "Core code for Huaweicloud SDK for Node.js",
5
5
  "main": "huaweicloud-sdk-core.js",
6
6
  "typings": "huaweicloud-sdk-core.d.ts",
package/LICENSE DELETED
@@ -1,13 +0,0 @@
1
- Copyright (c) Huawei Technologies Co., Ltd. 2020-present. All rights reserved.
2
-
3
- Licensed under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License.
5
- You may obtain a copy of the License at
6
-
7
- http://www.apache.org/licenses/LICENSE-2.0
8
-
9
- Unless required by applicable law or agreed to in writing, software
10
- distributed under the License is distributed on an "AS IS" BASIS,
11
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- See the License for the specific language governing permissions and
13
- limitations under the License.