OLD | NEW |
1 { | 1 { |
2 "auth": { | 2 "auth": { |
3 "oauth2": { | 3 "oauth2": { |
4 "scopes": { | 4 "scopes": { |
5 "https://www.googleapis.com/auth/cloud-platform": { | 5 "https://www.googleapis.com/auth/cloud-platform": { |
6 "description": "View and manage your data across Google Clou
d Platform services" | 6 "description": "View and manage your data across Google Clou
d Platform services" |
7 } | 7 } |
8 } | 8 } |
9 } | 9 } |
10 }, | 10 }, |
11 "basePath": "/toolresults/v1beta3/projects/", | 11 "basePath": "/toolresults/v1beta3/projects/", |
12 "baseUrl": "https://www.googleapis.com/toolresults/v1beta3/projects/", | 12 "baseUrl": "https://www.googleapis.com/toolresults/v1beta3/projects/", |
13 "batchPath": "batch", | 13 "batchPath": "batch", |
14 "canonicalName": "Tool Results", | 14 "canonicalName": "Tool Results", |
15 "description": "Reads and publishes results from Cloud Test Lab.", | 15 "description": "Reads and publishes results from Cloud Test Lab.", |
16 "discoveryVersion": "v1", | 16 "discoveryVersion": "v1", |
17 "documentationLink": "https://developers.google.com/cloud-test-lab/", | 17 "documentationLink": "https://developers.google.com/cloud-test-lab/", |
18 "etag": "\"tbys6C40o18GZwyMen5GMkdK-3s/H7oYqmL4r5lYmxx0hYA5ZlF4dzg\"", | 18 "etag": "\"tbys6C40o18GZwyMen5GMkdK-3s/D0tpXQ6aAc-QuLMXlUvhU7Ldk2I\"", |
19 "icons": { | 19 "icons": { |
20 "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.
png", | 20 "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.
png", |
21 "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.
png" | 21 "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.
png" |
22 }, | 22 }, |
23 "id": "toolresults:v1beta3", | 23 "id": "toolresults:v1beta3", |
24 "kind": "discovery#restDescription", | 24 "kind": "discovery#restDescription", |
25 "name": "toolresults", | 25 "name": "toolresults", |
26 "ownerDomain": "google.com", | 26 "ownerDomain": "google.com", |
27 "ownerName": "Google", | 27 "ownerName": "Google", |
28 "parameters": { | 28 "parameters": { |
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 "required": true, | 709 "required": true, |
710 "type": "string" | 710 "type": "string" |
711 } | 711 } |
712 }, | 712 }, |
713 "path": "{projectId}/histori
es/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary", | 713 "path": "{projectId}/histori
es/{historyId}/executions/{executionId}/steps/{stepId}/perfMetricsSummary", |
714 "request": { | 714 "request": { |
715 "$ref": "PerfMetricsSumm
ary" | 715 "$ref": "PerfMetricsSumm
ary" |
716 }, | 716 }, |
717 "response": { | 717 "response": { |
718 "$ref": "PerfMetricsSumm
ary" | 718 "$ref": "PerfMetricsSumm
ary" |
719 } | 719 }, |
| 720 "scopes": [ |
| 721 "https://www.googleapis.
com/auth/cloud-platform" |
| 722 ] |
720 } | 723 } |
721 } | 724 } |
722 }, | 725 }, |
723 "perfSampleSeries": { | 726 "perfSampleSeries": { |
724 "methods": { | 727 "methods": { |
725 "create": { | 728 "create": { |
726 "description": "Creates a Pe
rfSampleSeries.\n\nMay return any of the following error code(s): - ALREADY_EXIS
TS - PerfMetricSummary already exists for the given Step - NOT_FOUND - The conta
ining Step does not exist", | 729 "description": "Creates a Pe
rfSampleSeries.\n\nMay return any of the following error code(s): - ALREADY_EXIS
TS - PerfMetricSummary already exists for the given Step - NOT_FOUND - The conta
ining Step does not exist", |
727 "httpMethod": "POST", | 730 "httpMethod": "POST", |
728 "id": "toolresults.projects.
histories.executions.steps.perfSampleSeries.create", | 731 "id": "toolresults.projects.
histories.executions.steps.perfSampleSeries.create", |
729 "parameterOrder": [ | 732 "parameterOrder": [ |
(...skipping 27 matching lines...) Expand all Loading... |
757 "required": true, | 760 "required": true, |
758 "type": "string" | 761 "type": "string" |
759 } | 762 } |
760 }, | 763 }, |
761 "path": "{projectId}/histori
es/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries", | 764 "path": "{projectId}/histori
es/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries", |
762 "request": { | 765 "request": { |
763 "$ref": "PerfSampleSerie
s" | 766 "$ref": "PerfSampleSerie
s" |
764 }, | 767 }, |
765 "response": { | 768 "response": { |
766 "$ref": "PerfSampleSerie
s" | 769 "$ref": "PerfSampleSerie
s" |
767 } | 770 }, |
| 771 "scopes": [ |
| 772 "https://www.googleapis.
com/auth/cloud-platform" |
| 773 ] |
768 }, | 774 }, |
769 "get": { | 775 "get": { |
770 "description": "Gets a PerfS
ampleSeries.\n\nMay return any of the following error code(s): - NOT_FOUND - The
specified PerfSampleSeries does not exist", | 776 "description": "Gets a PerfS
ampleSeries.\n\nMay return any of the following error code(s): - NOT_FOUND - The
specified PerfSampleSeries does not exist", |
771 "httpMethod": "GET", | 777 "httpMethod": "GET", |
772 "id": "toolresults.projects.
histories.executions.steps.perfSampleSeries.get", | 778 "id": "toolresults.projects.
histories.executions.steps.perfSampleSeries.get", |
773 "parameterOrder": [ | 779 "parameterOrder": [ |
774 "projectId", | 780 "projectId", |
775 "historyId", | 781 "historyId", |
776 "executionId", | 782 "executionId", |
777 "stepId", | 783 "stepId", |
(...skipping 27 matching lines...) Expand all Loading... |
805 "stepId": { | 811 "stepId": { |
806 "description": "A to
ol results step ID.", | 812 "description": "A to
ol results step ID.", |
807 "location": "path", | 813 "location": "path", |
808 "required": true, | 814 "required": true, |
809 "type": "string" | 815 "type": "string" |
810 } | 816 } |
811 }, | 817 }, |
812 "path": "{projectId}/histori
es/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleS
eriesId}", | 818 "path": "{projectId}/histori
es/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/{sampleS
eriesId}", |
813 "response": { | 819 "response": { |
814 "$ref": "PerfSampleSerie
s" | 820 "$ref": "PerfSampleSerie
s" |
815 } | 821 }, |
| 822 "scopes": [ |
| 823 "https://www.googleapis.
com/auth/cloud-platform" |
| 824 ] |
816 }, | 825 }, |
817 "list": { | 826 "list": { |
818 "description": "Lists PerfSa
mpleSeries for a given Step.\n\nThe request provides an optional filter which sp
ecifies one or more PerfMetricsType to include in the result; if none returns al
l. The resulting PerfSampleSeries are sorted by ids.\n\nMay return any of the fo
llowing canonical error codes: - NOT_FOUND - The containing Step does not exist"
, | 827 "description": "Lists PerfSa
mpleSeries for a given Step.\n\nThe request provides an optional filter which sp
ecifies one or more PerfMetricsType to include in the result; if none returns al
l. The resulting PerfSampleSeries are sorted by ids.\n\nMay return any of the fo
llowing canonical error codes: - NOT_FOUND - The containing Step does not exist"
, |
819 "httpMethod": "GET", | 828 "httpMethod": "GET", |
820 "id": "toolresults.projects.
histories.executions.steps.perfSampleSeries.list", | 829 "id": "toolresults.projects.
histories.executions.steps.perfSampleSeries.list", |
821 "parameterOrder": [ | 830 "parameterOrder": [ |
822 "projectId", | 831 "projectId", |
823 "historyId", | 832 "historyId", |
824 "executionId", | 833 "executionId", |
825 "stepId" | 834 "stepId" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
864 "stepId": { | 873 "stepId": { |
865 "description": "A to
ol results step ID.", | 874 "description": "A to
ol results step ID.", |
866 "location": "path", | 875 "location": "path", |
867 "required": true, | 876 "required": true, |
868 "type": "string" | 877 "type": "string" |
869 } | 878 } |
870 }, | 879 }, |
871 "path": "{projectId}/histori
es/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries", | 880 "path": "{projectId}/histori
es/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries", |
872 "response": { | 881 "response": { |
873 "$ref": "ListPerfSampleS
eriesResponse" | 882 "$ref": "ListPerfSampleS
eriesResponse" |
874 } | 883 }, |
| 884 "scopes": [ |
| 885 "https://www.googleapis.
com/auth/cloud-platform" |
| 886 ] |
875 } | 887 } |
876 }, | 888 }, |
877 "resources": { | 889 "resources": { |
878 "samples": { | 890 "samples": { |
879 "methods": { | 891 "methods": { |
880 "batchCreate": { | 892 "batchCreate": { |
881 "description": "Crea
tes a batch of PerfSamples - a client can submit multiple batches of Perf Sample
s through repeated calls to this method in order to split up a large request pay
load - duplicates and existing timestamp entries will be ignored. - the batch op
eration may partially succeed - the set of elements successfully inserted is ret
urned in the response (omits items which already existed in the database).\n\nMa
y return any of the following canonical error codes: - NOT_FOUND - The containin
g PerfSampleSeries does not exist", | 893 "description": "Crea
tes a batch of PerfSamples - a client can submit multiple batches of Perf Sample
s through repeated calls to this method in order to split up a large request pay
load - duplicates and existing timestamp entries will be ignored. - the batch op
eration may partially succeed - the set of elements successfully inserted is ret
urned in the response (omits items which already existed in the database).\n\nMa
y return any of the following canonical error codes: - NOT_FOUND - The containin
g PerfSampleSeries does not exist", |
882 "httpMethod": "POST"
, | 894 "httpMethod": "POST"
, |
883 "id": "toolresults.p
rojects.histories.executions.steps.perfSampleSeries.samples.batchCreate", | 895 "id": "toolresults.p
rojects.histories.executions.steps.perfSampleSeries.samples.batchCreate", |
884 "parameterOrder": [ | 896 "parameterOrder": [ |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
919 "required":
true, | 931 "required":
true, |
920 "type": "str
ing" | 932 "type": "str
ing" |
921 } | 933 } |
922 }, | 934 }, |
923 "path": "{projectId}
/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/
{sampleSeriesId}/samples:batchCreate", | 935 "path": "{projectId}
/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/
{sampleSeriesId}/samples:batchCreate", |
924 "request": { | 936 "request": { |
925 "$ref": "BatchCr
eatePerfSamplesRequest" | 937 "$ref": "BatchCr
eatePerfSamplesRequest" |
926 }, | 938 }, |
927 "response": { | 939 "response": { |
928 "$ref": "BatchCr
eatePerfSamplesResponse" | 940 "$ref": "BatchCr
eatePerfSamplesResponse" |
929 } | 941 }, |
| 942 "scopes": [ |
| 943 "https://www.goo
gleapis.com/auth/cloud-platform" |
| 944 ] |
930 }, | 945 }, |
931 "list": { | 946 "list": { |
932 "description": "List
s the Performance Samples of a given Sample Series - The list results are sorted
by timestamps ascending - The default page size is 500 samples; and maximum siz
e allowed 5000 - The response token indicates the last returned PerfSample times
tamp - When the results size exceeds the page size, submit a subsequent request
including the page token to return the rest of the samples up to the page limit\
n\nMay return any of the following canonical error codes: - OUT_OF_RANGE - The s
pecified request page_token is out of valid range - NOT_FOUND - The containing P
erfSampleSeries does not exist", | 947 "description": "List
s the Performance Samples of a given Sample Series - The list results are sorted
by timestamps ascending - The default page size is 500 samples; and maximum siz
e allowed 5000 - The response token indicates the last returned PerfSample times
tamp - When the results size exceeds the page size, submit a subsequent request
including the page token to return the rest of the samples up to the page limit\
n\nMay return any of the following canonical error codes: - OUT_OF_RANGE - The s
pecified request page_token is out of valid range - NOT_FOUND - The containing P
erfSampleSeries does not exist", |
933 "httpMethod": "GET", | 948 "httpMethod": "GET", |
934 "id": "toolresults.p
rojects.histories.executions.steps.perfSampleSeries.samples.list", | 949 "id": "toolresults.p
rojects.histories.executions.steps.perfSampleSeries.samples.list", |
935 "parameterOrder": [ | 950 "parameterOrder": [ |
936 "projectId", | 951 "projectId", |
937 "historyId", | 952 "historyId", |
938 "executionId", | 953 "executionId", |
939 "stepId", | 954 "stepId", |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
978 "stepId": { | 993 "stepId": { |
979 "description
": "A tool results step ID.", | 994 "description
": "A tool results step ID.", |
980 "location":
"path", | 995 "location":
"path", |
981 "required":
true, | 996 "required":
true, |
982 "type": "str
ing" | 997 "type": "str
ing" |
983 } | 998 } |
984 }, | 999 }, |
985 "path": "{projectId}
/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/
{sampleSeriesId}/samples", | 1000 "path": "{projectId}
/histories/{historyId}/executions/{executionId}/steps/{stepId}/perfSampleSeries/
{sampleSeriesId}/samples", |
986 "response": { | 1001 "response": { |
987 "$ref": "ListPer
fSamplesResponse" | 1002 "$ref": "ListPer
fSamplesResponse" |
988 } | 1003 }, |
| 1004 "scopes": [ |
| 1005 "https://www.goo
gleapis.com/auth/cloud-platform" |
| 1006 ] |
989 } | 1007 } |
990 } | 1008 } |
991 } | 1009 } |
992 } | 1010 } |
993 }, | 1011 }, |
994 "thumbnails": { | 1012 "thumbnails": { |
995 "methods": { | 1013 "methods": { |
996 "list": { | 1014 "list": { |
997 "description": "Lists thumbn
ails of images attached to a step.\n\nMay return any of the following canonical
error codes: - PERMISSION_DENIED - if the user is not authorized to read from th
e project, or from any of the images - INVALID_ARGUMENT - if the request is malf
ormed - NOT_FOUND - if the step does not exist, or if any of the images do not e
xist", | 1015 "description": "Lists thumbn
ails of images attached to a step.\n\nMay return any of the following canonical
error codes: - PERMISSION_DENIED - if the user is not authorized to read from th
e project, or from any of the images - INVALID_ARGUMENT - if the request is malf
ormed - NOT_FOUND - if the step does not exist, or if any of the images do not e
xist", |
998 "httpMethod": "GET", | 1016 "httpMethod": "GET", |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1052 } | 1070 } |
1053 } | 1071 } |
1054 } | 1072 } |
1055 } | 1073 } |
1056 } | 1074 } |
1057 } | 1075 } |
1058 } | 1076 } |
1059 } | 1077 } |
1060 } | 1078 } |
1061 }, | 1079 }, |
1062 "revision": "20170120", | 1080 "revision": "20170210", |
1063 "rootUrl": "https://www.googleapis.com/", | 1081 "rootUrl": "https://www.googleapis.com/", |
1064 "schemas": { | 1082 "schemas": { |
1065 "Any": { | 1083 "Any": { |
1066 "description": "`Any` contains an arbitrary serialized protocol buff
er message along with a URL that describes the type of the serialized message.\n
\nProtobuf library provides support to pack/unpack Any values in the form of uti
lity functions or additional generated methods of the Any type.\n\nExample 1: Pa
ck and unpack a message in C++.\n\nFoo foo = ...; Any any; any.PackFrom(foo); ..
. if (any.UnpackTo(&foo)) { ... }\n\nExample 2: Pack and unpack a message in Jav
a.\n\nFoo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo =
any.unpack(Foo.class); }\n\nExample 3: Pack and unpack a message in Python.\n\n
foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpa
ck(foo) ...\n\nThe pack methods provided by protobuf library will by default use
'type.googleapis.com/full.type.name' as the type URL and the unpack methods onl
y use the fully qualified type name after the last '/' in the type URL, for exam
ple \"foo.bar.com/x/y.z\" will yield type name \"y.z\".\n\n\n\nJSON ==== The JSO
N representation of an `Any` value uses the regular representation of the deseri
alized, embedded message, with an additional field `@type` which contains the ty
pe URL. Example:\n\npackage google.profile; message Person { string first_name =
1; string last_name = 2; }\n\n{ \"@type\": \"type.googleapis.com/google.profile
.Person\", \"firstName\": , \"lastName\": }\n\nIf the embedded message type is
well-known and has a custom JSON representation, that representation will be emb
edded adding a field `value` which holds the custom JSON in addition to the `@ty
pe` field. Example (for message [google.protobuf.Duration][]):\n\n{ \"@type\": \
"type.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" }", | 1084 "description": "`Any` contains an arbitrary serialized protocol buff
er message along with a URL that describes the type of the serialized message.\n
\nProtobuf library provides support to pack/unpack Any values in the form of uti
lity functions or additional generated methods of the Any type.\n\nExample 1: Pa
ck and unpack a message in C++.\n\nFoo foo = ...; Any any; any.PackFrom(foo); ..
. if (any.UnpackTo(&foo)) { ... }\n\nExample 2: Pack and unpack a message in Jav
a.\n\nFoo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo =
any.unpack(Foo.class); }\n\nExample 3: Pack and unpack a message in Python.\n\n
foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpa
ck(foo) ...\n\nThe pack methods provided by protobuf library will by default use
'type.googleapis.com/full.type.name' as the type URL and the unpack methods onl
y use the fully qualified type name after the last '/' in the type URL, for exam
ple \"foo.bar.com/x/y.z\" will yield type name \"y.z\".\n\n\n\nJSON ==== The JSO
N representation of an `Any` value uses the regular representation of the deseri
alized, embedded message, with an additional field `@type` which contains the ty
pe URL. Example:\n\npackage google.profile; message Person { string first_name =
1; string last_name = 2; }\n\n{ \"@type\": \"type.googleapis.com/google.profile
.Person\", \"firstName\": , \"lastName\": }\n\nIf the embedded message type is
well-known and has a custom JSON representation, that representation will be emb
edded adding a field `value` which holds the custom JSON in addition to the `@ty
pe` field. Example (for message [google.protobuf.Duration][]):\n\n{ \"@type\": \
"type.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" }", |
1067 "id": "Any", | 1085 "id": "Any", |
1068 "properties": { | 1086 "properties": { |
1069 "typeUrl": { | 1087 "typeUrl": { |
1070 "description": "A URL/resource name whose content describes
the type of the serialized protocol buffer message.\n\nFor URLs which use the sc
heme `http`, `https`, or no scheme, the following restrictions and interpretatio
ns apply:\n\n* If no scheme is provided, `https` is assumed. * The last segment
of the URL's path must represent the fully qualified name of the type (as in `pa
th/google.protobuf.Duration`). The name should be in a canonical form (e.g., lea
ding \".\" is not accepted). * An HTTP GET on the URL must yield a [google.proto
buf.Type][] value in binary format, or produce an error. * Applications are allo
wed to cache lookup results based on the URL, or have them precompiled into a bi
nary to avoid any lookup. Therefore, binary compatibility needs to be preserved
on changes to types. (Use versioned type names to manage breaking changes.)\n\nS
chemes other than `http`, `https` (or the empty scheme) might be used with imple
mentation specific semantics.", | 1088 "description": "A URL/resource name whose content describes
the type of the serialized protocol buffer message.\n\nFor URLs which use the sc
heme `http`, `https`, or no scheme, the following restrictions and interpretatio
ns apply:\n\n* If no scheme is provided, `https` is assumed. * The last segment
of the URL's path must represent the fully qualified name of the type (as in `pa
th/google.protobuf.Duration`). The name should be in a canonical form (e.g., lea
ding \".\" is not accepted). * An HTTP GET on the URL must yield a [google.proto
buf.Type][] value in binary format, or produce an error. * Applications are allo
wed to cache lookup results based on the URL, or have them precompiled into a bi
nary to avoid any lookup. Therefore, binary compatibility needs to be preserved
on changes to types. (Use versioned type names to manage breaking changes.)\n\nS
chemes other than `http`, `https` (or the empty scheme) might be used with imple
mentation specific semantics.", |
1071 "type": "string" | 1089 "type": "string" |
1072 }, | 1090 }, |
(...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1927 }, | 1945 }, |
1928 "widthPx": { | 1946 "widthPx": { |
1929 "description": "The width of the thumbnail, in pixels.\n\nAl
ways set.", | 1947 "description": "The width of the thumbnail, in pixels.\n\nAl
ways set.", |
1930 "format": "int32", | 1948 "format": "int32", |
1931 "type": "integer" | 1949 "type": "integer" |
1932 } | 1950 } |
1933 }, | 1951 }, |
1934 "type": "object" | 1952 "type": "object" |
1935 }, | 1953 }, |
1936 "Timestamp": { | 1954 "Timestamp": { |
1937 "description": "A Timestamp represents a point in time independent o
f any time zone or calendar, represented as seconds and fractions of seconds at
nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Grego
rian Calendar which extends the Gregorian calendar backwards to year one. It is
encoded assuming all minutes are 60 seconds long, i.e. leap seconds are \"smeare
d\" so that no leap second table is needed for interpretation. Range is from 000
1-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that rang
e, we ensure that we can convert to and from RFC 3339 date strings. See [https:/
/www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).\n\nExample
1: Compute Timestamp from POSIX `time()`.\n\nTimestamp timestamp; timestamp.set
_seconds(time(NULL)); timestamp.set_nanos(0);\n\nExample 2: Compute Timestamp fr
om POSIX `gettimeofday()`.\n\nstruct timeval tv; gettimeofday(&tv, NULL);\n\nTim
estamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_us
ec * 1000);\n\nExample 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime(
)`.\n\nFILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dw
HighDateTime) << 32) | ft.dwLowDateTime;\n\n// A Windows tick is 100 nanoseconds
. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch
1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((tick
s / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000)
* 100));\n\nExample 4: Compute Timestamp from Java `System.currentTimeMillis()`
.\n\nlong millis = System.currentTimeMillis();\n\nTimestamp timestamp = Timestam
p.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000
000)).build();\n\n\n\nExample 5: Compute Timestamp from current time in Python.\
n\ntimestamp = Timestamp() timestamp.GetCurrentTime()", | 1955 "description": "A Timestamp represents a point in time independent o
f any time zone or calendar, represented as seconds and fractions of seconds at
nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Grego
rian Calendar which extends the Gregorian calendar backwards to year one. It is
encoded assuming all minutes are 60 seconds long, i.e. leap seconds are \"smeare
d\" so that no leap second table is needed for interpretation. Range is from 000
1-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that rang
e, we ensure that we can convert to and from RFC 3339 date strings. See [https:/
/www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).\n\n# Examp
les\n\nExample 1: Compute Timestamp from POSIX `time()`.\n\nTimestamp timestamp;
timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);\n\nExample 2: Comput
e Timestamp from POSIX `gettimeofday()`.\n\nstruct timeval tv; gettimeofday(&tv,
NULL);\n\nTimestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_
nanos(tv.tv_usec * 1000);\n\nExample 3: Compute Timestamp from Win32 `GetSystemT
imeAsFileTime()`.\n\nFILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (
((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n\n// A Windows tick is 1
00 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds bef
ore Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds(
(INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((tic
ks % 10000000) * 100));\n\nExample 4: Compute Timestamp from Java `System.curren
tTimeMillis()`.\n\nlong millis = System.currentTimeMillis();\n\nTimestamp timest
amp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis
% 1000) * 1000000)).build();\n\n\n\nExample 5: Compute Timestamp from current ti
me in Python.\n\ntimestamp = Timestamp() timestamp.GetCurrentTime()\n\n# JSON Ma
pping\n\nIn JSON format, the Timestamp type is encoded as a string in the [RFC 3
339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is \"{yea
r}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\" where {year} is always expre
ssed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-p
added to two digits each. The fractional seconds, which can go up to 9 digits (i
.e. up to 1 nanosecond resolution), are optional. The \"Z\" suffix indicates the
timezone (\"UTC\"); the timezone is required, though only UTC (as indicated by
\"Z\") is presently supported.\n\nFor example, \"2017-01-15T01:30:15.01Z\" encod
es 15.01 seconds past 01:30 UTC on January 15, 2017.\n\nIn JavaScript, one can c
onvert a Date object to this format using the standard [toISOString()](https://d
eveloper.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toI
SOString] method. In Python, a standard `datetime.datetime` object can be conver
ted to this format using [`strftime`](https://docs.python.org/2/library/time.htm
l#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in
Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda
-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTi
me()) to obtain a formatter capable of generating timestamps in this format.", |
1938 "id": "Timestamp", | 1956 "id": "Timestamp", |
1939 "properties": { | 1957 "properties": { |
1940 "nanos": { | 1958 "nanos": { |
1941 "description": "Non-negative fractions of a second at nanose
cond resolution. Negative second values with fractions must still have non-negat
ive nanos values that count forward in time. Must be from 0 to 999,999,999 inclu
sive.", | 1959 "description": "Non-negative fractions of a second at nanose
cond resolution. Negative second values with fractions must still have non-negat
ive nanos values that count forward in time. Must be from 0 to 999,999,999 inclu
sive.", |
1942 "format": "int32", | 1960 "format": "int32", |
1943 "type": "integer" | 1961 "type": "integer" |
1944 }, | 1962 }, |
1945 "seconds": { | 1963 "seconds": { |
1946 "description": "Represents seconds of UTC time since Unix ep
och 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:
59Z inclusive.", | 1964 "description": "Represents seconds of UTC time since Unix ep
och 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:
59Z inclusive.", |
1947 "format": "int64", | 1965 "format": "int64", |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2022 "description": "The test case to which this output file belo
ngs.\n\n- In response: present if set by create/update request - In create/updat
e request: optional" | 2040 "description": "The test case to which this output file belo
ngs.\n\n- In response: present if set by create/update request - In create/updat
e request: optional" |
2023 } | 2041 } |
2024 }, | 2042 }, |
2025 "type": "object" | 2043 "type": "object" |
2026 } | 2044 } |
2027 }, | 2045 }, |
2028 "servicePath": "toolresults/v1beta3/projects/", | 2046 "servicePath": "toolresults/v1beta3/projects/", |
2029 "title": "Cloud Tool Results API", | 2047 "title": "Cloud Tool Results API", |
2030 "version": "v1beta3" | 2048 "version": "v1beta3" |
2031 } | 2049 } |
OLD | NEW |